Jest to nieprawidłowe składniowo, ponieważ ma dodatkowy INDEX
słowo kluczowe na końcu, ale jeśli to naprawisz:
create type T_STRING_TAB is table of varchar2(260);
Jest to typ danych kolekcji zdefiniowany w zakresie SQL. C# obecnie nie obsługuje przekazywania tablicy nieskojarzeniowej.
Twój kod C# oczekuje tablicy asocjacyjnej zdefiniowanej w zakresie PL/SQL:
Aby utworzyć tablicę asocjacyjną PL/SQL, musisz zrobić to wewnątrz pakietu i dołączyć INDEX BY <numeric data type>
klauzula:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(260) INDEX BY BINARY_INTEGER;
END;
/
Wtedy twoja procedura może być:
create or replace procedure spTest(
eventids in PACKAGE_NAME.STRING_MAP
)
as
starteventid integer;
begin
starteventid := 1000000;
end;
/