3

テーブルを作成し、そのテーブルに動的に挿入するストアドプロシージャがありますが、ここではすべてうまくいきます。以下のコードの問題

execute immediate
'SELECT NAME 
INTO variable1
FROM table1 
WHERE ID = 2';

エラー: キーワードがありません。

4

2 に答える 2

3
execute immediate
  'SELECT NAME FROM table1 WHERE ID = 2'
  into variable1;
于 2013-03-28T06:32:54.350 に答える
2

INTOを動的 SQL ステートメントの一部にしたくありません。それはの一部である必要がありますEXECUTE IMMEDIATE

EXECUTE IMMEDIATE 
  'SELECT name FROM table1 WHERE id = 2'
  INTO variable1;

ほとんどの場合、動的 SQL ステートメントでバインド変数を使用して、ステートメントを絶えずハード解析するオーバーヘッドを削減したいと考えています。数値 2 は、ほぼ確実に別の場所から来ており、ハードコードされていないはずです。

EXECUTE IMMEDIATE 
  'SELECT name FROM table1 WHERE id = :val'
  INTO variable1
 USING some_variable_with_a_value_of_2;
于 2013-03-28T06:39:54.743 に答える