oracle 存储过程使用实例
来源:互联网 发布:mac怎么充电器怎么连接 编辑:程序博客网 时间:2024/05/19 00:47
1.建包
2.建包体
3.主要的地方
A.包中定义的存储过程如果没有参数则不需要括号。
B.包和包体中的存储过程要一一对应。
C.type region_array is varray(50) of varchar2(20); 是定义数组的意思。
D.定义一个游标属性 type RESULT_CUR is ref cursor;RESULT_CUR_REF RESULT_CUR;
4.存储过程的DEBUG调试
1.首先右键该存储过程点击Add Debug Information
2.然后右键该存储过程点击Test
3.然后输入需要的参数或不输入
4.然后右键该存储过程点击View 点击行号出现红色叉叉表示断点
5.然后回到Test页面点击F9或页面上最左边的按钮 然后点击Run 一步一步执行则点击Run旁边左边的按钮就行
CREATE OR REPLACE PACKAGE PKG_XXX IS PROCEDURE proc_main ; PROCEDURE proc_xx1 ; PROCEDURE proc_xx1_rule(TABLE_NAME IN VARCHAR2,xxx_NAME IN VARCHAR2);END PKG_AM_EXP_PREWARNINGS;
2.建包体
CREATE OR REPLACE PACKAGE BODY PKG_XXX IS --定义时间 主要用于查询 default_date constant VARCHAR2(10) := TO_CHAR(SYSDATE, 'YYYY-MM-DD'); --定义字符串数组类型 TYPE T_ARRAY IS ARRAY(50) OF VARCHAR2(20); --返回字符串数组函数 FUNCTION GETARR RETURN T_REGION_ARRAY IS var_array T_ARRAY; BEGIN var_array := T_ARRAY('', '', ''); RETURN var_array; END GETARR; --主存储过程调用其他存储过程 PROCEDURE proc_main AS BEGIN proc_xx1(); proc_xx1_rule('',''); END proc_prewarning_main; procedure proc_xx1 AS --定义字符串数组 type region_array is varray(50) of varchar2(20); var_array1 region_array:=region_array('1','2', '2','3','2', '2','2','2','1','2'); var_array2 region_array:=region_array('1','2', '2','3','2', '2','2','2','1','2'); var_array3 region_array:=region_array('1','2', '2','3','2', '2','2','2','1','2'); BEGIN for i in 1..var_array1.count loop PROC_LOAD_xx('AM_EXP_DEVICE_T',var_array1(i)); end loop ; for i in 1..var_array2.count loop DBMS_OUTPUT.put_line(123); PROC_LOAD_xx('AM_EXP_WORK_CONDITION_T',var_array2(i)); end loop ; for i in 1..var_array3.count loop PROC_LOAD_xx('AM_EXP_USEELECTRIC_T',var_array3(i)); end loop ; END proc_prewarning_all_wud; PROCEDURE PROC_LOAD_xx(TABLE_NAME IN VARCHAR2, xxx_NAME IN VARCHAR2) IS SQLSTR VARCHAR2(1500); TYPENAME VARCHAR2(20); BEGIN IF TABLE_NAME = 'AM1' THEN TYPENAME := '3'; ELSIF TABLE_NAME = 'AM2' THEN TYPENAME := '2'; ELSE TYPENAME := '1'; END IF; SQLSTR := ''; EXECUTE IMMEDIATE SQLSTR into xx, xx, xx; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END proc_xx1; procedure proc_xx1_rule(REGION_NAME IN VARCHAR2) IS SQLSTR VARCHAR2(1500); --定义一个游标属性 type RESULT_CUR is ref cursor; RESULT_CUR_REF RESULT_CUR; --定义数组 type region_array is varray(50) of varchar2(20); BEGIN var_array1 region_array:=region_array('1','2', '2','3','2', '2','2','2','1','2'); for i in 1 .. var_array1.count loop SQLSTR := '拼接SQL' ; DBMS_OUTPUT.put_line(SQLSTR); --游标结合SQL字符串 OPEN RESULT_CUR_REF FOR SQLSTR; --插入相关信息 loop fetch RESULT_CUR_REF into xx, xx, xx, xx; exit when RESULT_CUR_REF%NOTFOUND; --对取得的数据进行操作 end loop; end loop; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END proc_xx1_rule;END PKG_XXX;
3.主要的地方
A.包中定义的存储过程如果没有参数则不需要括号。
B.包和包体中的存储过程要一一对应。
C.type region_array is varray(50) of varchar2(20); 是定义数组的意思。
D.定义一个游标属性 type RESULT_CUR is ref cursor;RESULT_CUR_REF RESULT_CUR;
4.存储过程的DEBUG调试
1.首先右键该存储过程点击Add Debug Information
2.然后右键该存储过程点击Test
3.然后输入需要的参数或不输入
4.然后右键该存储过程点击View 点击行号出现红色叉叉表示断点
5.然后回到Test页面点击F9或页面上最左边的按钮 然后点击Run 一步一步执行则点击Run旁边左边的按钮就行
0 0
- oracle 存储过程使用实例
- oracle存储过程的使用J2EE实例
- oracle存储过程与游标使用实例
- Oracle 存储过程实例
- Oracle存储过程实例
- oracle 存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- Oracle存储过程实例
- Oracle存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- 第二十一章 YUM 线上升级机制
- oracle 删除大量数据后整理表(analyze table xxx compute statistics)
- POJ 2398
- CSDN-markdown编辑器快捷键
- 第二十一章 管理的抉择:RPM 还是 Tarball
- oracle 存储过程使用实例
- java 获得指定日期的前一天代码收藏
- 第二十二章 Linux 的启动流程分析
- WebService使用(VS2008)
- 第二十二章 核心与核心模块
- 漫谈数据仓库之SCD(缓慢变化维度)
- Openstack浮动ip
- cookie和session的区别详情
- oracle 表中有子父关系列则使用CONNECT BY PRIOR