在oracle存储过程中出现:PLS-00103:出现符号“DELETE”在需要下列之一时

baidu_24410323 2015-06-19 05:46:27
create or replace package body HCBD_BF_DATA is
procedure HcbdBF( i_temp in varchar2,
i_sjqb in varchar2,
o_result out sys_refcursor) is

l_selectsql varchar2(5000);
l_selectsql1 varchar2(5000);

begin


for x in( delete from (select A.TABLE_NAME

where a.TABLESPACE_NAME = 'USERS'
and a.TABLE_NAME like 'HI%'
or a.TABLE_NAME like 'HL%') )loop

commit;


end loop;
用循环delete所有表内的数据时,为什么报错?
...全文
1269 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
binsweet 2015-07-07
  • 打赏
  • 举报
回复
你的写法很奇怪,我没见过,一般都是参照2楼的做法进行的
卖水果的net 2015-07-07
  • 打赏
  • 举报
回复
   for x in( delete from (select A.TABLE_NAME

        where a.TABLESPACE_NAME = 'USERS'
         and a.TABLE_NAME like 'HI%'
         or a.TABLE_NAME like 'HL%') )loop  
         
         commit;     
              

   end loop; 
这是要把所有 USERS 表空间里的数据都删除吗? 改成下面的试试。
   for x in( select A.TABLE_NAME
        where a.TABLESPACE_NAME = 'USERS'
         and a.TABLE_NAME like 'HI%'
         or a.TABLE_NAME like 'HL%')
         loop  
         l_selectsql : = 'delete from ' || x.TABLE_NAME;
         execute immediate l_selectsql ; 
   end loop; 
碧水幽幽泉 2015-06-19
  • 打赏
  • 举报
回复
存储过程和包体都没有结束语句,最后再加上:

 end HcbdBF:
end HCBD_BF_DATA;

1,617

社区成员

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

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