• 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

  • 相关阅读:
    实习第十天
    实习第九天
    实习第八天
    武汉第七天
    武汉第六天
    实习第五天
    实习第四天
    NSArray
    NSString
    NSObject
  • 原文地址:https://www.cnblogs.com/xielong/p/9789544.html
Copyright © 2020-2023  润新知