2012-01-11 12 views
1

私はsqlをインタラクティブにしたいと思っています。最初に、アイテムのリストを表示してから、ユーザーからの選択を受け入れ、選択したとおりに結果を表示したいとします。Oracleストアドプロシージャのプロンプト

しかし、試してみると、リストを表示する前に選択を求めるプロンプトが表示されています。

誰かが私を助けることができますか?

私はこのようなOUTPUTたい: - 国

LIST: (プロシージャを呼び出すことによって、このリストを取得しています)

NOを。

  1. CANADA
  2. 米国
  3. 英国
  4. INDIA
  5. JAPAN
  6. CHINA

は、国を選択してを交換する名前:(これは変数に保存されます、と言うVAR1 )

NO。

  1. CANADA
  2. 米国
  3. 英国
  4. INDIA
  5. JAPAN
  6. CHINA

は、国を選択してを交換する名前:(これは変数に保存されます、と言うVAR2 )

受け入れられた値の後、var1をvar2に置き換えたい

だから誰も私が何をすべきか正確に教えてもらえますか?

+0

選択プロンプトとはどういう意味ですか? – Sathya

+0

正解(*正しい答えがある場合*)は、ユーザーがオプションを選択しなければならない環境に依存します。 –

+4

(PL/SQLで書かれた)ストアド・プロシージャは、ユーザーに入力を要求できません。出力(DBMS_OUTPUT)がどのように生成されるかにかかわらず、かなり独特で、それをサポートする環境が必要です。 SQL * Plusには、SQLとPL/SQLに加えていくつかのコマンドとロジックを実装する「PROMPT」コマンドがあります。これらのコマンドのほとんどは、SQL Developerでもサポートされています。 – Codo

答えて

1

ユーザー入力を受け入れるSQLplusスクリプトが必要だと思います。バッチファイルを設定し、 "を受け入れる変数プロンプトメッセージ"を使用してください。ちょうどSQLインジェクション攻撃に注意してください(これはデータ入力btwに対する良いアプローチではありません)。

SQLPlusでユーザーと通信するためのOracleのドキュメントについてはhereを参照してください。

0

環境がコマンドラインの場合、たとえばSQL * PLUSの場合は、これを行うにはplusステートメントを使用できます。私は5分のバンドエイドとしてプレーンジェーンの.sqlファイルで似たようにしました。

PROMPTは基本的にテキストを画面に表示します。 ACCEPTでは、ユーザー入力を受け入れることができます。

オプションリストを表示するには、単純な選択を実行します。

あなたの入力を受け入れたら、そこから手続きを渡してください。

関連する問題