一个很简单的存储过程

xh308 2007-05-10 06:35:52
我想实现存储过程返回结果集,参考网上的资料,我的步骤如下:
1.创建程序包th.pkg_cur
CREATE OR REPLACE PACKAGE "TH"."PKG_CUR" AS
TYPE myrcType IS REF CURSOR;
END pkg_cur;
--------
2.创建存储过程th.my_cur
CREATE OR REPLACE PROCEDURE "TH"."MY_CUR" (p_cursor out
pkg_cur.myrcType) is
begin
open p_cursor for
select * from fenxh;
end;
说明:表fenxh中只有两列,并且都是char类型。
--------
3.在TOAD工具中执行此过程
begin
my_cur;
end;
--------
4.错误如下
ORA-06550: 第 2 行, 第 1 列:
PLS-00306: 调用 'MY_CUR' 时参数个数或类型错误
ORA-06550: 第 2 行, 第 1 列:
PL/SQL: Statement ignored
--------
请问:是什么原因呢?
是不是调用错误啊?
怎么改正?
谢谢!
...全文
348 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xh308 2007-05-13
  • 打赏
  • 举报
回复
怎么没人解答了啊??
期待中......
heyixiang 2007-05-13
  • 打赏
  • 举报
回复
--创建包头
create or replace package pkg_cur as

type myrctype is ref cursor;

procedure my_cur
(
p_cursor out myrctype
);

end pkg_cur;



--创建包体
create or replace package body pkg_cur as

procedure p_cur
(
p_cursor out myrctype
)is
begin
open p_cursor for
select * from fenxh;
end p_cur;

end pkg_cur;

duanduan1122 2007-05-11
  • 打赏
  • 举报
回复
在包体里面要包含这个存储过程呀。
xh308 2007-05-11
  • 打赏
  • 举报
回复
doer_ljy(可战) ,你好,谢谢解答.
我按你的方法试了一下 ,还是报错啊.
错误如下:
ORA-06550: 第 5 行, 第 7 列:
PLS-00487: 对变量 'P_CUR' 的引用无效
ORA-06550: 第 5 行, 第 1 列:
PL/SQL: Statement ignored
doer_ljy 2007-05-11
  • 打赏
  • 举报
回复
declare
p_cur pkg_cur.myrcType;
begin
mu_cur(p_cur);
p_cur.close;
end;
调用的时候怎么能不传入参数呢?
即使这个参数是out型的。
xh308 2007-05-11
  • 打赏
  • 举报
回复
请各位兄弟答疑啊..
谢谢.
precipitant 2007-05-11
  • 打赏
  • 举报
回复
标记先。
xh308 2007-05-11
  • 打赏
  • 举报
回复
不行啊,在包体里定义后,还是这个错误.

17,377

社区成员

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

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