- 浏览: 579546 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
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旁边左边的按钮就行
发表评论
文章已被作者锁定,不允许评论。
-
sql 最小化表查询次(col1,col2) = (select col1,col2 from t)
2018-01-02 16:51 531最小化表查询次数 ... -
sql 用inner join取代in和exists
2018-01-02 16:48 1116使用表连接替换EXISTS ... -
oracle HINT详解
2017-09-01 10:42 495ORACLE的HINT详解 hints是oracle提供的 ... -
oracle jdbctemplate如何优化查询速度
2017-08-21 09:33 12801.设置setFetchSize进行优化 // 可以优化 ... -
oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
2017-08-18 16:48 18121.用途 强行启用 ... -
oracle 存储过程学习总结
2016-08-22 08:42 333dbms_output.put_line('CONCAT ... -
oracle SGA总结信息
2016-07-06 10:38 495SGA 系统全局区 SGA是Oracle用来为实例村粗数据和 ... -
oracle where条件分支查询
2016-06-30 16:16 505select * from test xx where ... -
oracle with as用法
2016-06-24 09:58 918with as语法 –针对一个别名 with tmp as ... -
oracle 重复数据处理的sql整理
2016-06-22 14:44 376Oracle 删除重复数据只留一条 1、查找表中多余的重 ... -
oracle 数据库组成部分(数据库(各种文件)+实例(SGA PGA + 后台进程))知识
2016-04-11 19:51 1241一、SQL server中的实例与 ... -
oracle expdp与impdp导入导出
2016-03-17 10:17 1267[b]数据泵工具导出的步骤:[/b] 1、创建DIRECT ... -
oracle 常用sql语句积累
2016-01-28 11:01 5471.删除重复列 delete from t t1 where ... -
oracle forall关键字进行批量操作
2014-12-12 15:26 1020两个数据操纵语言(DML)语句:BULK COLLECT和FO ... -
oracle 表中有子父关系列则使用CONNECT BY PRIOR
2014-10-27 10:08 402查询名字为xx xxx的所有子数据 SELECT re.U ... -
oracle 删除大量数据后整理表(analyze table xxx compute statistics)
2014-10-17 18:09 21801. DELETE 后 TRUNCATE TABLE ; 然 ... -
oracle splitstr 函数
2014-10-15 17:45 1384splitstr函数 CREATE OR REPLACE ... -
oracle 高效Sql语句总结
2014-10-08 11:23 488No SQL,No cost. SQL语句是造成数据库 ... -
oracle merge 更新或插入数据
2014-09-26 14:26 471主要功能 提供有条件地更新和插入数据到数据库表中 如果该 ... -
Oracle时间去除零的问题
2014-07-17 19:48 819天碰到只要取月份和天数,如果月份前面有0要去掉0.比如说201 ...
相关推荐
oracle 存储过程实例 oracle存储过程实例
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
oracle 存储过程语法例子 oracle 存储过程语法例子 oracle 存储过程语法例子
oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
oracle存储过程语法及实例讲解,oracle存储过程语法及实例讲解
用callabledStatement调用oracle存储过程实用例子(IN OUT 传参数包括游标类型)
oracle存储过程学习经典(实例),适合刚学习存储过程的广大程序员们
使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...
pb中执行oracle存储过程脚本; 使用批处理进行oracle存储过程脚本的创建和更新的处理。 此程序在pb中进行实现;
Oracle_存储过程exception异常处理大全及实例经典最终.docx
oracle存储过程使用游标对多表操作例子
Oracle 允许将PL/ SQL 语言编写的存储过程作为数据库对象存储在数据库中,存储过程通过语法分析,将第一 次执行编译的SQL 语句存储在高速缓冲存储器中,下次使用只需从高速缓冲区中调用已编译的代码,加速了SQL 语句的执...
4、开发指南:《Oracle存储过程入门指南&100+种真实业务场景存储过程实例.pdf》,可以帮助初学者系统学习。 5、资源包括“通用存储过程整理” 和 “真实业务存储过程整理” 两部分,通用适合各种系统,可以无缝隙...
oracle存储过程代码实例,oracle存储过程代码实例,oracle存储过程代码实例
使用hibernate的query调用oracle的存储过程/function,包含例子,源码以及数据库文件
Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作),目前最详细的存储过程文档,不好你举报我。含好多ORACLE SCOTT中emp表的实例。
oracle的一个简单存储过程实例,有原文件和使用说明。
C#访问Oracle存储过程实例源码,C#、VS2010、Oracle、存储过程