Това не е тип данни от асоциативен масив (известен също като "индекс по таблица"); това е тип данни за колекция и е дефиниран в обхвата на SQL.
Асоциативните масиви са налични само в обхвата на PL/SQL и могат да бъдат дефинирани като:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/
C# поддържа предаване на асоциативни масиви към съхранени процедури, използвайки нещо като това:
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# НЕ поддържа предаване на неасоциативни масиви.
Ако искате да имате колекция (неасоциативен масив), дефинирана като член на потребителски дефиниран тип (UDT), тогава ще трябва да използвате междинна стъпка на предаване на асоциативен масив и след това да използвате PL/SQL, за да го конвертирате към колекция, преди да я присвоите на UDT. Можете да опаковате всичко това в съхранена процедура в PL/SQL пакет.