declare
cursor deltables is select table_name from user_tables;
tname user_tables.table_name%type;
begin
open deltables;
loop
fetch deltables into tname;
exit when deltables%notfound;
dbms_output.put_line(tname);
execute immediate 'drop table :tempname' using tname; end loop;
close deltables;
end; dbms_output.put_line(tname);能输出tname的值
execute immediate 'drop table :tempname' using tname;
这句话执行的时候出现问题
是否:tempname 不能用来作为表名的参数?
cursor deltables is select table_name from user_tables;
tname user_tables.table_name%type;
begin
open deltables;
loop
fetch deltables into tname;
exit when deltables%notfound;
dbms_output.put_line(tname);
execute immediate 'drop table :tempname' using tname; end loop;
close deltables;
end; dbms_output.put_line(tname);能输出tname的值
execute immediate 'drop table :tempname' using tname;
这句话执行的时候出现问题
是否:tempname 不能用来作为表名的参数?
execute immediate 'drop table' || tname;
错误:
ORA-00950: 无效 DROP 选项
ORA-06512: 在 line 10execute immediate 'drop table' || :tname using tname;
错误:
ORA-01008: 并非所有变量都已绑定把动态语句注释掉 dbms_output.put_line(tname);
可以返回user-tables中所有的表名 好郁闷啊 高手请指教!!!
@strSql='drop table' || tname;
execute immediate @strSql;