我正在测试此代码以从过程中返回 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 从过程返回值的优点和缺点是什么?