zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Ubuntu 14.04设置开机启动脚本的方法
    python 筛选
    分段压缩
    ubuntu 16.04 启用root用户方法
    Ubuntu 16.04 设置MySQL远程访问权限
    [分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序
    ubuntu live cd修复grub引导项
    安装dcm4chee-arc-light-5.4.1-mysql步骤
    数据库学习--wildfly配置postgreSQL数据源
    wildfly配置PostgreSQL数据源
  • 原文地址:https://www.cnblogs.com/xielong/p/9789544.html
Copyright © 2011-2022 走看看