oracle存储过程问题

casilin 2011-01-22 07:36:01
我的目的是要删除该用户下的所有表,我写了一个存储过程如下:

create or replace procedure pro_droptable is
cursor cur is select table_name from user_tables;
drop_sql varchar2(1000);
begin
for tbname in cur loop
begin
drop_sql:='drop table '||tbname.table_name||' ;';
execute immediate drop_sql;
end;
end loop;
end pro_droptable;


这个存储过程新建的时候是通过的,但是执行的时候报错,说第八行,也就是“execute immediate drop_sql;”有无效字符:
第 1 行出现错误:
ORA-00911: 无效字符
ORA-06512: 在 "MYUSER.PRO_DROPTABLE", line 8

有没有人知道为什么啊,帮我看下把,谢谢!
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangren 2011-01-22
  • 打赏
  • 举报
回复
动态SQL中不要画蛇添足加分号';'
drop_sql:='drop table '||tbname.table_name;
LingXX0103 2011-01-22
  • 打赏
  • 举报
回复
改成
drop_sql:='drop table '''||tbname.table_name||'''';
试一下

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧