zoukankan      html  css  js  c++  java
  • oracle 存储过程第四天

    http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html 关于游标的文件。

    create or replace
    procedure hourInDaya
    as
    cursor unitAll is select unit_id from tbl_unit_info;--所有单位
    cursor typeAll is select id from tbl_en_type; --所有分类
    --cursor hournum is select EN_VAL_ORG,EN_VAL_STD,EN_COST,UNIT_ID,SUPER_ID,INDS_ID,EN_TYPE_ID,STAND_COE from tbl_unit_en_type_hour
    --where to_date(sysdate-1,'dd-mon-yyyy')  = to_date(en_date,'dd-mon-yyyy');
    cursor hournum(unitid varchar2,typeid varchar2) is select *  from tbl_unit_en_type_hour --带参数的游标
    where to_date(sysdate-1,'dd-mon-yyyy')  = to_date(en_date,'dd-mon-yyyy')
    and unit_id = unitid and en_type_id = typeid;
    --unit  varchar2(32);  --接受所有单位
    unit tbl_unit_info.unit_id%type;    --给unit 设置 与tbl_unit_info表。unit_id字段类型相同
    --typea varchar2(32); --接受所有分类
    typea tbl_en_type.id%type;       -- 给typea 设置 tbl_en_type  表 id字段类型相同
    --hournums varchar(32); --接受小时表查询出来的数据
    hournums tbl_unit_en_type_hour%rowtype;  --定义一个游标变量与tbl_unit_en_type_hour表一行数据类型相同
    --unitid varchar(32); --保存单位id
    --typeIdd varchar(32);
    envalorg number;
    envalstd number;
    encost number;
    flag number;
    unit_id varchar2(32);
    type_id varchar2(32);
    begin
    envalorg :=0;
    envalstd :=0;
    encost :=0;
    flag :=0;
    for unit in unitAll loop --1
        begin--2
        unit_id := unit.unit_id;
          for typea in typeAll loop --3
          begin --4
            type_id :=typea.id;
              -- dbms_output.put_line(unit_id||'------'||type_id);
            --   dbms_output.put_line('ccccccccccccccccccccc');
            for hournums in hournum(unit_id,type_id) loop--5 hournum
              begin--6
                  dbms_output.put_line('ssssssssssssssssssssssssssss');
                envalorg := envalorg + hournums.EN_VAL_ORG;
                envalstd := envalstd + hournums.EN_VAL_STD;
                encost := encost + hournums.EN_COST;
                flag :=1;
              end;--6
              end loop;--5    
               if flag=1 then
               begin
                     INSERT INTO TBL_UNIT_EN_TYPE_DAY ( id,EN_VAL_ORG, EN_VAL_STD, UNIT_ID, SUPER_ID, INDS_ID, EN_TYPE_ID, EN_DATE, CREATED_DATE, CREATED_BY, CREATED_PRG_NM, UPDATED_DATE, UPDATED_BY, UPDATED_PRG_NM, MODIFY_COUNT, STAND_COE, COUNT_FLAG, EN_COST)
                     VALUES ( USER_SEQ.nextval,envalorg,envalstd ,unit_id , '402881fa3a687abb013a688885f1000b', '402881ef3b5f0667013b5f082db60002',type_id , sysdate, sysdate, 'system', 'system', sysdate, 'system', 'system', '0', '0', '0', encost);
                     COMMIT;
                      dbms_output.put_line(encost);
                      dbms_output.put_line(envalorg);
                      dbms_output.put_line(envalstd);
                     flag := 0;
                     envalorg :=0;
                     envalstd :=0;
                     encost :=0;
               end;
               end if;
             end;--4
          end loop;--3
        end;--2
      end loop;
    end;
    执行语句:
    set serveroutput on;
    execute hourInDaya;

  • 相关阅读:
    HDU 1548 A strange lift (Dijkstra)
    HDU 1217 Arbitrage (Floyd)
    HDU 1385 Minimum Transport Cost (Dijstra 最短路)
    考研总结 2016-12-31 20:10 219人阅读 评论(21) 收藏
    归并排序 2016-12-30 20:17 208人阅读 评论(21) 收藏
    docker安装 2016-11-06 19:14 299人阅读 评论(31) 收藏
    Docker初步了解 2016-10-30 20:46 279人阅读 评论(31) 收藏
    [自考]感想 2016-10-23 20:28 261人阅读 评论(32) 收藏
    [自考]C++中一些特殊用法 2016-10-16 22:12 318人阅读 评论(30) 收藏
    Fitnesse批量读取变量信息,并保存到用例执行上下文中
  • 原文地址:https://www.cnblogs.com/mingtian521/p/3126767.html
Copyright © 2011-2022 走看看