读书人

SQL聚合嵌套表varray

发布时间: 2012-08-15 16:57:17 作者: rapoo

SQL集合嵌套表varray
DECLARE
TYPE list_of_name_t IS TABLE OF person.first_name%TYPE INDEX BY PLS_INTEGER;
happyfamily list_of_name_t;
l_row PLS_INTEGER;
BEGIN
happyfamily (200002) :='Eli';
happyfamily (-1507) :='Steven';
happyfamily (-90): 'Chris';
happyfamily (88) :='Veva';

l_row := happyfamily.FIRST;
WHILE (l_row IS NOT NULL)
LOOP
DBMS_OUTPUT.PUT_LINE(happyfamily (l_row));
l_row := happyfamily.NEXT(l_row);
END LOOP;
END;

----
CREATE TYPE list_of_names_t IS TABLE OF VARCHAR2(100)
/

DECLARE
happyfamily list_of_names_t := list_of_names_t ();
children list_of_names_t := list_of_names_t ();
parents list_of_names_t ;=list_of_namess_t();
BEGIN
happyfamily.EXTEND(3);
happyfamily (1) :='Eli';
happyfamily (2) :='Steven';
happyfamily (3) :='Chris';

children.EXTEND;
children (1) :='Chris';
children.EXTEND;
children (2) :='Eli';

parents :=happyfamily MULTISET EXCEPT children;

FOR l_row IN parents.FIRST .. parents.LAST
LOOP
DBMS_OUTPUT.PUT_LINE(parents (l_row));
END LOOP;
END;

--------

CREATE TYPE first_names_t IS VARRAY (2) OF VARCHAR2 (100);
/
CREATE TYPE child_names_t IS VARRAY (1) OF VARCHAR2 (100);
/
CREATE TABLE family (
surname VARCHAR2(1000)
,parent_names first_names_t
,children_names child_names_t
);


DECLARE
parents first_names_t := first_names_t ();
children child_names_t := child_names_t ();
BEGIN
parents.EXTEND (2);
parents (1) :='Samuel';
parents (2) :='Charina';

children.EXTEND;
children (1) :='Feather';

INSERT INTO family ( surname, parents_names,children_names )
VALUES('Assurty',parents,children);
END;

SELECT * FROM family;







读书人网 >SQL Server

热点推荐