• Oracle 如何循环查询结果集,进行新增或修改


    Oracle的PL/SQL中怎样循环查询的结果集,然后根据查询结果进行判断,是新增或修改操作

    loop循环例子

    for item in (select a,b,c from table_a where 条件) loop
    insert into table_b(a,b,c) values (item.a,item.b,item.c);
    end loop;

    如何将查询结果集进行赋值

    -- 获取结算单位是否存在(查询结果集赋值)---
    select COUNT(*) into conNum from Dxc_Consignor where NAME=balance_Name;

    循环结果集,对每一个结果进行判断,如存在,执行修改,不存在,执行新增

    复制代码
    ----循环修改运输记录的货主的TmsCode  方法---
    declare
      balance_Id varchar2(100);
      balance_Name varchar2(100);
      conNum number;
    begin      
         --循环运输记录中的结算单位(ID,NAME)(查询结果集循环)--
         for item in (select A.BALANCE_ID,A.BALANCE_NAME from VIEW_GZ_YIMIAO A group by A.BALANCE_ID,A.BALANCE_NAME) loop
             -- 将查询到的数据赋值给变量 --
             balance_Id := item.balance_id;
             balance_Name := item.balance_name;      
             -- 获取结算单位是否存在(查询结果集赋值)---
             select COUNT(*) into conNum from Dxc_Consignor where NAME=balance_Name;
             --判断是否存在,存在则将结算单位ID赋给货主的TmsCode --
             if conNum=1 then
                  dbms_output.put_line('存在');
                    --执行修改--
                  update Dxc_Consignor set TMSCODE=balance_Id where NAME=balance_Name;
             else
                  dbms_output.put_line('不存在');
                  --执行新增--
             end if;
                    
          end loop;    
    end; 
    复制代码

    循环的结果集的视图

    执行的结果视图

    PS:

    参考网址:https://zhidao.baidu.com/question/478447631.html

    平时多记记,到用时才能看看,记录你的进步,分享你的成果
  • 相关阅读:
    Java虚拟机一
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException
    Java虚拟机
    topcoder srm 663 div1
    topcoder srm 694 div1 -3
    topcoder srm 695 div1 -3
    topcoder srm 696 div1 -3
    topcoder srm 697 div1 -3
    topcoder srm 661 div1
    topcoder srm 698 div1 -3
  • 原文地址:https://www.cnblogs.com/roak/p/15979312.html
Copyright © 2020-2023  润新知