TABLE 表类型,在方法中使用,以下是一段测试sql代码:
DROP TABLE IF EXISTS EMPS;
CREATE TABLE EMPS as select 1 ID ,'dameng' NAME;
CREATE OR REPLACE TYPE EMP_TYPE AS OBJECT (
ID NUMBER(10),
NAME VARCHAR2(50)
);
CREATE OR REPLACE TYPE EMP_TABLE IS TABLE OF EMP_TYPE;--创建一个表类型
CREATE OR REPLACE FUNCTION GETEMPS RETURN EMP_TABLE PIPELINED IS
V_EMP EMP_TYPE := EMP_TYPE(NULL, NULL); -- 初始化变量
BEGIN
FOR REC IN (SELECT * FROM EMPS) LOOP--查询结果集,循环将每条数据放入表类型中
V_EMP.ID := REC.ID;
V_EMP.NAME := REC.NAME;
PIPE ROW(V_EMP); -- 将每条记录添加到结果集中
END LOOP;
RETURN; -- 返回结果集
END;
SELECT * FROM TABLE(GETEMPS());