Nejedná se o datový typ asociativního pole (známý také jako "index podle tabulky"); je to datový typ kolekce a je definován v rozsahu SQL.
Asociativní pole jsou k dispozici pouze v rozsahu PL/SQL a lze je definovat takto:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/
C# podporuje předávání asociativních polí do uložených procedur pomocí něčeho takového:
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# NE podporují předávání neasociativních polí.
Pokud chcete mít kolekci (neasociativní pole) definovanou jako člen uživatelem definovaného typu (UDT), pak budete muset použít mezikrok předání asociativního pole a jeho převod pomocí PL/SQL. do kolekce před jejím přiřazením k UDT. To vše můžete zabalit do uložené procedury v balíčku PL/SQL.