如何在PL / SQL中的函数中使用游标

时间:2017-08-06 16:06:54

标签: plsql oracle11g

我有一个作业,课程材料不包括如何执行此操作,并且网络搜索对功能中的游标没有帮助。

赋值是返回数据库中的所有姓氏,但根据case语句参数进行更改。我需要使用光标。这是我的代码:

create or replace function Convert_New_Name

        return sys_refcursor
    as
        c_results sys_refcursor;
    begin
        open c_results for
            select 
                  case last_name
                       when 'King' then 'LION'
                       when 'Ford' then 'CAR'
                       when 'Miller' then 'BEER'
                       else last_name
                   end as new_name
            from   employees;

        return c_results;
    end convert_new_name;

我很难找到与搜索相关的任何内容。该数据库有20行。此代码返回所有20行,包含所需的更改,但它返回20行 20次,而不是一次。

这里有另一篇文章几乎相同的任务,但当我试图在那里发帖时,它被删除了,我被告知要问我自己的问题。

1 个答案:

答案 0 :(得分:1)

您发布的功能代码很好。调用代码应仅调用一次的函数Convert_New_Name。如果您打算从SQL语句中调用它,那么此查询应该完成这项工作:

Select Convert_New_Name() From dual;