zoukankan      html  css  js  c++  java
  • Oracle游标

    解决问题:之前结存量中间表WMSBEGINNINGDATELIN使用BEGD_DAT来区分会计期间,不是非常合理,改为使用CLD_NO。但是WMSBEGINNINGDATELIN表的CLD_NO字段最初没有插入维护,所以需要对历史数据做批量维护。

    ---------------------结存量中间表补全CLD_NO脚本-----------------------

    --1.备份表

    create table t_20180316_WMSBEGINNINGDATELIN as select * from WMSBEGINNINGDATELIN;

    --2.查看临时表备份

    select * from t_20180316_WMSBEGINNINGDATELIN ;

    --3.创建临时表记录要修改的结果集

    create table t_20180316_temp as
    select CLD_NO,CLDPRD_MON from WMSCLDMST

    --4.批量执行插入

    declare
    v_cld_no WMSBEGINNINGDATELIN.CLD_NO%type;
    v_begd_dat WMSBEGINNINGDATELIN.BEGD_DAT%type;
    v_i number;
    cursor cur is
    select CLD_NO,CLDPRD_MON from t_20180316_temp;
    begin
    open cur;
    loop
    fetch cur
    into v_cld_no,v_begd_dat;
    exit when cur %notfound;
    update WMSBEGINNINGDATELIN set CLD_NO = v_cld_no where BEGD_DAT = v_begd_dat;
    v_i := v_i+1;
    if v_i>=500 then commit;
    end if;
    end loop;
    close cur;
    exception
    when others then
    dbms_output.put_line('error!');
    end;

    注意:t_20180316_WMSBEGINNINGDATELIN、t_20180316_temp 两个属于临时备份表,‘4.批量执行插入’语句执行后,要将临时表备份表drop掉。

  • 相关阅读:
    JavaScript 闭包
    JavaScript Ajax
    JQuery简介
    NYOJ--491--dfs(打表水过)--幸运三角形
    素数环:NYOJ--488--dfs||hdu-1016-Prime Ring Problem
    NYOJ--353--bfs+优先队列--3D dungeon
    NYOJ--325--深度优先搜索--zb的生日
    NYOJ--202--红黑树
    第一个Android程序
    Vmware虚拟机安装win7系统教程
  • 原文地址:https://www.cnblogs.com/xianfengzhike/p/10239113.html
Copyright © 2011-2022 走看看