C# Oracle动态参数错误
我得到了返回一个C# Oracle动态参数错误,c#,dapper,C#,Dapper,我得到了返回一个varchar2的函数 我正在使用dapper,执行此查询时遇到问题 OracleDynamicParameters DictionaryParams = new OracleDynamicParameters(); DictionaryParams.Add(name: "id", value: id,direction: ParameterDirection.Input); DictionaryParams.Add(name: "Return_Value",oracleDbT
varchar2
的函数
我正在使用dapper,执行此查询时遇到问题
OracleDynamicParameters DictionaryParams = new OracleDynamicParameters();
DictionaryParams.Add(name: "id", value: id,direction: ParameterDirection.Input);
DictionaryParams.Add(name: "Return_Value",oracleDbType: OracleDbType.Varchar2,direction: ParameterDirection.ReturnValue);
con.Execute("function_name", DictionaryParams, commandType: CommandType.StoredProcedure);
string a;
a = DictionaryParams.Get<string>("Return_Value");
OracleDynamicParameters字典参数=新的OracleDynamicParameters();
Add(名称:“id”,值:id,方向:ParameterDirection.Input);
Add(名称:“Return_Value”,oracleDbType:oracleDbType.Varchar2,方向:ParameterDirection.ReturnValue);
con.Execute(“函数名”,字典参数,commandType:commandType.StoredProcess);
字符串a;
a=DictionaryParams.Get(“返回值”);
我发现了一个Oracle错误:
ORA-06502:PL/SQL:错误号或值:字符串缓冲区太小
我试着给返回值一个大小,但这不起作用,我也试着弄清楚,但一切都不起作用
有人能看看这个吗?我想问题源于使用固定长度的字符串Char。
在PL-SQL代码的某个地方,您尝试将长度为N的Char或varchar2字符串放入长度为M的Char中,其中M>N您需要指定varchar2的最大大小 例如:
parameters.Add(“p_输出”,dbType:OracleDbType.Varchar2,方向:ParameterDirection.OUTPUT,大小:1000) 您是否尝试过更新OracleDbType.Varchar2的值?错误是否在过程调用本身中?如果直接从sqlplus调用该过程,它是否有效?