Trong Oracle, lệnh TRUNCATE là một câu lệnh DDL, vì vậy bạn không thể thực thi nó trực tiếp trong Thủ tục Oracle. Để thực hiện các lệnh DDL trong thủ tục Oracle, hãy sử dụng câu lệnh THỰC HIỆN NGAY LẬP TỨC. Dưới đây là một ví dụ về việc cắt bớt một bảng trong thủ tục Oracle bằng cách sử dụng lệnh Execute ngay lập tức.
Bảng cắt ngắn trong Ví dụ về thủ tục Oracle
Trong thủ tục lưu trữ Oracle bên dưới, bạn có thể chuyển tên bảng làm tham số và sau đó nó sẽ cắt bớt bảng đó.
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;
Kiểm tra
SET SERVEROUTPUT ON; BEGIN trnct_table ('emp'); END; /
Đầu ra
Table emp truncated successfully. PL/SQL procedure successfully completed.
Lưu ý: Bạn không thể QUAY LẠI sau khi cắt bớt một bảng trong Oracle.
Xem thêm:
- Chương trình PL / SQL để xóa các bản ghi khỏi bảng