Хотя преобразование в CSV сработало, оно не очень эффективно, и вы ограничены 4000 символов.
Для достижения того, что вы хотите, лучше всего использовать цикл Форалла
например
PACKAGE MyPackage AS
TYPE ids_array IS TABLE OF NUMBER(8) INDEX BY BINARY_INTEGER;
PROCEDURE MyStoredProcedure
(
param1 IN VARCHAR2(10),
param2 IN ids_array
);
/
PACKAGE MyPackage BODY
ENDPROCEDURE MyStoredProcedure
(
param1 IN VARCHAR2(10),
param2 IN ids_array
) AS
BEGIN
forall i in param2.FIRST .. param2.LAST
INSERT INTO TABLE(col1,col2) VALUES (param1, params2(i));
END;
END MyPackage;
В ODP.NET у вас есть два параметра, первый из которых:varchar, второй является ассоциативным массивом.