VARRAYパラメータを使用してOracle 11gの手順にC#の呼び出し
-
20-09-2019 - |
質問
どのようにASP.NETから私がのVArrayを受け入れるOracleパッケージにストアドプロシージャを呼び出すことができます。 VArrayは、ストアドプロシージャが適切なレコードを変更するために使用するキーのリストを渡します。私は、別のコールにキーを送信したり、区切りのリストを送ることができる知っているが、私はむしろ、配列を使用すると思います。
解決
ここでそれを行う方法ですが、(あなたがとにかくSystem.Data.OracleClient
を使用すべきではありません)あなたがODP.NETを使用していると仮定します:
using System;
using System.Data;
using Oracle.DataAccess.Client;
class SomeClass
{
void SomeMethod(string connectionString, int[] anArrayOfKeys)
{
using (var con = new OracleConnection(connectionString))
using (var cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "StoredProcedureNameGoesHere";
cmd.Parameters.Add(
"ParameterNameGoesHere",
OracleDbType.Array,
anArrayOfKeys,
ParameterDirection.Input);
con.Open();
cmd.ExecuteNonQuery();
}
}
}
他のヒント
あなたはこのにしようとしました。
OracleCommand cmd = OracleConnection1.CreateCommand();
cmd.CommandText = "INSERT INTO ArrayTable VALUES (:CODE, :TITLE, : ARR1, :ARR2)";
...
OracleArray arr1 = new OracleArray("SCOTT.TARRAY1", OracleConnection1);
arr1.Add(10);
arr1.Add(20);
arr1.Add(30);
...
cmd.Parameters["ARR1"].DbType = OracleDbType.Array;
cmd.Parameters["ARR1"].Value = arr1;
...
cmd.ExecuteNonQuery();
所属していません StackOverflow