テーブルを作成し、そのテーブルに動的に挿入するストアドプロシージャがありますが、ここではすべてうまくいきます。以下のコードの問題
execute immediate
'SELECT NAME
INTO variable1
FROM table1
WHERE ID = 2';
エラー: キーワードがありません。
execute immediate
'SELECT NAME FROM table1 WHERE ID = 2'
into variable1;
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;