#処理中に直接TRUNCATE TABLEを実行する
##やりたいこと
PL/SQLの文中で「TRUNCATE TABLE」を実行したい。
通常PL/SQLの文中で「TRUNCATE TABLE」を行おうとすると、コンパイルエラーとなってしまいます。
-- TRUNCATE
TRUNCATE TABLE {テーブル名};
警告: プロシージャが作成されましたが、コンパイル・エラーがあります。
そこで動的SQLを使用し、以下のように実装することで「TRUNCATE TABLE」を実現します。
-- TRUNCATE
EXECUTE IMMEDIATE 'TRUNCATE TABLE {テーブル名}';
##コード
注意点としては、実行後に暗黙コミットが行われるため、実施前の状態に戻せないということです。
DDLのため、件数確認やロールバックを行いたい場合には「DELETE」文を使用したほうが良さそうです。
EXECUTE IMMEDIATE 'TRUNCATE TABLE USER_MST'