oracle存储过程返回查询结果集    
oracle同sql server的procedure是不一样的。

在sql server下述语句完全正确。

create procedure usp_test

as

begin

select * from tablename

end;

但在oracle是运行不了的。在oracle的precedure要么使用cursor返回单个值(含单条记录),要么就使用ref cursor返回记录集。

create or replace usp_test(cv_results in out sys_refcursor)

is

begin

open cv_results for select * from tablename;

end;

在sqlplus调用:

VARIABLE X REFCURSOR
EXEC authors_sel(:x)
print x

关联文档