Oracle
 sql >> Base de données >  >> RDS >> Oracle

Est-il possible de créer un type de tableau associatif Oracle en dehors d'un package/procédure ?

La réponse est non, vous ne pouvez pas faire ce que vous essayez de faire, pas plus que vous ne pouvez créer un type pour ajouter une variable typée BOOLEAN à un objet. Les éléments d'un objet doivent contenir des types Oracle, et non des types PL/SQL. Une alternative un peu maladroite pourrait être :

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;

Stockez vos paires de variables associées dans les deux VARRAY. Vous devrez connaître la plus grande taille possible de vos tableaux.