TimesTen DBを使用してデータを格納するアプリケーション。以下は、データを更新して更新された行を返すコードです。
conn = new OracleConnection("My Connection");
conn.Open();
OracleTransaction tran = conn.BeginTransaction(IsolationLevel.ReadCommitted);
OracleCommand command = new OracleCommand();
command = new OracleCommand(@"DECLARE idNo NUMBER;
BEGIN
select id into idNo from " + prefix_db + @"tbl_request_in where upper(status)='PENDING' and ROWNUM <= 1 order by priority, id FOR update;
update " + prefix_db + @"tbl_request_in set status ='Processing',begin_time= SYSDATE(),response_node='10.9.70.47'
where upper(status) <> 'PROCESS' and upper(status) <> 'PROCESSING' and upper(status) <> 'OK' and upper(status)<>'ERROR'
and id=idNo;
OPEN :RETURNCURSOR for select * from APITT_tbl_request_in where id=idNo;
END;", conn);
command.Transaction = tran;
command.BindByName = true;
OracleParameter outNumPrm = command.Parameters.Add("RETURNCURSOR", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.ReturnValue);
// create a data adapter to use with the data set
OracleDataAdapter da = new OracleDataAdapter(command);
// create the data set
DataSet ds = new DataSet();
// fill the data set
da.Fill(ds);
そして、私はエラーを出します
{Oracle.DataAccess.Client.OracleException ORA-01722: 無効な番号
Oracle.DataAccess.Client.OracleException.HandleErrorHelper (Int32 errCode、OracleConnection conn、IntPtr opsErrCtx、OpoSqlValCtx * pOpoSqlValCtx、オブジェクト src、文字列プロシージャ、ブール bCheck) で Oracle.DataAccess.Client.OracleException.HandleError (Int32 errCode、OracleConnection conn、 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping マッピング) での Oracle.DataAccess.Client.OracleDataReader.Read() での IntPtr opsErrCtx、Object src、Boolean bCheck) System.Data.Common.DataAdapter.FillFromReader(DataSet データセット、DataTable) System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader,Int32 startRecord, Int32 maxRecords) Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) at Oracle.DataAccess.Client.OracleDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) での maxRecords、String srcTable、IDbCommand コマンド、CommandBehavior 動作)Fill(データセット データセット)Fill(データセット データセット)
どうすれば解決できますか?