Itu bukan tipe data array asosiatif (juga dikenal sebagai "indeks menurut tabel"); ini adalah tipe data kumpulan dan didefinisikan dalam lingkup SQL.
Array asosiatif hanya tersedia dalam lingkup PL/SQL dan dapat didefinisikan seperti:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/
C# mendukung melewatkan array asosiatif ke prosedur tersimpan menggunakan sesuatu seperti ini:
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# TIDAK mendukung melewatkan array non-asosiatif.
Jika Anda ingin memiliki koleksi (array non-asosiatif) yang didefinisikan sebagai anggota dari tipe yang ditentukan pengguna (UDT), maka Anda harus menggunakan langkah perantara untuk melewatkan array asosiatif dan kemudian menggunakan PL/SQL untuk mengonversinya ke koleksi sebelum menetapkannya ke UDT. Anda dapat membungkus semua ini dalam prosedur tersimpan dalam paket PL/SQL.