0

我正在测试此代码以从过程中返回 TABLE 类型,但我收到了一个错误,我认为这是不应该发生的,因为我正在获取员工表的整行的表类型。

CREATE OR REPLACE PACKAGE test_pkg
IS

  TYPE my_rec IS TABLE OF employees%ROWTYPE;

  PROCEDURE my_proc(p_out OUT my_rec);

END;
/

CREATE OR REPLACE PACKAGE BODY test_pkg
AS

  PROCEDURE my_proc(p_out OUT my_rec) AS BEGIN

      SELECT
        employee_id,
        first_name,
        last_name BULK COLLECT INTO p_out
      FROM employees;
    END;

END;
/

6/65 PL/SQL:ORA-00913:值太多 6/1
PL/SQL:SQL 语句被忽略

另外使用 TABLE 类型而不是 REF CURSOR 从过程返回值的优点和缺点是什么?

4

0 回答 0