读书人

有关存储过程调用.该怎么处理

发布时间: 2012-01-19 20:57:58 作者: rapoo

有关存储过程调用.
包头:
create or replace package system.select_table is
type tab_04 is record(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1),
itnum_4 varchar2(1));
type tab_05 is record(
itnum_1 varchar2(1),
itnum_2 varchar2(1),
itnum_3 varchar2(1),
itnum_4 varchar2(1),
itnum_5 varchar2(1));
type cur_4 is ref cursor return tab_04;
type cur_5 is ref cursor return tab_05;
end select_table;

我建的存储过程:
create or replace procedure student_grade
(cur out select_table.cur_4)
as
begin
open cur for
select xs.xh,xs.xm,kc.kcm,xs_kc.cj from xs,xs_kc,system.kc
where xs.xh=xs_kc.xh and xs_kc.kch=kc.kch;
commit;
end student_grade;

调用过程时出错(以上内容都正确建立):
begin
student_grade; /*调过 "student_garde "时参数个数或类型出错*/
end;

请问怎么调用存储过程,我写的可能不对。我不知道正确的应该怎么写。


[解决办法]
student_grade

有一个输出参数
存储过程调用的时候,参数个数要与定义时相同

declare
v_cur select_table.cur_4;
begin
student_grade(v_cur); /*调过 "student_garde "时参数个数或类型出错*/
end;

[解决办法]
你的第二个过程只能取出一条记录

读书人网 >oracle

热点推荐