1
Oracleストアドプロシージャに整数配列を渡そうとしています。Dapper ORMからOracleストアドプロシージャを呼び出すときに 'System.Int32 []'型のオブジェクトを 'System.IConvertible'にキャストできません
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;
以下DapperのORMを使用して、.NETアプリケーションからストアドプロシージャを呼び出すためのコードです。
上記ExecuteAyncメソッドが呼び出され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);
、私は '可能System.Int32 []は'「System.IConvertible
を入力するタイプのオブジェクトをキャストすることができませんエラー -を以下の取得
この問題についてオンラインで検索しましたが、解決策が見つかりませんでした。
おかげT。S.これは今このソリューションで動作します。 – Raj
@Rajあなたの問題を解決してうれしいです! –