当前位置:Gxlcms > 数据库问题 > 也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小

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

时间:2021-07-01 10:21:17 帮助过:6人阅读

,就OK了。

另外:输出参数长度是必须指定的。这里,我是通过给定一个无意义的初始值(做占位符用)。

//定义输出参数

Dictionary<string, object> dicOut = new Dictionary<string, object>();
dicOut.Add("djdh", "11111111111111111111");

定义存储过程:

CREATE OR REPLACE PROCEDURE gendh(djdh OUT VARCHAR2,
djlx IN VARCHAR2,
rq IN VARCHAR2,
dwdm IN VARCHAR2,
csfs IN VARCHAR2) IS……

后台服务中的存储过程方法定义:

// 设置输出参数
foreach (KeyValuePair<string, object> kvp in dicParaOut)
{
command.Parameters.Add(kvp.Key, OracleDbType.Varchar2, kvp.Value.ToString().Length).Direction = ParameterDirection.Output;
}

//设置输入参数

foreach (KeyValuePair<string, object> kvp in dicIn)
{
command.Parameters.Add(kvp.Key, OracleDbType.Varchar2, kvp.Value, ParameterDirection.Input);
}

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

标签:

人气教程排行