在PL/SQL块中执行一个创建表的语法,如:
begin
create table emp_tmp as select * from emp;
end;
在SQL*plus中执行时会提示ORA-06550的错误。
这是因为在PL/SQL代码中只能使用DML语句,如果在代码中直接使用DDL语句,则会出现上述错误。在PL/SQL中处理DDL语句的方式是使用动态SQL,如果将上述代码改成如下代码则通过:
v_SqlStr varchar(200)
:= 'create table emp_tmp as select * from emp;'
begin
execute immediate v_SqlStr;
end;