为什么我们不能直接在PL / SQL块中编写ddl语句,例如当我编写时
CREATE OR REPLACE PROCEDURE test IS
BEGIN
truncate table table_name; // error
END test;
/
但,
CREATE OR REPLACE PROCEDURE test IS
BEGIN
execute immediate 'truncate table table_name'; // works fine
END test;
/
为什么第二个成功执行?