Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / PL SQL Data Types
 

Demonstrate the use of SYS AnyData

SQL> SQL> CREATE OR  REPLACE TYPE facebook AS OBJECT (   2     name VARCHAR2(30),   3     height NUMBER   4  );   5  / Type created. SQL> SQL> CREATE OR REPLACE TYPE firsttalk AS OBJECT (   2     name VARCHAR2(30),   3     length NUMBER   4  );   5  / Type created. SQL> SQL> DECLARE   2     TYPE feature_array IS VARRAY(2) OF SYS.AnyData;   3     features feature_array;   4     wf facebook;   5     rv firsttalk;   6     ret_val NUMBER;   7  BEGIN   8   9     features := feature_array(  10                    SYS.AnyData.ConvertObject(facebook('Girl',30)),  11                    SYS.AnyData.ConvertObject(firsttalk('firsttalk', 85.40))  12                 );  13  14  15     FOR x IN 1..features.COUNT LOOP  16         CASE features(x).GetTypeName  17         WHEN 'GENNICK.facebook' THEN  18            ret_val := features(x).GetObject(wf);  19            DBMS_OUTPUT.PUT_LINE('facebook: '|| wf.name || ', Height = ' || wf.height || ' feet.');  20         WHEN 'GENNICK.firsttalk' THEN  21            ret_val := features(x).GetObject(rv);  22            DBMS_OUTPUT.PUT_LINE('firsttalk: '|| rv.name || ', Length = ' || rv.length || ' miles.');  23         END CASE;  24     END LOOP;  25  END;  26  / DECLARE * ERROR at line 1: ORA-06592: CASE not found while executing CASE statement ORA-06512: at line 16 SQL>