送分大家来玩玩一个 存储过程返回结果集的的性能问题(sqlplus环境下,其他环境也可以)
kt563 2008-07-22 05:53:47 --利用9i出来的sys_refcursor
create or REPLACE PROCEDURE proc_get(p_rc out sys_refcursor) as
BEGIN
open p_rc for select table_name,tablespace_name,status from user_table_t;
END;
/
VARIABLE p_rc refcursor;
EXEC proc_get(:p_rc);
print;
--9i之前是要定义游标变量的
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
PROCEDURE get (p_rc OUT myrctype);
END pkg_test;
/
CREATE OR REPLACE PACKAGE BODY pkg_test
AS
PROCEDURE get (p_rc OUT myrctype)
IS
sqlstr VARCHAR2 (500);
BEGIN
OPEN p_rc FOR
select table_name,tablespace_name,status from user_table_t;
END get;
END pkg_test;
/
VARIABLE p_rc refcursor;
exec pkg_test.get(:p_rc);
print p_rc;
=================〉
如果能够有效率更高的,我加分送。