sql >> データベース >  >> RDS >> Oracle

Oracleプロシージャでテーブルを切り捨てる方法は?

    Oracleでは、TRUNCATEコマンドはDDLステートメントであるため、Oracleプロシージャで直接実行することはできません。 OracleプロシージャでDDLコマンドを実行するには、EXECUTEIMMEDIATEステートメントを使用します。以下は、ExecuteImmediateコマンドを使用してOracleプロシージャでテーブルを切り捨てる例です。

    Oracleプロシージャの例でテーブルを切り捨てる

    以下のOracleストアドプロシージャでは、テーブル名をパラメータとして渡すと、そのテーブルが切り捨てられます。

    CREATE OR REPLACE PROCEDURE trnct_table (i_table_name IN VARCHAR2)
    IS
    BEGIN
       EXECUTE IMMEDIATE 'TRUNCATE TABLE ' || i_table_name;
    
       DBMS_OUTPUT.put_line (
          'Table ' || i_table_name || ' truncated successfully.');
    EXCEPTION
       WHEN OTHERS
       THEN
          DBMS_OUTPUT.put_line ('Truncate table failed.');
    END;

    テスト

    SET SERVEROUTPUT ON;
    
    BEGIN
       trnct_table ('emp');
    END;
    /

    出力

    Table emp truncated successfully.
    PL/SQL procedure successfully completed.

    注: Oracleでテーブルを切り捨てた後はロールバックできません。

    関連項目:

    • 表からレコードを削除するPL/SQLプログラム
    1. Railsの移行:PostgreSQL上のBigintが失敗しているようですか?

    2. AWS RDSでのMySQLからPostgreSQLへの移行、パート2

    3. 手動でDBを更新した後、Hibernateの第2レベルのキャッシュをクリアします

    4. クロウの足の表記