Oracle PL/SQL Tutorial/PL SQL Data Types/AnyData
Demonstrate the use of SYS.AnyData
<source lang="sql">
SQL> 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> SQL></source>