В Oracle командата TRUNCATE е DDL израз, така че не можете да я изпълните директно в Oracle Procedure. За да изпълните DDL команди в процедурата на Oracle, използвайте израза EXECUTE IMMEDIATE. По-долу е даден пример за съкращаване на таблица в процедурата на Oracle с помощта на командата Execute Immediate.
Отрязване на таблицата в пример за процедура на 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 програма за изтриване на записите от таблица
-
Oracle Apex 5.0 – Показване на статично изображение
-
Как да проверите версията на доставчика на oracle за ole-db. Доставчик на OraOLEDB.Oracle
-
Как да принудим Pascal case с поддръжката на Entity Framework на Oracle?
-
Открийте типове на ниво пакет PL/SQL с помощта на изгледи на речника на Oracle
-
Функция LOCALTIMESTAMP() в Oracle
-
Грешки в SQL Server при импортиране на CSV файл, въпреки че varchar(MAX) се използва за всяка колона