在Oracle中的过程中选择语句

前端之家收集整理的这篇文章主要介绍了在Oracle中的过程中选择语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
抱歉问这个问题,但这是因为以前给出的答案都不足以让我明白.我想编写一个返回表中所有列的存储过程.作为一个广告hod查询,我只是写
SELECT * FROM EMPLOYEES

但是在这里,我得到一个错误,提示我提供INTO子句,我不明白为什么和如何.有人会解释我将如何在上述情况下以及当我要返回一个列值(多行时) ).

具有sql Server背景的人员用于编写返回整个查询结果的存储过程,因此尝试编写如下所示的PL / sql过程:
procedure 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
原文链接:/oracle/204907.html

猜你在找的Oracle相关文章