PL/SQL上で動的なINSERT文、UPDATE文、DELETE文を実行するには、EXECUTE IMMEDIATEを使用します。
サンプル
例)動的SQLでDELETE文を実行する
1 2 3 4 5 6 7 8 9 10 11 12 13 |
DECLARE --変数宣言 sql VARCHAR2(100); BEGIN --SQLを文字列として設定 sql := 'DELETE test_tbl '; sql := sql || 'WHERE id = 100'; --SQL文字列を実行 EXECUTE IMMEDIATE sql; END; |
- 実行例
- SQL> / PL/SQLプロシージャは正常に完了しました。
解説
- SQL文を動的に構築して実行したい場合に便利な機能です。
- 実行スピードはプロシージャに直接SQLを記述するよりも遅いため、多用は避けた方が無難です。
- 動的SQLでSELECT文を実行したい場合は、以下ページをご覧ください。
→ 動的SQLでSELECT文を実行する