W Oracle polecenie TRUNCATE jest instrukcją DDL, więc nie można jej wykonać bezpośrednio w procedurze Oracle. Aby wykonać polecenia DDL w procedurze Oracle, użyj instrukcji EXECUTE IMMEDIATE. Poniżej znajduje się przykład obcinania tabeli w procedurze Oracle za pomocą polecenia Execute Immediate.
Obetnij tabelę w przykładzie procedury Oracle
W poniższej procedurze składowanej Oracle możesz przekazać nazwę tabeli jako parametr, a następnie ta tabela zostanie obcięta.
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; /
Wyjście
Table emp truncated successfully. PL/SQL procedure successfully completed.
Uwaga: Nie możesz ROLLBACK po obcięciu tabeli w Oracle.
Zobacz też:
- Program PL/SQL do usuwania rekordów z tabeli
-
Narzędzia programistyczne umożliwiające bezpośredni dostęp do baz danych
-
Jak włączyć rejestrowanie dla instrukcji SQL podczas korzystania z JDBC?
-
Czy dostawca OraOLEDB w .NET jest niewiarygodny w polach CLOB?
-
Domyślny format daty Oracle to RRRR-MM-DD, DLACZEGO?
-
Jak zdefiniować klucz podstawowy automatycznego przyrostu w Oracle?