Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie wird die Tabelle im Oracle-Verfahren abgeschnitten?

In Oracle ist der TRUNCATE-Befehl eine DDL-Anweisung, sodass Sie ihn nicht direkt in der Oracle-Prozedur ausführen können. Um DDL-Befehle im Oracle-Verfahren auszuführen, verwenden Sie die EXECUTE IMMEDIATE-Anweisung. Unten sehen Sie ein Beispiel für das Abschneiden einer Tabelle in einem Oracle-Verfahren mit dem Befehl Execute Immediate.

Tabelle in Oracle-Prozedurbeispiel kürzen

In der folgenden gespeicherten Oracle-Prozedur können Sie den Tabellennamen als Parameter übergeben und dann wird diese Tabelle abgeschnitten.

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;

Test

SET SERVEROUTPUT ON;

BEGIN
   trnct_table ('emp');
END;
/

Ausgabe

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

Hinweis: Nach dem Abschneiden einer Tabelle in Oracle ist kein ROLLBACK möglich.

Siehe auch:

  • PL/SQL-Programm zum Löschen der Datensätze aus einer Tabelle