`

oracle_package\packeage body

阅读更多

 

---Package

CREATE OR REPLACE PACKAGE TEST_PACKAGE is
	
	-- Author  :  
	-- Created :  
	-- Purpose :  
	/*==================================================================================
	* 功能描述: 写数据库日志
	*=================================================================================*/
	PROCEDURE INSERTlOG(log_person     in VARCHAR2,
				log_class      in VARCHAR2,
				log_method     in VARCHAR2,
				log_info       in VARCHAR2,
				log_error_code in VARCHAR2);
				
END TEST_PACKAGE;
/

GRANT EXECUTE ON TEST.TEST_PACKAGE TO R_TEST_EXEC;

 

 ------Package Body

---Package body的模板
CREATE OR REPLACE PACKAGE BODY TEST_PACKAGE IS
	
	TYPE T_TEST_SEND_INFO IS RECORD(
		ID_TEST_SEND_INFO  INF_WECHAT_SEND_INFO.ID_WECHAT_SEND_INFO%TYPE,
		ROW_ID             ROWID
	);
	
	TYPE TBL_TEST_SEND_INFO IS TABLE OF T_TEST_SEND_INFO INDEX BY BINARY_INTEGER;
	
	----以行插入
	PROCEDURE SAVE_TEST_SEND_INFO(V_TEST_SEND_INFO TBL_TEST_SEND_INFO,
                                    O_MSG OUT VARCHAR2) IS
	    BULK_ERRORS EXCEPTION;
	    PRAGMA EXCEPTION_INIT(BULK_ERRORS, -24381);
    BEGIN
    	FORALL INDX IN INDICES OF V_TEST_SEND_INFO SAVE EXCEPTIONS
      		INSERT INTO INF_TEST_SEND_INFO
					       (ID_TEST_SEND_INFO,
					       ROWID)
					      VALUES
					       (V_TEST_SEND_INFO(INDX).ID_TEST_SEND_INFO,
					        V_TEST_SEND_INFO(INDX).ROW_ID);
					        
     	FORALL INDX IN INDICES OF V_TEST_SEND_INFO SAVE EXCEPTIONS
        	DELETE FROM INF_TEST_SEND_INFO WHERE ROWID=V_TEST_SEND_INFO(INDX).ROW_ID;
    EXCEPTION
    	WHEN BULK_ERRORS THEN
            IF O_MSG IS NULL THEN
                O_MSG := '插入到微信发送状态流水表异常' || SQLCODE || SUBSTR(SQLERRM, 1, 200);
            END IF;
	END SAVE_TEST_SEND_INFO;
	
	/************************************
	---批量将U数据添加到表中
	************************************/
	PROCEDURE SAVE_TO_TEST_SEND_INFO(O_MSG OUT VARCHAR2) IS
	    -- 游标行类型
	    VTBL_TEST_SEND_INFO TBL_TEST_SEND_INFO;
	    -- 游标
	    CURSOR CS_TEST_SEND_INFO IS
	    SELECT SYS_GUID() ID_TEST_SEND_INFO,
               ROWID ROW_ID
      	  FROM TEST_SEND_INFO I
         WHERE I.ID_TEST_SEND_INFO IS NOT NULL;

	BEGIN
		-- 打开游标
	    OPEN CS_TEST_SEND_INFO;
	    <<LP_CL_MAIN>>
	    LOOP
	         FETCH CS_TEST_SEND_INFO BULK COLLECT INTO VTBL_TEST_SEND_INFO LIMIT 1000;
	         -- 每1000行保存一次
	         SAVE_TEST_SEND_INFO(VTBL_TEST_SEND_INFO,O_MSG);
	         COMMIT;
	         -- 每1000行提交一次
	         EXIT LP_CL_MAIN WHEN CS_TEST_SEND_INFO%NOTFOUND;
	    END LOOP LP_CL_MAIN;
        -- 关闭游标
        CLOSE CS_TEST_SEND_INFO;
	END SAVE_TO_TEST_SEND_INFO;
	
	----插入日志
	PROCEDURE INSERTlOG(log_person     in VARCHAR2,
                      log_class      in VARCHAR2,
                      log_method     in VARCHAR2,
                      log_info       in VARCHAR2,
                      log_error_code in VARCHAR2) is
	  logPerson varchar2(100);
	begin
		IF (log_person IS NULL) THEN
			logPerson := 'SYSTEM';
		ELSE
			logPerson := log_person;
	END IF;
  
	insert into TEST.TEST_COMM_LOG
      (ID_COMM_LOG,
       LOG_PERSON,
       LOG_CLASS,
       LOG_METHOD,
       LOG_INFO,
       LOG_ERROR_CODE,
       LOG_TIME)
    values
      (SYS_GUID(),
       logPerson,
       log_class,
       log_method,
       log_info,
       log_error_code,
       sysdate);
    commit;
  end;
  
  
  
  


END TEST_PACKAGE;
/

 ----triger

--创建数据时CREATED_BY,CREATED_DATE,UPDATED_BY,UPDATED_DATE自动赋值 
CREATE OR REPLACE TRIGGER BUSSINESS_BI
   BEFORE INSERT ON TEST_BUSSINESS
   FOR EACH ROW
DECLARE
   V_TRIGGER_USER_CREATED VARCHAR2(100);
   V_TRIGGER_USER_UPDATED VARCHAR2(100);
   V_TRIGGER_DATE         DATE;
   
   V_STATUS TEST.TR_SWITCH.STATUS%TYPE;
   CURSOR C_SWITCH(CP_SWITCH TEST.TR_SWITCH.SWITCH_FOR%TYPE) IS
      SELECT STATUS 
        FROM PADINFODATA.TR_SWITCH
       WHERE TRIGGER_NAME = 'INF_BUSSINESS_BI'
         AND SWITCH_FOR   = CP_SWITCH;  

   V_SQLCODE       VARCHAR2(6);
   V_SQLERRM       VARCHAR2(200);
   V_ERROR_COMMENT VARCHAR2(300);
BEGIN
   V_ERROR_COMMENT := 'BEFORE GET_USER';

   --SET CREATED_BY
   IF :NEW.CREATED_BY IS NULL THEN
      V_TRIGGER_USER_CREATED := USER;
   ELSE
      V_TRIGGER_USER_CREATED := :NEW.CREATED_BY;
   END IF;

   --SET UPDATED_BY
   IF :NEW.UPDATED_BY IS NULL THEN
       V_TRIGGER_USER_UPDATED := V_TRIGGER_USER_CREATED;
   ELSE
       V_TRIGGER_USER_UPDATED := :NEW.UPDATED_BY;
   END IF;

   V_TRIGGER_DATE := SYSDATE;

   --需求来源:表中记录的审计字段信息的更新
   --功能描述:用于保证审计信息的完整性 和一致性
   V_ERROR_COMMENT:='BEFORE NETS_INSERT_AUDIT';
   OPEN C_SWITCH('NETS_INSERT_AUDIT');       --获取子功能控制信息
   FETCH C_SWITCH INTO V_STATUS;
   IF C_SWITCH%FOUND AND V_STATUS = '1' THEN
      :NEW.CREATED_DATE := V_TRIGGER_DATE;
      :NEW.UPDATED_DATE := V_TRIGGER_DATE;
      :NEW.CREATED_BY   := V_TRIGGER_USER_CREATED;
      :NEW.UPDATED_BY   := V_TRIGGER_USER_UPDATED;
   END IF;
   CLOSE C_SWITCH;

   --出错处理。触发器执行有误,将出错信息插入到tr_error_log表
   EXCEPTION
      WHEN OTHERS THEN
      V_SQLCODE := SQLCODE;
      V_SQLERRM := SUBSTR(SQLERRM,1,200);
      INSERT INTO TEST.TR_ERROR_LOG
                 (ERROR_NO          ,         --系统错误代码
                  ERROR_MESSAGE     ,         --系统错误信息
                  TRIGGER_NAME      ,         --出错的trigger
                  TRIGGER_USER      ,         --出错的用户
                  TRIGGER_DATE      ,         --出错的时间
                  ERROR_COMMENT               --出错详细信息
                  )
                  VALUES
                 (V_SQLCODE,
                  V_SQLERRM,
                  'INF_BUSSINESS_BI',
                  V_TRIGGER_USER_CREATED,
                  V_TRIGGER_DATE,
                  V_ERROR_COMMENT
                  );
END;
/ 

 

 

 

 ------

 

 ------

 ------

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle-jar-packege.rar_oracle

    总之,"oracle-jar-packeage.rar_oracle"提供的Oracle连接包是Java应用程序与Oracle数据库通信的关键,它简化了数据库连接的步骤,使开发者能够方便地利用Java实现对Oracle数据库的操作。在使用过程中,应注意选择...

    Python packeage

    【Python package】是一个个人使用的Python库集合,包含了多个在Python编程中常用的库,适用于Windows操作系统。这个集合展示了Python在处理不同任务时的强大扩展性。让我们逐一解析这些库的功能和应用场景。 1. **...

    eslint-config:CLEO.one的ESLint配置

    packeage.json { " devDependencies " : { " babel-eslint " : " 9.0.0 " , " eslint " : " ^5.16.0 " , " eslint-config-cleo-one " : " ^1.0.0 " , " eslint-config-prettier " : " ^4.1.0 " , " eslint-...

    TinyYolo2实时视频流物体检测ONNX模型

    TinyYolo2实时视频流物体检测ONNX模型 运行 ONNX 模型,并结合 OpenCV 进行图像处理。具体流程包括: 1. 加载并初始化 ONNX 模型。 2. 从摄像头捕获实时视频流。 3. 对每一帧图像进行模型推理,生成物体检测结果。 4. 在界面上绘制检测结果的边界框和标签。

    chromedriver-linux64-134.0.6998.23(Beta).zip

    chromedriver-linux64-134.0.6998.23(Beta).zip

    Web开发:ABP框架4-DDD四层架构的详解

    Web开发:ABP框架4-DDD四层架构的详解

    chromedriver-linux64-135.0.7029.0(Canary).zip

    chromedriver-linux64-135.0.7029.0(Canary).zip

    (参考项目)MATLAB人脸门禁系统.zip

    实现人脸识别的考勤门禁系统可以分为以下步骤: 1. 采集人脸图像数据集:首先需要采集员工的人脸图像数据集,包括正面、侧面等多个角度的图像。可以使用MATLAB中的图像采集工具或者第三方库进行采集。 2. 预处理人脸图像数据:对采集到的人脸图像数据进行预处理,包括人脸检测、人脸对齐、人脸裁剪等操作。MATLAB提供了相关的图像处理工具箱,可以用于实现这些处理步骤。 3. 特征提取与特征匹配:使用人脸识别算法提取人脸图像的特征,比如使用人脸识别中常用的特征提取算法如Eigenfaces、Fisherfaces或者基于深度学习的算法。然后将员工的人脸数据与数据库中的人脸数据进行匹配,判断是否为注册员工。 4. 考勤记录与门禁控制:如果人脸匹配成功,系统可以记录员工的考勤时间,并且控制门禁系统进行开启。MATLAB可以与外部设备进行通信,实现门禁控制以及考勤记录功能。

    rdtyfv、ijij

    yugy

    企业IT治理体系规划.pptx

    企业IT治理体系规划.pptx

    基于Nutz、SSH、SSM的新闻管理系统.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,MATLAB代码:基于多目标粒子群算法冷热电联供综合能源系统运行

    基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,基于多目标粒子群算法的冷热电联供综合能源系统优化调度与运行策略分析,MATLAB代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化 关键词:综合能源 冷热电三联供 粒子群算法 多目标优化 参考文档:《基于多目标算法的冷热电联供型综合能源系统运行优化》 仿真平台:MATLAB 平台采用粒子群实现求解 优势:代码注释详实,适合参考学习,非目前烂大街的版本,程序非常精品,请仔细辨识 主要内容:代码构建了含冷、热、电负荷的冷热电联供型综合能源系统优化调度模型,考虑了燃气轮机、电制冷机、锅炉以及风光机组等资源,并且考虑与上级电网的购电交易,综合考虑了用户购电购热冷量的成本、CCHP收益以及成本等各种因素,从而实现CCHP系统的经济运行,求解采用的是MOPSO算法(多目标粒子群算法),求解效果极佳,具体可以看图 ,核心关键词: 综合能源系统; 冷热电三联供; 粒子群算法; 多目标优化; MOPSO算法; 优化调度模型; 燃气轮机; 电制冷机; 锅炉; 风光机组; 上级电网购售电交易。,基于多目标粒子群算法的CCHP综合

    DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发串口通信方案,DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发实现串口通信,DSP28379D串口升

    DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发串口通信方案,DSP28379D串口升级方案:单核双核升级与Boot优化,C#上位机开发实现串口通信,DSP28379D串口升级方案 单核双核升级,boot升级,串口方案。 上位机用c#开发。 ,DSP28379D; 串口升级方案; 单核双核升级; boot升级; 上位机C#开发,DSP28379D串口双核升级方案:Boot串口升级技术使用C#上位机开发

    基于ASP.NET MVC+三层架构和EntityFramework的微博门户网站项目.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    基于PLC的双层自动门控制:光电传感触发,有序开关与延时功能实现,附程序、画面及参考文档 ,基于PLC的双层自动门控制系统:精准控制,保障无尘环境;门间联动,智能安防新体验 ,基于plc的双层自动门控

    基于PLC的双层自动门控制:光电传感触发,有序开关与延时功能实现,附程序、画面及参考文档。,基于PLC的双层自动门控制系统:精准控制,保障无尘环境;门间联动,智能安防新体验。,基于plc的双层自动门控制系统,全部采用博途仿真完成,提供程序,画面,参考文档,详情见图。 实现功能(详见上方演示视频): ① 某房间要求尽可能地保持无尘,在通道上设置了两道电动门,门1和门2,可通过光电传感器自动完成门的打开和关闭。 门1和门2 不能同时打开。 ② 第 1 道门(根据出入方向不同,可能是门 1 或门 2),是由在通道外的开门者通过按开门按钮打开的,而第 2 道门(根据出入方向不同,可能是门 1 或门 2 )则是在打开的第 1 道门关闭后自动地打开的(也可以由通道内的人按开门按钮来打开第2 道门)。 这两道门都是在门开后,经过 3s 的延时而自动关闭的。 ③ 在门关闭期间,如果对应的光电传感器的信号被遮断,则门立即自动打开。 如果在门外或者在门内的开门者按对应的开门按钮时,立即打开。 ④ 出于安全方面的考虑,如果在通道内的某个人经过光电传感器时,对应的门已经打开,则通道外的开门者可以不按开门按钮。

    黑马程序员Java品达通用权限项目,基于SpringCloud SpringBoot 的微服务框架的权限管理解决方案.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    DeepSeek+DeepResearch-让科研像聊天一样简单

    DeepSeek+DeepResearch——让科研像聊天一样简单 (1)DeepSeek如何做数据分析? (2)DeepSeek如何分析文件内容? (3)DeepSeek如何进行数据挖掘? (4)DeepSeek如何进行科学研究? (5)DeepSeek如何写综述? (6)DeepSeek如何进行数据可视化? (7)DeepSeek如何写作润色? (8)DeepSeek如何中英文互译? (9)DeepSeek如何做降重? (10)DeepSeek论文参考文献指令 (11)DeepSeek基础知识。

    基于springboot+uniapp实现的蛋糕商城小程序.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

    jdepend-demo-2.9.1-10.el7.x64-86.rpm.tar.gz

    1、文件内容:jdepend-demo-2.9.1-10.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/jdepend-demo-2.9.1-10.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊

    关爱儿童公益网站 web 项目.zip

    项目工程资源经过严格测试运行并且功能上ok,可实现复现复刻,拿到资料包后可实现复现出一样的项目,本人系统开发经验充足(全栈全领域),有任何使用问题欢迎随时与我联系,我会抽时间努力为您解惑,提供帮助 【资源内容】:包含源码+工程文件+说明等。答辩评审平均分达到96分,放心下载使用!可实现复现;设计报告也可借鉴此项目;该资源内项目代码都经过测试运行;功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 下载后请首先打开说明文件(如有);整理时不同项目所包含资源内容不同;项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用

Global site tag (gtag.js) - Google Analytics