8

TOAD で実行されている SQL スクリプトがあります。現在、私は次のようにステートメントを次のようにレイアウトしています。

select such-and-such from somewhere;

delete other-thing from somewhere-else;

等々。操作対象の特定の ID を取得するための複雑な内部クエリがあるため、where 句の一部は反復的になります。スクリプトの先頭にある ID を変数に取り込んで、その変数を後続の where 句で使用したいと考えています。だから、このようなもの:

variable MY_ID = select the-ID from somewhere;

select such-and-such from somewhere where ID = @MY_ID;

明らかに、私はその構文を作り上げていますが、それが私が探しているものです。しかし、それが TOAD スクリプトで可能かどうかはわかりません。全体を PL/SQL ブロックに変換できることはわかっていますが、さまざまな理由からそうする必要がないようにしています。

PL/SQLブロックに変換せずにTOADを使用してこれを行う方法はありますか?

4

5 に答える 5

12

これであなたが望むことを達成できると思います。バインド変数を宣言し、それに値を挿入して、将来のステートメントで使用することができます。

variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;
于 2009-12-22T19:04:29.723 に答える
0

私はもはや TOAD を積極的に使用していませんが、バインド パラメータの値を設定するメカニズムが必要です。つまりselect such-and-such from somewhere where ID = :myid;、TOAD が発生するたびにそのパラメータに同じ値を提供するようにする必要があります。

または、セッション コンテキスト値または PL/SQL パッケージ変数を作成することもできます (注: PL/SQL を使用するようにコード全体を書き直すこととは異なります)。この質問を参照してください

于 2009-12-22T17:00:37.270 に答える
0

TOAD の「計算フィールド」機能は、正しい方法で使用すると、実際には非常に強力です。これは、クエリ自体に接続する「トークン」スクリプト エディターにすぎません。これは、SQL を直接記述できるネイティブ エディターからではなく、クエリ デザイン エディターからのみ使用できます。

ヒントとして、次に TOAD で設計されたクエリを作成し、複雑な WHERE またはサブクエリを作成する必要がある場合は、「計算フィールド」機能を試し、FORMS オプションを使用して、基本的に特定の列またはクエリに条件を関連付けます。あなたはそれがどれほど強力であるかに驚くでしょう. また、SQL クエリを読みやすい形式に保つのに役立ちます。

于 2015-04-02T02:01:38.413 に答える