Dette er syntaktisk ugyldigt, da det har en ekstra INDEX
søgeord i slutningen, men hvis du løser det:
create type T_STRING_TAB is table of varchar2(260);
Det er en indsamlingsdatatype defineret i SQL-omfanget. C# understøtter i øjeblikket ikke videregivelse af et ikke-associativt array.
Din C#-kode forventer et associativt array defineret i PL/SQL-omfanget:
For at lave et PL/SQL associativt array skal du gøre det inde i en pakke og inkludere en INDEX BY <numeric data type>
klausul:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(260) INDEX BY BINARY_INTEGER;
END;
/
Så kan din procedure være:
create or replace procedure spTest(
eventids in PACKAGE_NAME.STRING_MAP
)
as
starteventid integer;
begin
starteventid := 1000000;
end;
/