您的位置:首页 > 数据库

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

2007-05-31 15:42 561 查看
在.NET中执行ORACLE存储过程的函数时(有返回值)报错:ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

解决办法:存储过程的参数添加得按特定顺序,第1个参数为函数的返回值,第2个参数为函数中的第一个参数,以些类推。 把顺序打乱了,通常会报告如上错误,当然也不是都报,但运行结果不对。

代码如下:
OracleCommand com = new OracleCommand("pk_wt.f_get",con);
com.CommandType = CommandType.StoredProcedure;
OracleParameter oPram = new OracleParameter("str_",OracleDbType.Varchar2,8000);
oPram.Direction = ParameterDirection.InputOutput;
oPram.Value = "我是.NET程序中输入的字符型参数值。";
OracleParameter oPram2 = new OracleParameter("result_", OracleDbType.Varchar2,8000);
oPram2.Direction = ParameterDirection.ReturnValue;

oPram2.Value = "我是.NET程序中预设的ORACLE存储过程(函数)返回值。";//这一行代码纯属示例,实际中根本没有此必要

com.Parameters.Add(oPram2);//装返回值的参数要第1个添加
com.Parameters.Add(oPram);
com.ExecuteNonQuery();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐