我正在尝试使用下面的代码创建一个表。
set serveroutput on;
DECLARE
cursor c1 is select '''create table demo1 (demo varchar2(100))''' c2 from dual;
testvar c1%rowtype;
BEGIN
open c1;
fetch c1 into testvar;
close c1;
execute immediate testvar.c2;
END;
但它正在给予
ORA-00900:无效的SQL语句 ORA-06512:第8行 00900. 00000 - “无效的SQL语句”
此代码有什么问题。
答案 0 :(得分:3)
如果您真的想使用cwise_op_cosh.cc
块动态地执行此操作,除了这三行代码之外,您只需要其他内容。无需从双重选择。
PLSQL
注意:从select中选择create table语句没有任何意义。如果您有任何其他具体要求,请提及,以便人们可以在这里为您提供帮助。
顺便说一句,一旦你删除了威廉提到的额外declare
vsql varchar2 (100) := 'create table demo1 (demo varchar2(100))';
begin
execute immediate vsql;
end;
,你就会简单地阻止
'