博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 存储过程第四天
阅读量:5282 次
发布时间:2019-06-14

本文共 2436 字,大约阅读时间需要 8 分钟。

 

 关于游标的文件。

 

 

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;

 

转载于:https://www.cnblogs.com/mingtian521/archive/2013/06/08/3126767.html

你可能感兴趣的文章
C/C++知识补充 (1)
查看>>
Fast Poisson Disk Sampling
查看>>
Python Cookbook(第3版)中文版:15.14 传递Unicode字符串给C函数库
查看>>
Linux下SVN自动更新web [转]
查看>>
编程:对经验世界的析构与建构
查看>>
Openstack api 学习文档 & restclient使用文档
查看>>
vim linux下查找显示^M并且删除
查看>>
poj100纪念
查看>>
ExtJs4 笔记(5) Ext.Button 按钮
查看>>
把execl导入到数据库中
查看>>
阿里云人脸比对API封装
查看>>
如何将数据库中的表导入到PowerDesigner中(转)
查看>>
汇编总结一
查看>>
html5-表单常见操作
查看>>
String = ""和String = null的区别
查看>>
C#测试题若干,都是基础阿
查看>>
NetWork——关于TCP协议的三次握手和四次挥手
查看>>
An easy problem
查看>>
MauiMETA工具的使用(一)
查看>>
LeetCode: Anagrams 解题报告
查看>>