sql >> Base de Datos >  >> RDS >> Oracle

¿Es posible crear un tipo de matriz asociativa de Oracle fuera de un paquete/procedimiento?

La respuesta es no, no puede hacer lo que está tratando de hacer, más de lo que puede crear un tipo para agregar una variable de tipo BOOLEAN a un objeto. Los elementos de un objeto deben contener tipos Oracle, no tipos PL/SQL. Una alternativa un poco torpe podría ser:

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;

Almacene sus pares de variables asociadas en los dos VARRAY. Deberá conocer el tamaño más grande posible de sus arreglos.