こんにちはODP.NET(C#)を使用してOracleパッケージ内のプロシージャにオブジェクトを渡しています。私は連想配列のためにODP.NETを使用しています。私はoracledbtype.objectをODP.NETで見つけられず、object oracledbtypeパラメータを作成できません。どのdbtype私はODP.NETを使用して.NET側のパラメータに使用する必要があります。ODP.NET(C#)を使用してOracleパッケージ内のプロシージャにオブジェクトを渡すときに使用する必要のあるDBタイプはどれですか?
public Oracle.DataAccess.Client.OracleCommand oc = new Oracle.DataAccess.Client.OracleCommand();
oc.Parameters.Add("Param1", OracleDbType.Varchar2).Value = txt_RequestId.Text;
//assign the array to the parm
Oracle.DataAccess.Client.OracleParameter additionalBusiness_AssocParm = new Oracle.DataAccess.Client.OracleParameter();
// When I tried to assign parameter OracleDbType to Varchar2 it is generating an error [PLS-00306: wrong number or types of arguments in call to 'INSERT_REQUEST'].
// When I tried to change that value to Object. It is giving compliation error that object dbtype doesn't exist in Oracle.Data.Client.OracleDbType
additionalBusiness_AssocParm.OracleDbType = Oracle.DataAccess.Client.OracleDbType.Varchar2;
additionalBusiness_AssocParm.CollectionType = Oracle.DataAccess.Client.OracleCollectionType.PLSQLAssociativeArray;
additionalBusiness_AssocParm.Direction = ParameterDirection.Input;
additionalBusiness_AssocParm.Value = unitId; // unitId is an array of User defined type
oc.Parameters.Add(additionalBusiness_AssocParm);
try
{
DoQueryWithODP("TEST_PKG.INSERT_UNIT", true);
}
これをもっと明白にするためにいくつかのコードを投稿できますか?エラーが表示されますか?もしそうなら、それは何ですか? [オブジェクト型](http://download.oracle.com/docs/html/E15167_01/featOraCommand.htm#i1007297)ですが、推測の前にあなたの側で何が起こっているのかを見たいと思います。 – Harrison
あなたはtest_pkg.insert_unitの仕様とhte連想配列の定義を投稿できますか? – Harrison