Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C调用Oracle函数时字符串缓冲区太小错误#_C#_Asp.net_Oracle - Fatal编程技术网

C# 使用C调用Oracle函数时字符串缓冲区太小错误#

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”作为输出

从C#调用oracle函数时出现plsql数值错误-请告诉我如何删除该错误

PL/SQL:数字或值错误:字符串缓冲区太小

代码:

C#代码:


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;