Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

É possível criar o tipo de matriz associativa Oracle fora de um pacote/procedimento?


A resposta é não, você não pode fazer o que está tentando fazer, assim como não pode criar um tipo para adicionar uma variável do tipo BOOLEAN a um objeto. Os itens em um objeto devem conter tipos Oracle, não tipos PL/SQL. Uma alternativa um pouco desajeitada poderia 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;

Armazene seus pares de variáveis ​​associadas nos dois VARRAYs. Você terá que saber o maior tamanho possível de suas matrizes.