Det er ikke en associativ array-datatype (også kendt som en "indeks efter tabel"); det er en indsamlingsdatatype og er defineret i SQL-omfanget.
Associative arrays er kun tilgængelige i PL/SQL-omfanget og kan defineres som:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/
C# understøtter videregivelse af associative arrays til lagrede procedurer ved hjælp af noget som dette:
OracleParameter parameter = new OracleParameter();
parameter.ParameterName = "YourParameterName";
parameter.OracleDbType = OracleDbType.Varchar2;
parameter.Direction = ParameterDirection.Input;
parameter.CollectionType = OracleCollectionType.PLSQLAssociativeArray;
parameter.Value = new String[5]{"a","b","c","d","e"};
C# gør IKKE understøtter videregivelse af ikke-associative arrays.
Hvis du vil have en samling (et ikke-associativt array) defineret som et medlem af en brugerdefineret type (UDT), skal du bruge et mellemtrin til at sende et associativt array og derefter bruge PL/SQL til at konvertere det til en samling, før den tildeles til UDT. Du kan pakke alt dette ind i en lagret procedure i en PL/SQL-pakke.