Я пытаюсь передать целочисленный массив в хранимую процедуру Oracle.Невозможно наложить объект типа 'System.Int32 []', чтобы напечатать 'System.ICconvertible при вызове хранимой процедуры Oracle из Dapper ORM
следующий тип, определенный в Oracle.
CREATE OR REPLACE TYPE EMPIDLIST
AS TABLE OF Number;
Ниже приводится хранимая процедура, которая с использованием вышеуказанного типа.
CREATE OR REPLACE PROCEDURE TESTINPUTARRAY
(
IN_STR_ARRAY IN EMPIDLIST
) AS
BEGIN
--Doing something here.....
NULL;
END TESTINPUTARRAY;
Ниже приведен код для вызова хранимой прок из .net приложения, используя Dapper ОРМ.
List<int> values = new List<int>() { 1, 2, 3, 4, 5 };
OracleParameter parameters = new OracleParameter
{
ParameterName = "IN_STR_ARRAY",
OracleDbType = OracleDbType.Int32,
Value = values.ToArray(),
Direction = System.Data.ParameterDirection.Input
};
await connection.ExecuteAsync("TESTINPUTARRAY", param: parameters, commandType: CommandType.StoredProcedure);
Когда описанный выше метод ExecuteAync называется, я получаю следующее error-
Невозможно привести объект типа 'System.Int32 []' к типу «System.IConvertible
Я искал в Интернете об этой проблеме, но не смог найти решение.
Благодаря T.S. Теперь он работает с этим решением. – Raj
@Raj Я рад, что вы решили свою проблему! –