oralce PLSQL生成更新数据表语句

在工作中遇到更新多表的情况。数据表涉及TZZ_TZ、TZZ_OUT。

 

 通过数据之间的关系,更新数据表中SELF_NO字段信息。

 通过编写PLSQL语句:

set   serveroutput   on   size   1000000   ;

DECLARE
   selfno   NVARCHAR2 (20);
BEGIN
   FOR i IN (select zztz_id from TZZ_TZ where self_no in  (select self_no from tzz_out group by self_no having count(*)>1  ) and SPLIT_NO = '-1')
   LOOP
   dbms_output.put_line('---------begain '||i.zztz_id||'--------');
     -- selfno :=
         SELECT SUBSTR (CAST (DBMS_RANDOM.VALUE AS VARCHAR (38)), 3, 10)     GUID   into selfno        FROM DUAL;
      for j in(SELECT * FROM TZZ_TZ WHERE 1=1 Start With ZZTZ_ID = i.ZZTZ_ID Connect By Prior ZZTZ_ID = SPLIT_NO) loop


    dbms_output.put_line('UPDATE TZZ_TZ SET SELF_NO='''||selfno||''' WHERE ZZTZ_ID='||j.ZZTZ_ID||';');
    if j.STATUS_ID=2 then
     dbms_output.put_line('UPDATE TZZ_OUT SET SELF_NO='''||selfno||''' WHERE ZZTZ_ID='||j.ZZTZ_ID||';');
    end if;
    
   
   end loop;
     dbms_output.put_line('---------end '||i.zztz_id||'--------');
   
   END LOOP;
END;

输出生成的SQL语句:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yxlalm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值