Đó là bởi vì bạn đã đặt một dấu gạch chéo /
ở cuối tập lệnh.
Do đó, câu lệnh trước đó trong bộ đệm được thực thi lại. Có nghĩa là, câu lệnh CREATE TABLE được thực thi hai lần .
Bỏ dấu gạch chéo ở cuối. Dấu chấm phẩy đủ làm dấu chấm cuối câu lệnh cho các truy vấn riêng lẻ.
Đây là cách tôi sẽ làm:
SQL> BEGIN
2 EXECUTE IMMEDIATE 'DROP TABLE TEMP_SOURCE';
3 EXCEPTION
4 WHEN OTHERS THEN
5 IF SQLCODE != -942 THEN
6 RAISE;
7 END IF;
8 END;
9 /
PL/SQL procedure successfully completed.
SQL>
SQL> CREATE TABLE TEMP_SOURCE
2 (
3 COL_1 VARCHAR2(30 CHAR),
4 COL_2 VARCHAR2(30 CHAR),
5 COL_3 VARCHAR2(30 CHAR)
6 );
Table created.
SQL>
Phải nói rằng, bạn có nhiều vấn đề trong tập lệnh.
Bạn không thể có khoảng trắng trong tên cột. COL 1
là một tên cột không hợp lệ. Bạn sẽ nhận được Lỗi số nhận dạng không hợp lệ .
Một vấn đề khác:
Có thêm một dấu phẩy ở cuối danh sách cột .