Điều này không hợp lệ về mặt cú pháp vì nó có thêm INDEX
từ khóa ở cuối nhưng nếu bạn sửa lỗi đó:
create type T_STRING_TAB is table of varchar2(260);
Đó là một kiểu dữ liệu thu thập được xác định trong phạm vi SQL. C # hiện không hỗ trợ truyền một mảng không liên kết.
Mã C # của bạn đang mong đợi một mảng kết hợp được xác định trong phạm vi PL / SQL:
Để tạo một mảng liên kết PL / SQL, bạn cần thực hiện nó bên trong một gói và bao gồm một INDEX BY <numeric data type>
manh mối:
CREATE PACKAGE package_name AS
TYPE STRING_MAP IS TABLE OF VARCHAR2(260) INDEX BY BINARY_INTEGER;
END;
/
Sau đó, thủ tục của bạn có thể là:
create or replace procedure spTest(
eventids in PACKAGE_NAME.STRING_MAP
)
as
starteventid integer;
begin
starteventid := 1000000;
end;
/