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

Er det muligt at oprette Oracle associative array type uden for en pakke/procedure?

Svaret er nej, du kan ikke gøre, hvad du prøver at gøre, lige så lidt som du kan oprette en type for at tilføje en BOOLEAN-skrevet variabel til et objekt. Elementerne i et objekt skal indeholde Oracle-typer, ikke PL/SQL-typer. Et lidt klodset alternativ kunne være:

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;

Gem dine tilknyttede par af variabler i de to VARRAY'er. Du bliver nødt til at kende den størst mulige størrelse af dine arrays.



  1. Beregn dybde i en forældre-barn-model i MySQL

  2. Hvordan tilføjer jeg en kontrolbegrænsning i en Rails-migrering?

  3. Ti måder at udvide funktionaliteten af ​​PostgreSQL

  4. Ændring af det genererede navn på en fremmednøgle i Hibernate