Dat is geen associatief array-gegevenstype (ook bekend als een "index per tabel"); het is een verzamelingsgegevenstype en wordt gedefinieerd in het SQL-bereik.
Associatieve arrays zijn alleen beschikbaar in de PL/SQL-scope en kunnen worden gedefinieerd als:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(50) INDEX BY BINARY_INTEGER;
END;
/
C# ondersteunt het doorgeven van associatieve arrays aan opgeslagen procedures met zoiets als dit:
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# doet NIET ondersteuning voor het doorgeven van niet-associatieve arrays.
Als u een verzameling (een niet-associatieve array) wilt definiëren als een lid van een door de gebruiker gedefinieerd type (UDT), dan moet u een tussenstap gebruiken om een associatieve array door te geven en vervolgens PL/SQL te gebruiken om deze te converteren aan een verzameling voordat u deze aan de UDT toewijst. U kunt dit alles in een opgeslagen procedure in een PL/SQL-pakket verpakken.