Perché non possiamo scrivere le istruzioni ddl direttamente nel blocco PL / SQL, ad esempio quando scrivo
CREATE OR REPLACE PROCEDURE test IS
BEGIN
truncate table table_name; // error
END test;
/
Ma,
CREATE OR REPLACE PROCEDURE test IS
BEGIN
execute immediate 'truncate table table_name'; // works fine
END test;
/
Perché il secondo è stato eseguito correttamente?