C# 使用C调用Oracle函数时字符串缓冲区太小错误#
从C#调用oracle函数时出现plsql数值错误-请告诉我如何删除该错误 PL/SQL:数字或值错误:字符串缓冲区太小 代码: C#代码:C# 使用C调用Oracle函数时字符串缓冲区太小错误#,c#,asp.net,oracle,C#,Asp.net,Oracle,从C#调用oracle函数时出现plsql数值错误-请告诉我如何删除该错误 PL/SQL:数字或值错误:字符串缓冲区太小 代码: C#代码: VARCHAR2的最大大小为32767字节,不可能为40000字节 改变 cmd.Parameters.Add("x", OracleDbType.Varchar2, 40000).Direction = ParameterDirection.ReturnValue; 到 如果需要更大的数据,也可以使用CLOB。我的存储过程在定义中有“keys”作为输出
VARCHAR2
的最大大小为32767字节,不可能为40000字节
改变
cmd.Parameters.Add("x", OracleDbType.Varchar2, 40000).Direction = ParameterDirection.ReturnValue;
到
如果需要更大的数据,也可以使用
CLOB
。我的存储过程在定义中有“keys”
作为输出参数
command.Parameters.Add("keys", OracleDbType.Varchar2, 32767).Direction = ParameterDirection.Output;
这为我解决了这个问题,将输出varchar2变量的大小与类型一起传递
我希望这有助于寻找此错误的解决方案。请尝试将
250
更改为255
以x varchar2(250)代码>,然后查看错误是否仍然存在…将250更改为255后,@BarbarosÖzhan的可能重复项仍然不起作用当添加x作为参数时,您正在将大小设置为40000,然后将该大小重置为255。为什么?@bradbury9不,我在发布之前已经检查过了
cmd.Parameters.Add("x", OracleDbType.Varchar2, 40000).Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add("x", OracleDbType.Varchar2, 32767).Direction = ParameterDirection.ReturnValue;
command.Parameters.Add("keys", OracleDbType.Varchar2, 32767).Direction = ParameterDirection.Output;