sql >> Databasteknik >  >> RDS >> Oracle

Hur trunkerar man tabell i Oracle-proceduren?

I Oracle är TRUNCATE-kommandot en DDL-sats, så du kan inte köra den direkt i Oracle Procedure. För att köra DDL-kommandon i Oracle-proceduren, använd EXECUTE IMMEDIATE-satsen. Nedan är ett exempel på trunkering av en tabell i Oracle-proceduren med kommandot Execute Immediate.

Trunkera tabell i Oracle-procedurexempel

I nedanstående Oracle-lagrade procedur kan du skicka tabellnamnet som en parameter och sedan trunkeras den tabellen.

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;

Testa

SET SERVEROUTPUT ON;

BEGIN
   trnct_table ('emp');
END;
/

Utdata

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

Obs! Du kan inte ROLLBACK efter att ha trunkerat en tabell i Oracle.

Se även:

  • PL/SQL-program för att ta bort poster från en tabell
  1. Hur får man effektiv Sql Server-deadlock-hantering i C# med ADO?

  2. Hur skriver jag LINQs .Skip(1000).Take(100) i ren SQL?

  3. Starta och fylla i en Postgres-behållare i Docker

  4. Hur man snabbar på att ladda data från oracle sql till pandas df