抱歉问这个问题,但这是因为以前给出的答案都不足以让我明白.我想编写一个返回表中所有列的存储过程.作为一个广告hod查询,我只是写
SELECT * FROM EMPLOYEES
但是在这里,我得到一个错误,提示我提供INTO子句,我不明白为什么和如何.有人会解释我将如何在上述情况下以及当我要返回一个列值(多行时) ).
具有sql Server背景的人员用于编写返回整个查询结果的存储过程,因此尝试编写如下所示的PL / sql过程:
原文链接:/oracle/204907.htmlprocedure get_emps is begin -- this will NOT work! select * from emp; end;
不幸的是,这不是那么简单.可能在PL / sql中最近的等价物是返回参考游标的函数:
function get_emps return sys_refcursor is rc sys_refcursor; begin open rc for select * from emp; return rc; end;
declare cur sys_refcursor; emp_rec emp%rowtype; begin cur := get_emps; loop fetch cur into emp_rec; exit when cur%notfound; end loop; close cur; end;
或者在sql Plus中你可以做:
var rc refcursor :rc := get_emps; print rc