初学oracle,传递游标存储过程,返回总出错,帮忙看看
工具: pl/sql developer 7.0 (oracle 10g)--存储过程
CREATE OR REPLACE PROCEDURE p_test2(t_cur OUT SYS_REFCURSOR)
AS
BEGIN
OPEN t_cur FOR SELECT * FROM student;
END;--代码段
DECLARE
cur SYS_REFCURSOR;
BEGIN
school.p_test2(cur);
print cur; --系统提示PLS-00103错误
END;
工具: pl/sql developer 7.0 (oracle 10g)--存储过程
CREATE OR REPLACE PROCEDURE p_test2(t_cur OUT SYS_REFCURSOR)
AS
BEGIN
OPEN t_cur FOR SELECT * FROM student;
END;--代码段
DECLARE
cur SYS_REFCURSOR;
BEGIN
school.p_test2(cur);
print cur; --系统提示PLS-00103错误
END;
var SYS_REFCURSOR;
BEGIN
school.p_test2(cur);
print cur; --系统提示PLS-00103错误
END;
DECLARE
cur SYS_REFCURSOR;
BEGIN
school.p_test2(cur);
dbms_output.put_line(cur%ROWCOUNT); --结果为0??怎么回事
END;CREATE OR REPLACE PROCEDURE p_test2(t_cur OUT SYS_REFCURSOR)
AS
BEGIN
OPEN t_cur FOR SELECT * FROM student;
END;
DECLARE
cur SYS_REFCURSOR;
BEGIN
school.p_test2(cur);
for curr in cur loop
dbms_output.put_line(cur.colname);
end loop;
END;
DECLARE
cur SYS_REFCURSOR;
rec student%rowtype;
BEGIN
school.p_test2(cur);
loop
fetch cur into rec;
exit when cur%notfound;
dbms_output.put_line(rec.sno||','||rec.name||....);
end loop;
close cur;
END;
CREATE OR REPLACE PROCEDURE p_test2(t_cur OUT SYS_REFCURSOR)
AS
BEGIN
OPEN t_cur FOR SELECT * FROM student;
END;--代码段
(这些在sqlplus里面执行)
var cur refcursor;
school.p_test2(:cur);
print cur;