我在Oracle数据库12c中有一个存储过程,其中有参数输入和输出,当我运行代码时,我得到一个SQL无效的错误。
这是我的代码:
using (OracleConnection connection = new OracleConnection(_connection.ConnectionString))
{
var parameters = new OracleDynamicParameters();
parameters.Add("in_RQ_SALES_REQUEST", OracleDbType.Int32 ,ParameterDirection.Input , 14478);
parameters.Add("in_RQ_AMOUNT", OracleDbType.Int32 ,ParameterDirection.Input , 2500);
parameters.Add("in_RQ_CURRENCY", OracleDbType.Char ,ParameterDirection.Input ,"YER", 3);
parameters.Add("in_RQ_TP_CHANNEL", OracleDbType.Char ,ParameterDirection.Input ,"APP", 3);
parameters.Add("in_RQ_ACC_TYPE", OracleDbType.Varchar2 ,ParameterDirection.Input ,"SUB");
parameters.Add("in_RQ_MAIN_SRVC_ID", OracleDbType.Int32 ,ParameterDirection.Input ,1);
parameters.Add("in_RQ_SUB_SRVC_ID", OracleDbType.Int32 ,ParameterDirection.Input ,1);
parameters.Add("in_RQ_INTERNAL_EXTRA1", OracleDbType.Varchar2 ,ParameterDirection.Input ,"123456");
parameters.Add("in_RQ_INTERNAL_EXTRA2", OracleDbType.Varchar2 ,ParameterDirection.Input ,"775550902");
// Add the out parameters to the OracleDynamicParameters object.
parameters.Add("P_OUT_RESULT", OracleDbType.Int32, ParameterDirection.Output);
parameters.Add("P_OUT_RESULT_DESC", OracleDbType.Varchar2, ParameterDirection.Output);
// Call the stored procedure.
var result = connection.Execute("SP_INIT_SALES_REQUEST", parameters);
// Retrieve the out parameter values from the OracleDynamicParameters object.
// int outResult = parameters["out_Result"].Value<int>();
// string outResultDesc = parameters["out_Result_Desc"].Value<string>();
// Close the connection.
connection.Close();
return Ok("result =>" + result.ToString());
}
我无法得到out params:
// Retrieve the out parameter values from the OracleDynamicParameters object.
// int outResult = parameters["out_Result"].Value<int>();
// string outResultDesc = parameters["out_Result_Desc"].Value<string>();
我试了很多次,但都出错了
1条答案
按热度按时间ig9co6j11#
您需要添加
commandType: CommandType.StoredProcedure
: