Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: ORA-06531: Reference to uninitialized collection, Object Types with Inheritance!!!
"Anil G" <anil_at_pipelinesoftware.com> a écrit dans le message de news: 1140853367.916326.155740_at_z34g2000cwc.googlegroups.com...
| Hi, i am using following code and getting "ORA-06531: Reference to
| uninitialized collection" ??
|
| Please let me know...
|
| Thanks,
| Anil G
|
| ----------------------------------- Object Types Declarations
| -----------------------------------------------------
|
| CREATE OR REPLACE TYPE t_a AS OBJECT(
| v_a VARCHAR2(100)
| ) NOT FINAL
| /
|
| CREATE OR REPLACE TYPE t_a_v AS VARRAY(100) OF t_a
| /
| CREATE OR REPLACE TYPE t_c AS OBJECT(
| v_d t_a_v
| )
| /
| CREATE OR REPLACE TYPE t_b UNDER t_a (
| v_b VARCHAR2(100)
| ) FINAL INSTANTIABLE
| /
|
| ---------------------- Sample Code to execute
| -----------------------------------
| DECLARE
| --v_c t_c;
| v_1 t_a_v;
| v_2 t_b;
| BEGIN
| --v_c := t_c(t_a_v(t_b('1')));
| --v_1(1) := t_b('1','1');
| v_2 := t_b('Ha','Hb');
| DBMS_OUTPUT.PUT_LINE( v_2.v_a||'----'||v_2.v_b);
| --v_1.EXTEND(1);
| v_1(0) := v_2;
| END;
| /
|
Several errors in this bit of code:
- you have to instantiate (initialize) your variables
- indices begin at 1 not 0
SQL> DECLARE
2 --v_c t_c;
3 v_1 t_a_v := t_a_v();
4 v_2 t_b;
5 BEGIN
6 --v_c := t_c(t_a_v(t_b('1')));
7 --v_1(1) := t_b('1','1');
8 v_2 := t_b('Ha','Hb');
9 DBMS_OUTPUT.PUT_LINE( v_2.v_a||'----'||v_2.v_b);
10 v_1.EXTEND(1);
11 v_1(1) := v_2;
12 END;
13 /
Ha----Hb
PL/SQL procedure successfully completed.
Regards
Michel Cadot
Received on Sat Feb 25 2006 - 02:48:06 CST