ORA-00903: 无效 table 名称

ORA-00903:invalid table name

我在PLSQL中有以下代码:

Declare
    tablename varchar2(20):='emp'; 
    drop_stmt  varchar2(2000);

begin
    drop_stmt:='drop table :1 ;';
    --dbms_output.put_line(drop_stmt); 
    execute immediate drop_stmt using tablename;
end;

结果:

ORA-00903:invalid table name

ORA-06512: at line 8

然而当我运行:

drop table emp ;

刚刚成功 运行s。导致此错误的原因可能是什么?

你必须使用这个:

drop_stmt:='drop table '||tablename; -- without ";" at the end of string
--dbms_output.put_line(drop_stmt); 
execute immediate drop_stmt;