Oracle 游标混合使用

存储过程:cursor_4 (cursor_1 +cursor_2 +cursor_3 )

CREATE OR REPLACE PROCEDURE TKSWSHRZS.PROC_BBBBB(in_FYear NUMBER ,in_FPeriod  NUMBER  ) 
ISv_name varchar2(100) :='';v_adminnumber varchar2(100) :='';v_Company_FNumber  VARCHAR2(100) :='';v_Company_FNumber_sub  VARCHAR2(100) :='';v_Company_FNumber_4  VARCHAR2(100) :='';v_FYear   number(10,0) := 0;v_FPeriod  number(10,0) := 0;v_sum  number(18,2) := 0;  cur_s1 number(18,2) := 0;cur_s7 number(18,2) := 0;cur_chaoE  number(18,2) := 0;   ---超额奖---- 
v_chaoE_sj  number(18,2) := 0;   ---超额奖----cur_yuSuan  number(18,2) := 0;   ---预算
v_yuSuan  number(18,2) := 0;   ---预算----CURSOR cursor_4 IS 	select FNUMBER  from T_ORG_Admin where LENGTH(FLONGNUMBER )=4  order by FLONGNUMBER;	CURSOR cursor_1 IS   SELECT   admin.FNUMBER ,SCTABLE.FPERIODYEAR,sum(NVL(scTable.s1,0)  ),SUM(NVL(scTable.s7,0) ) FROM  T_HR_SCmpCalTable scTableINNER JOIN T_ORG_Admin       admin   ON     admin.fid=scTable.fadminorgUnitidINNER JOIN T_HR_SCALSCHEME   scheme  on     scTable.fcalschemeid=scheme.fid  WHERE     scTable.FPERIODYEAR = in_FYear          ----in_FYearand  scTable.FPERIODMONTH <= in_FPeriod     ----in_FPeriodAND admin.fnumber LIKE CONCAT(v_Company_FNumber_4,'%')     --CONCAT('--- --组织 -----',v_Company_FNUMBER)  --'02%' group by admin.fnumber,scTable.FPERIODYEAR ORDER BY admin.fnumber;CURSOR cursor_2 IS 				SELECT   t5731.adminnumber  as  adminnumber, t5731.nianduz as nianduz , sum(      NVL(t5731.M4HP5,0) +  NVL(t5731.M2HP3JO4,0) +  NVL(t5731.M1HP2JYXO3JYX,0) +  NVL(t5731.M3HP4JO5,0) +  NVL(t5731.M8HM9,0) +  NVL(t5731.M5DM7HP6JYS,0) )   as chaoEFROM   T_MGR_ManagerEx20230920125731   t5731where  t5731.nianduz =  in_FYear  --今年	   in_FYearAND t5731.adminnumber = v_Company_FNumber_4group by t5731.adminnumber, t5731.nianduz  ORDER BY t5731.adminnumber ;CURSOR cursor_3 IS 				SELECT   t405.adminnumber    , t405.nianduz   , sum(  NVL(t405.xinchouZE,0)  )    FROM   T_MGR_ManagerEx20230920130405   t405where  t405.nianduz =  in_FYear  --今年	   in_FYearAND t405.adminnumber = v_Company_FNumber_4group by t405.adminnumber, t405.nianduz  ORDER BY t405.adminnumber ;					     BEGINv_FYear     := in_FYear;v_FPeriod    := in_FPeriod;DELETE FROM "t_GZYSZXQK_TBBBBB"    WHERE FYEAR = v_FYear AND fperiod=in_FPeriod;--    	   DELETE FROM t_GZYSZXQK_TBBBBB WHERE YEAR = v_FYear;--  外层循环-----组织 dbms_output.put_line('----------第 4 个游标------开始-----外层循环-----组织 -----');  begin--循环开始LOOPIF NOT cursor_4%ISOPEN  THENOPEN cursor_4;END IF; FETCH cursor_4 INTO  v_Company_FNumber_4 ;   --退出循环的条件EXIT WHEN cursor_4%NOTFOUND OR cursor_4%NOTFOUND IS NULL; dbms_output.put_line(CONCAT('----------第 4 个游标-----------外层循环-----组织 -----',v_Company_FNumber_4));  v_sum :=  0;----第一个游标dbms_output.put_line('----------第 1 个游标------开始----');  begin--循环开始LOOPIF NOT cursor_1%ISOPEN  THENOPEN cursor_1;END IF; FETCH cursor_1 INTO  v_Company_FNUMBER , v_FYear  ,cur_s1  ,cur_s7 ;   --退出循环的条件EXIT WHEN cursor_1%NOTFOUND OR cursor_1%NOTFOUND IS NULL; dbms_output.put_line(CONCAT('----第 1 个游标-----v_Company_FNUMBER--------',v_Company_FNUMBER));  v_sum := v_sum + cur_s1 + cur_s7;END LOOP;CLOSE cursor_1;END;dbms_output.put_line('----------第 1 个游标------结束----');  v_chaoE_sj := 0 ;----第 2 个游标dbms_output.put_line('----------第 2 个游标------开始----');  begin--循环开始LOOPIF NOT cursor_2%ISOPEN  THENOPEN cursor_2;END IF; FETCH cursor_2 INTO  v_adminnumber , v_FYear  ,cur_chaoE;   --退出循环的条件EXIT WHEN cursor_2%NOTFOUND OR cursor_2%NOTFOUND IS NULL; dbms_output.put_line(CONCAT('-----第 2 个游标--------v_adminnumber--------',v_adminnumber));  v_chaoE_sj := v_chaoE_sj + cur_chaoE;END LOOP;CLOSE cursor_2;END;dbms_output.put_line('----------第 2 个游标------结束----');  v_yuSuan := 0;----第3个游标dbms_output.put_line('----------第 3 个游标------开始----');  begin--循环开始LOOPIF NOT cursor_3%ISOPEN  THENOPEN cursor_3;END IF; FETCH cursor_3 INTO  v_adminnumber , v_FYear  ,cur_yuSuan;   --退出循环的条件EXIT WHEN cursor_3%NOTFOUND OR cursor_3%NOTFOUND IS NULL; dbms_output.put_line(CONCAT('-----第 3 个游标--------v_adminnumber--------',v_adminnumber));  v_yuSuan := v_yuSuan + cur_yuSuan;END LOOP;CLOSE cursor_3;END;dbms_output.put_line('----------第 3 个游标------结束----');  if(  v_yuSuan != 0) then
--	            INSERT INTO TKSWSHRZS."t_GZYSZXQK_TBBBBB"    -----工资预算执行情况
--					(ADMINNUMBER, "FYEAR",FPERIOD, YUSUAN, SHIJI, CHAE, ZHIXINGBILI, CREATETIME)
--			    VALUES(v_Company_FNumber_4,in_FYear,in_FPeriod, v_yuSuan, v_sum+v_chaoE_sj, v_yuSuan-(v_sum+v_chaoE_sj),  ROUND((v_sum+v_chaoE_sj)/ v_yuSuan  , 6) , SYSDATE);
--	   INSERT INTO TKSWSHRZS."t_GZYSZXQK_TBBBBB"    -----工资预算执行情况(ADMINNUMBER, "FYEAR",FPERIOD, YUSUAN, SHIJI, CHAE, ZHIXINGBILI, CREATETIME)VALUES(v_Company_FNumber_4,in_FYear,in_FPeriod, v_yuSuan, v_sum+v_chaoE_sj, v_yuSuan-(v_sum+v_chaoE_sj),  CONCAT(TO_CHAR(  ROUND((v_sum+v_chaoE_sj)/ v_yuSuan  , 4) *100 ) ,'%')    , SYSDATE);--			   SELECT CONCAT(TO_CHAR( ROUND(36385618.93/ 18040000  , 4) *100 ) ,'%')     FROM dual;elseINSERT INTO TKSWSHRZS."t_GZYSZXQK_TBBBBB"    -----工资预算执行情况(ADMINNUMBER, "FYEAR",FPERIOD, YUSUAN, SHIJI, CHAE, ZHIXINGBILI, CREATETIME)VALUES(v_Company_FNumber_4,in_FYear,in_FPeriod, v_yuSuan, v_sum+v_chaoE_sj, v_yuSuan-(v_sum+v_chaoE_sj), 0, SYSDATE);end if;END LOOP;CLOSE cursor_4;END;dbms_output.put_line('----------第 4 个游标------结束----');  -- 
--EXCEPTION
--when others then
--  P_RESULT:='插入失败';
end PROC_BBBBB;--
--declare
-- FYEAR number(10)  ;
-- FPERIOD number(10) ;
--begin
--  FYEAR := 2023;
-- FPERIOD := 10;
--    PROC_BBBBB( FYEAR  , FPERIOD );
--end;
--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI百模大战:引领行业变革与开启人才黄金时代

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux学习 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 技术进步&#xff1a;AI的飞速发展 1. 深度学习的多领域应用 2. 自然语言处理的语境理解提升 3. 计算机视觉的实时处理能力提高 4…

Python学习笔记(六):函数的多返回值、函数的多种参数使用形式、匿名函数、文件的读取操作、文件的写入 、文件的追加

目录 一、函数的多返回值 二、函数的多种参数使用形式 2.1位置参数 2.2关键字参数 2.3缺省参数 2.4不定长参数 三、匿名函数 3.1 函数作为参数传递 3.2 函数的定义 3.3 匿名函数定义语法&#xff1a; 四、文件的读取操作 4.1 open&#xff08;&#xff09;打开函数…

图卷积神经网络发展

1. 图神经网络&#xff08;GNN&#xff09; 图神经网络的概念最早在2005年提出。2009年Franco博士在其论文 [2]中定义了图神经网络的理论基础。 本文中所提到的图均指图论中的图(Graph)。它是一种由若干个结点(Node)及连接两个结点的边(Edge)所构成的图形&#xff0c;用于刻画…

ETL-从1学到100(1/100):ETL涉及到的名词解释

本文章主要介绍ETL和大数据中涉及到名词&#xff0c;同时解释这些名词的含义。由于不是一次性收集这些名词&#xff0c;所以这篇文章将会持续更新&#xff0c;更新日志会存放在本段话下面&#xff1a; 12-19更新&#xff1a;OLTP、OLAP、BI、ETL。 12-20更新&#xff1a;ELT、…

php文本文件操作和php文本文件操作像数据库一样操

一、在PHP中&#xff0c;你可以使用一些内置的函数来进行文本文件操作。下面是一些常见的文本文件操作示 例&#xff1a; 打开文件&#xff1a; $filename "example.txt"; $file fopen($filename, "r"); // 打开文件以供读取 $file fopen($filename,…

【模式识别】解锁降维奥秘:深度剖析PCA人脸识别技术

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《模式之谜 | 数据奇迹解码》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 &#x1f30c;1 初识模式识…

12.20力扣

2828. 判别首字母缩略词 题目介绍&#xff1a;   给你一个字符串数组 words 和一个字符串 s &#xff0c;请你判断 s 是不是 words 的 首字母缩略词 。   如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s &#xff0c;则认为 s 是 words 的首字母缩略词。…

智能化物联网(IoT):发展、问题与未来前景

导言 智能化物联网&#xff08;IoT&#xff09;作为信息技术领域的一项核心技术&#xff0c;正在深刻改变人们的生活和工作方式。本文将深入研究IoT的发展过程、遇到的问题及解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。探讨在哪些方面能够取得胜利…

k8s-ingress特性 9

TLS加密 创建证书 测试访问 auth认证 创建认证文件 rewrite重定向 进入域名时&#xff0c;会自动重定向到hostname.html 示例&#xff1a; 测试 版本的升级迭代&#xff0c;之前利用控制器进行滚动更新&#xff0c;在升级过程中无法做到快速回滚 更加平滑的升级&#xff1…

【数据结构】线段树算法总结(区间修改)

知识概览 线段树一般有5个操作&#xff1a; pushup&#xff1a;用子节点更新当前节点信息pushdown&#xff1a;把懒标记往下传build&#xff1a;初始化一棵树modify&#xff1a;修改一个区间query&#xff1a;查询一个区间 不带懒标记&#xff08;支持单点修改&#xff09;的线…

【PostgreSQL】从零开始:(二十)数据类型-日期/时间类型

日期/时间类型是一种数据类型&#xff0c;用于表示日期和时间的值。在PostgreSQL数据库中&#xff0c;日期/时间类型通常包括以下几种形式&#xff1a; 名字存储大小描述最低值最高值最小单位timestamp [(p)][without time zone]8字节日期和时间(无时区公元前4713年294276 AD1…

Mysql-干净卸载教程

卸载 服务停掉 先把mysql服务停掉&#xff0c;如下点击右键&#xff0c;停止运行。 删除C盘内文件 接下来c盘里面的三个文件下的MySQL一一删除&#xff0c;需要注意的是 需要注意的是programdata文件下可能 隐藏了MySQL文件&#xff0c;所以可以在查看选项显示隐藏的文件。 …

PolarDB-X、OceanBase、CockroachDB、TiDB二级索引写入性能测评

为什么要做这个测试 二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的&#xff0c;因此索引的写入需要与主键的写入放在一个事务当中&#xff0c;事务的性能是二级索引性能的基础。 目前市面上的分布式数据库中&#xff0c;从使用体验的角度看…

前后端分离下的鸿鹄电子招投标系统:使用Spring Boot、Mybatis、Redis和Layui实现源码与立项流程

在数字化时代&#xff0c;采购管理也正经历着前所未有的变革。全过程数字化采购管理成为了企业追求高效、透明和规范的关键。该系统通过Spring Cloud、Spring Boot2、Mybatis等先进技术&#xff0c;打造了从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通过…

argmin与argmax

argmin 是一个数学术语&#xff0c;用于表示一个函数在其定义域中取得最小值的参数值&#xff08;自变量的值&#xff09;&#xff0c;而不是最小值本身。 具体来说&#xff0c;argmin 表示函数的自变量&#xff08;通常是一个实数或向量&#xff09;&#xff0c;当输入到该函数…

VueRouter路由

目录 一、路由的基本使用 二、多级路由 三、路由的query参数 四、命令路由 五、路由的params参数 六、路由的props配置 七、router-link的replace的属性 八、编程式路由导航 九、缓存路由组件 十、全局路由守卫 十二、组件内部路由守卫 十三、history模式和hash模式…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言&#xff0c;是一种动态类型、弱类型、基于原型继承的语言&#xff0c;内置支持类型。 它的解释器被称为JavaScript引擎&#xff0c;作为浏览器的一部分&#xff0c;广泛用于客户端的脚本语言&#xff0c;用来给HTML网页增加…

Linux:APP运行与用户态以及内核态、APP收到的信号处理

目录 定义&#xff1a;何为用户态&#xff0c;何为内核态&#xff1f;问题一&#xff1a;app何时进入内核态&#xff0c;何时退出&#xff1f;问题二&#xff1a;app进入/退出内核态时会进行那些操作呢&#xff1f;问题三&#xff1a;app在用户态/内核态处理信号&#xff0c;信…

统计个数并调用--函数设计与实现

#定义函数 count(s) ,统计字符串中小写字母、大写字母、数字的个数&#xff0c;并以字典为结果返回给调用函数。 # (1)判断字符类型 def count(s):#创建字典&#xff0c;用于保存变量dictionary {数字: 0, 小写字母: 0, 大写字母: 0, 其他字符: 0}for c in s:if c.isdigit():d…

AdaBoost提升方法

提升方法的基本思想是通过改变训练样本的权重学习多个分类器&#xff0c;并将这些线性分类器进行线性组合&#xff0c;提高分类性能。 AdaBoost 提高前一轮被分类错误样本的权值&#xff0c;降低前一轮被分类正确的权值&#xff1b;加大分类误差率小的弱分类器。 算法 输入&…