create or replace type type_table as object(
ID NUMBER,
NAME NUMBER);
create or replace type type_array as TABLE OF type_table;
CREATE OR REPLACE FUNCTION TEST_LCX RETURN TYPE_ARRAY IS
RESULT TYPE_ARRAY;
TABLE_LCX TYPE_TABLE;
BEGIN
RESULT := TYPE_ARRAY();
FOR V_ROW IN (SELECT 1 ID, 2 NAME
FROM DUAL
UNION ALL
SELECT 1 ID, 2 NAME FROM DUAL) LOOP
TABLE_LCX := TYPE_TABLE(0, 0);
TABLE_LCX.ID := V_ROW.ID;
TABLE_LCX.NAME := V_ROW.NAME;
RESULT.EXTEND();
RESULT(RESULT.LAST) := TABLE_LCX;
END LOOP;
RETURN(RESULT);
END TEST_LCX;
CREATE OR REPLACE FUNCTION TEST_LCX1 RETURN TYPE_TABLE IS
RESULT TYPE_TABLE;
BEGIN
RESULT := TYPE_TABLE(0, 0);
SELECT 1 ID, 2 NAME FROM DUAL;
RETURN(RESULT);
END TEST_LCX1;
ID NUMBER,
NAME NUMBER);
create or replace type type_array as TABLE OF type_table;
CREATE OR REPLACE FUNCTION TEST_LCX RETURN TYPE_ARRAY IS
RESULT TYPE_ARRAY;
TABLE_LCX TYPE_TABLE;
BEGIN
RESULT := TYPE_ARRAY();
FOR V_ROW IN (SELECT 1 ID, 2 NAME
FROM DUAL
UNION ALL
SELECT 1 ID, 2 NAME FROM DUAL) LOOP
TABLE_LCX := TYPE_TABLE(0, 0);
TABLE_LCX.ID := V_ROW.ID;
TABLE_LCX.NAME := V_ROW.NAME;
RESULT.EXTEND();
RESULT(RESULT.LAST) := TABLE_LCX;
END LOOP;
RETURN(RESULT);
END TEST_LCX;
CREATE OR REPLACE FUNCTION TEST_LCX1 RETURN TYPE_TABLE IS
RESULT TYPE_TABLE;
BEGIN
RESULT := TYPE_TABLE(0, 0);
SELECT 1 ID, 2 NAME FROM DUAL;
RETURN(RESULT);
END TEST_LCX1;
本文介绍了一个使用PL/SQL定义复杂数据类型及创建返回类型数组的函数示例。示例中定义了两个类型:table_type和type_array,并创建了两个函数:test_lcx和test_lcx1,用于演示如何操作这些自定义类型。
1036

被折叠的 条评论
为什么被折叠?



