LoginSignup
2
1

More than 3 years have passed since last update.

【PL/SQL】処理中に直接TRUNCATE TABLEを実行する(EXECUTE IMMEDIATE TRUNCATE TABLE)

Posted at

処理中に直接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'
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1