PL/SQL 如何从返回类型表的函数中获取结果

编码公爵夫人

我需要调用一个返回TABLE OF MyTable%ROWTYPE.

我做了以下事情:

 DECLARE
   TYPE type_tab1 IS TABLE OF  Table1%ROWTYPE; 
   v_result1 type_tab1;
BEGIN

   v_result1 := myfunction(p_1, p_2, p_3);

END;

但它不起作用 - 我收到一个错误:

PLS-00382:表达式类型错误。

我究竟做错了什么?

小脚怪

你没有提供一些可能有用的信息,所以 - 看看这个例子,看看它是否有帮助。

首先,准备我们需要的一切:

SQL> create or replace type td as object
  2    (deptno number,
  3     dname  varchar2(20),
  4     loc    varchar2(20));
  5  /

Type created.

SQL> create or replace type tty is table of td;
  2  /

Type created.

功能:

SQL> create or replace function myfunction(p_deptno in number)
  2  return tty is
  3    l_tty tty := tty();
  4  begin
  5    select td(deptno, dname, loc)
  6      bulk collect into l_tty
  7      from dept
  8      where deptno = p_deptno;
  9
 10    return l_tty;
 11  end;
 12  /

Function created.

测试:

SQL> select * from table(myfunction(10));

    DEPTNO DNAME                LOC
---------- -------------------- --------------------
        10 ACCOUNTING           NEW YORK

你的一段代码:

SQL> set serveroutput on
SQL> declare
  2    v_result tty;
  3  begin
  4    v_result := myfunction(10);
  5    dbms_output.put_line(v_result(1).dname);
  6  end;
  7  /
ACCOUNTING

PL/SQL procedure successfully completed.

SQL>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

plsql中的增量函数

来自分类Dev

插入嵌套表plsql

来自分类Dev

使用plsql获取表信息

来自分类Dev

如何使用 substr 函数验证过滤器并从 Oracle PLSQL 中的存储过程获取结果?

来自分类Dev

如何使用 sysrefcursor PLSQL 从过程中返回表类型(集合)

来自分类Dev

如何还原旧的plsql?

来自分类Dev

PLSQL中的“ READ”常量

来自分类Dev

PLSQL中的包语法

来自分类Dev

PLSQL 中的过滤比较

来自分类Dev

在 PLSQL 中触发

来自分类Dev

如何在 PLSQL 中获取值 XML blob 类型?

来自分类Dev

如何在Oracle PLSQL中透视表?

来自分类Dev

从 EXECUTE IMMEDIATE PLSQL 输出结果

来自分类Dev

If条件PLSQL返回的值错误

来自分类Dev

PLSQL ORACLE Not Working 返回错误

来自分类Dev

Oracle plsql对象成员函数

来自分类Dev

表行计数验证plsql

来自分类Dev

索引为的plsql表类型正在抱怨

来自分类Dev

索引为的plsql表类型正在抱怨

来自分类Dev

PLSQL:返回任意选择列的函数

来自分类Dev

plsql 函数 - 根据传递的数字返回

来自分类Dev

编写PLSQL Oracle函数以查询表

来自分类Dev

plsql通过表值获取列名

来自分类Dev

PLSQL中的循环和IF语句

来自分类Dev

方法中形成的PLSQL循环

来自分类Dev

Oracle PLSQL 中的 LOB 操作

来自分类Dev

PLSQL 脚本中的奇怪错误

来自分类Dev

在PLSQL中循环遍历多个结果

来自分类Dev

如何在 sql 查询中使用 plsql 表类型?