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?