Oracle 从过程返回表类型
我测试这段代码是为了从一个过程返回一个表类型,但是我得到了一个我认为不应该发生的错误,因为我正在获取整行employees表的表类型Oracle 从过程返回表类型,oracle,oracle11g,bulk-collect,Oracle,Oracle11g,Bulk Collect,我测试这段代码是为了从一个过程返回一个表类型,但是我得到了一个我认为不应该发生的错误,因为我正在获取整行employees表的表类型 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 PROC
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语句被忽略
另外,使用表类型over REF CURSOR从过程返回值的优缺点是什么?尝试选择*而不是选择员工id、名字、姓氏。请提供员工表的表结构。由于此错误通常发生在select和type中的列数不匹配的情况下。人力资源方案中的EMPLOYEE表可能是重复的