- 浏览: 862603 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
1.看见很多人调试过程依然使用DBMS_OUTPUT.PUT_LINE进行着输出,或是对oracle procedure返回resultset比较疑惑,下面的例子仅供参考。
- CREATE OR REPLACE PROCEDURE sp_test (
- p_outstr OUT VARCHAR2
- ,p_outint OUT NUMBER
- ,p_ref1 OUT SYS_REFCURSOR
- ,p_ref2 OUT SYS_REFCURSOR
- )
- AS
- BEGIN
- p_outstr := 'abc';
- p_outint := '56789';
- OPEN p_ref1 FOR SELECT ROWNUM*2 AS RN FROM DUAL CONNECT BY ROWNUM<=10;
- OPEN p_ref2 FOR SELECT ROWNUM*2+1 AS RN FROM DUAL CONNECT BY ROWNUM<=10;
- END sp_test;
- /
- 过程已创建。
CREATE OR REPLACE PROCEDURE sp_test ( p_outstr OUT VARCHAR2 ,p_outint OUT NUMBER ,p_ref1 OUT SYS_REFCURSOR ,p_ref2 OUT SYS_REFCURSOR ) AS BEGIN p_outstr := 'abc'; p_outint := '56789'; OPEN p_ref1 FOR SELECT ROWNUM*2 AS RN FROM DUAL CONNECT BY ROWNUM<=10; OPEN p_ref2 FOR SELECT ROWNUM*2+1 AS RN FROM DUAL CONNECT BY ROWNUM<=10; END sp_test; / 过程已创建。
利用print客户端打印,sqlplus下:
- SET AUTOPRINT ON
- VAR p_outstr VARCHAR2(10);
- VAR p_outint NUMBER;
- VAR p_ref1 REFCURSOR;
- VAR p_ref2 REFCURSOR;
SET AUTOPRINT ON VAR p_outstr VARCHAR2(10); VAR p_outint NUMBER; VAR p_ref1 REFCURSOR; VAR p_ref2 REFCURSOR;
- scott@ORCL>EXEC sp_test(:p_outstr,:p_outint,:p_ref1,:p_ref2);
- PL/SQL 过程已成功完成。
- RN
- ----------
- 3
- 5
- 7
- 9
- 11
- 13
- 15
- 17
- 19
- 21
- 23
- 已选择11行。
- RN
- ----------
- 2
- 4
- 6
- 8
- 10
- 12
- 14
- 16
- 18
- 20
- 22
- 已选择11行。
- P_OUTINT
- ----------
- 56789
- P_OUTSTR
- --------------------------------
- abc
scott@ORCL>EXEC sp_test(:p_outstr,:p_outint,:p_ref1,:p_ref2); PL/SQL 过程已成功完成。 RN ---------- 3 5 7 9 11 13 15 17 19 21 23 已选择11行。 RN ---------- 2 4 6 8 10 12 14 16 18 20 22 已选择11行。 P_OUTINT ---------- 56789 P_OUTSTR -------------------------------- abc
也可以在声明输入输出变量之后,依次print p_outstr,...........
2.使用对象类型,同样返回结果集.
- scott@ORCL> CREATE TYPE t_test AS OBJECT (
- 2 id NUMBER
- 3 ,name VARCHAR2(20)
- 4 )
- 5 ;
- 6 /
- 类型已创建。
- scott@ORCL>CREATE TYPE tb_test AS TABLE OF t_test;
- 2 /
- 类型已创建。
- scott@ORCL>CREATE OR REPLACE FUNCTION f_test RETURN tb_test
- 2 AS
- 3 v_ret tb_test:=tb_test();
- 4 BEGIN
- 5 FOR i IN 1..10 LOOP
- 6 v_ret.EXTEND;
- 7 v_ret(i) := t_test(i,'name'||i);
- 8 END LOOP;
- 9 RETURN v_ret;
- 10 END f_test;
- 11 /
- 函数已创建。
- scott@ORCL>select * from table(f_test);
- ID NAME
- ---------- ------------------------------
- 1 name1
- 2 name2
- 3 name3
- 4 name4
- 5 name5
- 6 name6
- 7 name7
- 8 name8
- 9 name9
- 10 name10
- 已选择10行。
scott@ORCL> CREATE TYPE t_test AS OBJECT ( 2 id NUMBER 3 ,name VARCHAR2(20) 4 ) 5 ; 6 / 类型已创建。 scott@ORCL>CREATE TYPE tb_test AS TABLE OF t_test; 2 / 类型已创建。 scott@ORCL>CREATE OR REPLACE FUNCTION f_test RETURN tb_test 2 AS 3 v_ret tb_test:=tb_test(); 4 BEGIN 5 FOR i IN 1..10 LOOP 6 v_ret.EXTEND; 7 v_ret(i) := t_test(i,'name'||i); 8 END LOOP; 9 RETURN v_ret; 10 END f_test; 11 / 函数已创建。 scott@ORCL>select * from table(f_test); ID NAME ---------- ------------------------------ 1 name1 2 name2 3 name3 4 name4 5 name5 6 name6 7 name7 8 name8 9 name9 10 name10 已选择10行。
3. 用SELECT BULK COLLECT INTO取得数据,返回嵌套表的例子。
- scott@ORCL>create table test (id number, name varchar2(20));
- 表已创建。
- scott@ORCL>CREATE TYPE t_test AS OBJECT (
- 2 id NUMBER
- 3 ,name VARCHAR2(20)
- 4 )
- 5 /
- 类型已创建。
- scott@ORCL>;
- scott@ORCL>CREATE TYPE tb_test AS TABLE OF t_test;
- 2 /
- 类型已创建。
- scott@ORCL>CREATE OR REPLACE FUNCTION f_test RETURN tb_test
- 2 AS
- 3 v_ret tb_test:=tb_test();
- 4 BEGIN
- 5 SELECT t_test(id,name)
- 6 BULK COLLECT INTO v_ret
- 7 FROM TEST;
- 8
- 9 RETURN v_ret;
- 10 END f_test;
- 11 /
- 函数已创建。
- scott@ORCL>select * from table(f_test);
- 未选定行
- scott@ORCL>insert into test select rownum,'NAME'||rownum FROM DUAL CONNECT BY RO
- WNUM<=10;
- 已创建11行。
- scott@ORCL>select * from table(f_test);
- ID NAME
- ---------- ------------------------------
- 1 NAME1
- 2 NAME2
- 3 NAME3
- 4 NAME4
- 5 NAME5
- 6 NAME6
- 7 NAME7
- 8 NAME8
- 9 NAME9
- 10 NAME10
- 11 NAME11
- 已选择11行。
http://diegoball.iteye.com/blog/518604
发表评论
文章已被作者锁定,不允许评论。
-
在Oracle查询语句中怎样手动指定索引
2011-09-16 01:08 1173select /*+ index(tablename inde ... -
数据库范式(1NF 2NF 3NF BCNF)详解一
2011-08-28 13:35 4494数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数 ... -
数据库范式(1NF 2NF 3NF BCNF)详解二
2011-08-28 13:32 1283范式应用 我们来逐步搞定一个论坛的数据库,有如下信息: ... -
ORACLE数据库TM(表级)锁小结
2011-08-24 14:32 2176SQL语句 表锁模 ... -
Oracle中NVARCHAR2和VARCHAR2的区别
2011-05-20 10:16 2816Oracle中NVARCHAR2和VARCHAR2的区别 【 ... -
Oracle中connect by prior用法
2011-03-08 17:18 854connect by prior 是结构化 ... -
【总结】oracle恢复误删除数据,解除锁定的等sql语句
2011-03-08 16:55 1038转载请注明出处:http://renjie120.iteye. ... -
授予oracle导入用户表权限
2010-12-13 15:38 1049给用户增加导入数据权 ... -
如何写批处理文件自动将数据导入oracle数据库
2010-12-13 14:30 3250Oracle数据库的自动导入 ... -
如何使用PLSQL Developer从oracle数据库 导入导出数据
2010-12-13 14:26 4080如何使用PLSQL Developer从oracle数据库 导 ... -
oracle内存优化
2010-12-01 21:54 939内存2G的优化策略。 SGA最大大小:1300 -
让sql语句不排序,按照in语句的顺序返回结果
2010-12-01 21:47 1711oracle写法: Select * from we ... -
拯救oracle刚被误删的数据
2010-12-01 21:43 10582.误删除所有记录并且提交更改。SQL>delete f ... -
强制停止oracle正在执行的job
2010-12-01 21:40 1914一:温柔的方法:1、查看所有job;select * from ... -
oracle中connect by prior实现递归查询
2010-12-01 14:15 1116收集的几条在oracle中通过connect by prior ... -
oracle高级查询实例,提升效率
2010-12-01 13:57 921使用Oracle特有的查询语法, 可以达到事半功倍的效果。 ... -
oracle DBA必需掌握的常用命令集锦
2010-12-01 13:39 950第一章:日志管理 1.forcing log swit ... -
Oracle性能优化技巧
2010-12-01 12:21 740今天没事来说说oracle性能优化的技巧。。 1.选用适合的 ... -
alce表空间使用情况查询
2010-12-01 12:16 8291.查询oracle表空间的使用情况 select b.f ... -
几条有用sql
2010-12-01 12:14 580查找数据库中所有字段 以对应的表 select C.colu ...
相关推荐
在数据开发中,有时你需要合并两个动态游标sys_refcursor。 开发一个存储过程PROC_A,这个过程业务逻辑相当复杂,代码篇幅较长。一段时间后要开发一个PROC_B,要用PROC_A同样的逻辑,而且在这个过程中,还要循环调用...
A40-T3的sys_partition.fex分区表说明
Oracle的LOB(CLOB)大字段以及(SYS_LOB$$)清理.txt
表名是js_sys_area。 jeesite 4.x.x 的全国市区地区编码表,一共3511条数据。表名是js_sys_area。 jeesite 4.x.x 的全国市区地区编码表,一共3511条数据。表名是js_sys_area。 jeesite 4.x.x 的全国市区地区编码表,...
全志V40 全志R40 全志A40 sys_config.fex使用配置说明V1.0
汉化版sys_log.rar 汉化版sys_log.rar 汉化版sys_log.rar
select id,name,lat,lng,pinyin from sys_area where 1=1 and `level` = 1; city 市 -- 江西 select id,name,lat,lng,pinyin from sys_area where 1=1 and `level` = 2 and find_in_set('360000',`path`); ...
Quartus_II_13.1 64位 32位破解器 ,适用QuartusSetup-13.1.0.162,另外内含Crack_QII_13.1_Windows补丁备份文件夹,存放了gcl_afcq.dll、sys_cpt.dll原始文件,方便出错还原
ORACLE中的sys_context函数
最新的LwIP1.4.0 sys_arch 说明文档
笔者语: 1. 内容涉及比较多,自己也没有分章节,因为觉得这些内容关联性很强,自己也懒的去弄了。... 2.3 内核与文件系统操作的几个相关的系统调用sys_open, sys_read, sys_write, sys_mount, sys_mknod。
FPGA实现对100MHz的方波10分频,输入sys_clk_100M=100MHz,输出clk_1K=1KHz。
SYS_CONTEXT函数的用法,很好用的东东
行列转换,层级关系,oracle sys_connect_by_path的用法
sys_select.c
INSERT INTO `SYS_CHINA_CITY` VALUES ('110000', '北京市', '', null, '1'); INSERT INTO `SYS_CHINA_CITY` VALUES ('110101', ' 东城区', '110000', '北京市', '2'); INSERT INTO `SYS_CHINA_CITY` VALUES ('...
.sys_rst_n (sys_rst_n), .ew_time (ew_time), .sn_time (sn_time), .state (state) ); //数码管显示模块 seg_led u1_seg_led( .sys_clk (sys_clk) , .sys_rst_n (sys_rst_n), .ew_time (ew_time), .sn_...