小编Alf*_*wed的帖子

如何使用oracle从存储的函数中检索多行

我正在尝试在oracle中创建一个存储函数,该存储函数返回多行。

除了要获取查询外,我的问题与问题非常相似select *

简而言之,我想创建一个返回此查询结果的函数

select * from t_email_queue
Run Code Online (Sandbox Code Playgroud)

我尝试过的是:

create or replace
PACKAGE email_queue AS 

  type t_email_queue_type is table of T_EMAIL_QUEUE%ROWTYPE;  

  FUNCTION lock_and_get return t_email_queue_type;

END email_queue;

create or replace
PACKAGE BODY email_queue AS 

    FUNCTION lock_and_get RETURN t_email_queue_type AS 
      queue_obj t_email_queue_type;

      cursor c (lockid in varchar2) is select * from t_email_queue where lockedby = lockid;
      lockid varchar2(100) := 'alf';
    BEGIN

      OPEN c(lockid);
      FETCH c bulk collect INTO queue_obj;

      return queue_obj;

    END lock_and_get;

END email_queue;
Run Code Online (Sandbox Code Playgroud)

包编译很好,但是当我尝试使用此查询调用它时

select * …
Run Code Online (Sandbox Code Playgroud)

oracle plsql

4
推荐指数
2
解决办法
2万
查看次数

标签 统计

oracle ×1

plsql ×1