如何像从存储过程中返回像普通查询一样的结果集?
解决方案 »
- 关于包的问题。急!急
- oracle如何能返回多行的值呢?请高手赐教
- 关于.profile设置问题
- 或许是环境变量的问题
- I can not not find oracle8i or 9i version for Solaris unix version based on intel chip.
- oracle 8i 为什么装在win 2003 server上狂报java.exe错?
- (在线等)用户问题
- 我想在我的redhat linux3ee 上安装tomcat+apache+oracle10g,我想知道这种多应用的服务器,硬件上配置要什么要求,应该查什么资料呢?
- 关于字符集的一个疑问!讨论,提出观点者有分,谢谢!(在线)
- Oracle 实现数据同步
- 数据库优化
- 数据库设计说明书 实例
AS
TYPE myrctype IS REF CURSOR; PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
END pkg_test;
/CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
IF p_id = 0 THEN
OPEN p_rc FOR
SELECT ID, NAME, sex, address, postcode, birthday
FROM student;
ELSE
sqlstr :=
'select id,name,sex,address,postcode,birthday
from student where id=:w_id';
OPEN p_rc FOR sqlstr USING p_id;
END IF;
END get;
END pkg_test;
/
/
create procedure p_var(p_v in out t_var)
as
begin
for i in 1..10 loop
p_v.extend;
p_v(i):=i;
dbms_output.put_line(p_v(i));
end loop;
end;
/
SQL> set serveroutput on
SQL>
SQL> declare
2 v_var t_var:=t_var();
3 begin
4 p_var(v_var);
5 end;
6 /
1
2
3
4
5
6
7
8
9
10PL/SQL procedure successfully completed