PLSQL collection 示例 之 varray

–在plsql developer里执行
http://download.csdn.net/detail/guotong1988/8507941
–创建一个varray,包括3个元素,每个元素是varchar2
CREATE OR REPLACE TYPE test_scalar_varray AS VARRAY(3) OF VARCHAR2(20);

–在plsql developer里执行
CREATE OR REPLACE FUNCTION test_get_varray
( pv_one VARCHAR2 := NULL
, pv_two VARCHAR2 := NULL
, pv_three VARCHAR2 := NULL )
RETURN test_SCALAR_VARRAY IS–前面定义的名字
lv_coll test_SCALAR_VARRAY := test_scalar_varray();–前面定义的名字
BEGIN
FOR i IN 1..3 LOOP
IF pv_one IS NOT NULL AND i = 1 THEN
lv_coll.EXTEND;
lv_coll(i) := pv_one;
ELSIF pv_two IS NOT NULL AND i <= 2 THEN
lv_coll.EXTEND;
lv_coll(i) := pv_two;
ELSIF pv_three IS NOT NULL THEN
lv_coll.EXTEND;
lv_coll(i) := pv_three;
ELSE
NULL;
END IF;
END LOOP;
RETURN lv_coll;
END;

–在plsql developer里执行
–TABLE是一个函数,列名固定是column_value
SELECT column_value
FROM TABLE(test_get_varray(‘Eine’,’Zwei’,’Drei’));

result

你可能感兴趣的:(plsql)