Oracle
 sql >> Database >  >> RDS >> Oracle

È possibile creare un tipo di array associativo Oracle al di fuori di un pacchetto/procedura?

La risposta è no, non puoi fare quello che stai cercando di fare, non più di quanto tu possa creare un tipo per aggiungere una variabile digitata BOOLEAN a un oggetto. Gli elementi in un oggetto devono contenere tipi Oracle, non tipi PL/SQL. Un'alternativa un po' goffa potrebbe essere:

CREATE TYPE t_aa AS VARRAY(10) OF VARCHAR2(10);

CREATE OR REPLACE TYPE t_ua AS OBJECT (ID NUMBER(15)
                                     , MEMBER PROCEDURE initialize(p_aa t_aa)
                                     , MEMBER PROCEDURE initialize(p_aa_i t_aa))
                               NOT INSTANTIABLE NOT FINAL;

Memorizza le tue coppie di variabili associate nei due VARRAY. Dovrai conoscere la dimensione più grande possibile dei tuoi array.