oracle中如何调用带返回结果集的存储过程

sai850620 2010-04-12 01:59:10
请教各位大侠:
现有一存储过程 GetRoleInfo(v_RoleID integer, smenu_cur out query_pkg.Query_cur ),存储过程有2个参数:后者为接收结果集的游标 存储过程的作用为:返回符合条件的结果记录

我想在oracle中执行存储过程该如何执行?并非通过c#来接收结果集 谢谢!
...全文
4968 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sql_xeppp 2010-04-13
  • 打赏
  • 举报
回复
http://blog.csdn.net/sql_xep/archive/2010/03/24/5411022.aspx
xieyu_zy 2010-04-13
  • 打赏
  • 举报
回复
楼上答案已经应该可以满足条件了,不过需要注意的就是楼上的执行方式只能在sqlplus或者sqlplusw下执行,在PL/SQL的COMMAND下执行不了,因为楼上用refcursor,很多PL/SQL不认识,可能是我的PL/SQL版本比较低吧,不过我针对我用了两个版本的PL/SQL连接同一个数据库使用其COMMAND也不好用,使用sqlplus或sqlplusw就OK了。


楼主应该在包QUERY_PKG内部自己定义了一个游标QUERY_CUR,没有系统提供的默认动态游标,所以我就直接引用你的游标了。
另外如果不愿意在sqlplus下去执行的话,想在PL/SQL中的SQLWINDOW中运行,可以尝试使用一下办法:
DECLARE
pub_cursor QUERY_PKG.QUERY_CUR;
BEGIN
GetRoleInfo(10,pub_cursor);
FETCH pub_cursor INTO <info_object>;--具体写入那种类型的变量,可以自己决定。
WHILE pub_cursor%FOUND LOOP
FETCH pub_cursor INTO <info_object>;
END LOOP;
CLOSE pub_cursor;
END;
duqiangcise 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 seai 的回复:]
引用 1 楼 suiziguo 的回复:

SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM…………
[/Quote]
再顶!
seai 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 suiziguo 的回复:]

SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM……
[/Quote]


顶起
suiziguo 2010-04-12
  • 打赏
  • 举报
回复
SQL> create or replace procedure test
2 (pi_deptno IN emp.deptno%TYPE,po_result in out SYS_REFCURSOR)
3 is
4 begin
5 OPEN po_result FOR
6 SELECT empno,ename,job,sal FROM emp
7 WHERE deptno=pi_deptno;
8 end test;
9 /

过程已创建。

SQL> var r_cur refcursor
SQL> exec test(10,:r_cur)

PL/SQL 过程已成功完成。

SQL> print :r_cur

EMPNO ENAME JOB SAL
---------- ---------- --------- ----------
7782 CLARK MANAGER 2450
7839 KING PRESIDENT 5000
7934 MILLER CLERK 1300

SQL>

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧