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