私のようなクエリがあります
SELECT id FROM xyz WHERE ...;
これは多かれ少なかれ複雑なWHERE句を持ち、1つの列(ID)を持つ1つの行を正確に返します。スクリプト内のいくつかの後のクエリでこのIDが必要です。したがって、私の目標は、この結果を変数で再利用することでしたが、機能する解決策には至りませんでした。
このクエリに参加することは、この状況では適切なオプションではありません。では、この単一の結果を変数に格納し、この変数を使用して新しいクエリを作成するようにOracleに指示することは可能ですか?明示的に他のクエリの条件節で使用するには?
もしそうなら、おそらく誰かが簡単な例を投稿することができます-最も簡単なのはおそらくsthでしょう。お気に入り
SELECT :VARIABLE FROM DUAL
ヒキガエルの場合、SOの this 回答から:
これはあなたが望むものを達成すると思います。バインド変数を宣言し、それに値を挿入して、将来の文で使用できます。
variable l_var varchar2(1); begin select dummy into :l_var from dual; end; select * from dual where dummy = :l_var;
それは違いをもたらします... SQL * Plusは変数を使用できますが、SQL * Plusの機能であり、コードのそのブロックを取得してOracleバックエンドに渡して実行することができます(Transact SQLブロックの場合と同様です)。例えば)。
次のように、SQL * Plusでバインド変数を使用するかどうかを選択できます。 http://www.adp-gmbh.ch/ora/sqlplus/use_vars.html
または、SQL * Plus独自の変数をDEFINEおよびCOLUMNコマンドで使用します。 http://www.adp-gmbh.ch/ora/sqlplus/new_value.html
他の環境でコードを実行可能にする必要がある場合は、PL/SQLルートをたどる必要があります。