Dit is syntactisch ongeldig omdat het een extra INDEX
. heeft zoekwoord aan het einde, maar als u dat oplost:
create type T_STRING_TAB is table of varchar2(260);
Dat is een verzamelingsgegevenstype dat is gedefinieerd in het SQL-bereik. C# biedt momenteel geen ondersteuning voor het doorgeven van een niet-associatieve array.
Uw C#-code verwacht een associatieve array gedefinieerd in de PL/SQL-scope:
Om een associatieve PL/SQL-array te maken, moet u dit in een pakket doen en een INDEX BY <numeric data type>
opnemen clausule:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(260) INDEX BY BINARY_INTEGER;
END;
/
Dan kan uw procedure zijn:
create or replace procedure spTest(
eventids in PACKAGE_NAME.STRING_MAP
)
as
starteventid integer;
begin
starteventid := 1000000;
end;
/