oracle's procedure 使用动态sql查询语句,和游标配合使用,得到结果集
大家都知道,oracle中的存储过程里不能直接使用select语句,而在sqlserver中可以使用,并且通过select语句得到结果集。
小弟,在网上搜看了很多文章,总结了一个方法,就是包,游标,存储过程 互相配合 最终可以得到目的。
原理,包里面 定义 一个游标类型
在定义一个存储过程,
包头具体例子如下:
create or replace package p_test
is
type cursorType id ref cursor;定义cursorType --的游标类型
procedure getResult(mycursor out cursorType); --mycursor 是输出参数,类型是cursorType类型的游
end;
包体
create or replace package body p_test
is
procedure getResult(mycursor out cursorType)
as
v_sql varchar2(100); --这里使用动态sql语句
begin
v_sql='select sname,ssex from(select rownum r,student.* from student)where r>3 and r<7';
open mycursor for v_sql; --建立游标与动态语句的联系,并且打开
end;
end;
____________________________________________________________________________________________________________
create or replace package body p_test
is
procedure getResult(mycursor out cursorType)
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载