oracle for in 怎么用,ORACLE的FOR循环在实际工作中的使用

今天周六在用户那里加班,做数据库中的数据处理工作,只能在没有业务发生的时候进行,没办法!!!

数据处理中涉及的语句,查询某个字段的值在表中是否存在:

declare

var1 number;

begin

for item in (SELECT TABLE_NAME,COLUMN_NAME

FROM XG_TABLENAME

union all

SELECT TABLE_NAME,COLUMN_NAME

FROM XG_TABLENAME_QT

) loop

execute immediate  'select count(1)  from ' || item.table_name ||

' where ' || item.column_name || ' = ' ||  '''150422196909030616'''

into  var1;

if  var1<>0

then

dbms_output.put_line('var1:' || var1 );

dbms_output.put_line( '表:' || item.table_name || '列:' ||item.column_name );

end if ;

end loop;

end;

批量删除重复数据:

declare

var1 number;

begin

for item in (

SELECT NSRSBH,ZSXH,YZPZXH  FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH E

WHERE E.ROWID>

(SELECT MIN(X.ROWID) FROM BAK_SB_PLKK_CFJL_ZSXH_YZPZXH X WHERE X.NSRSBH=E.NSRSBH)

) loop

execute immediate  'DELETE FROM SB_SPXX WHERE zsxh= ''' || item.ZSXH||'''';

execute immediate  'DELETE FROM SB_ZSXX WHERE zsxh= ''' || item.ZSXH||'''';

execute immediate  'DELETE FROM sb_yjnsk_lsz WHERE pzhm= ''' || item.YZPZXH||'''';

commit;

end loop;

end;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值