C# {ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误\nORA-06512:在第1行";}

C# {ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误\nORA-06512:在第1行";},c#,oracle,stored-procedures,oracle-manageddataaccess,C#,Oracle,Stored Procedures,Oracle Manageddataaccess,我有一个用于将存储过程错误记录到Oracle数据库的文件,但在执行存储过程时,我遇到了一个错误 ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误 ORA-06512:在第1行 以前我使用的是Microsoft企业日志,但现在我使用的是oracle.managed.dataaccess。我的代码如下所示 如何解决这部分错误,(字节)0,(字节)0,(字符串)null,DataRowVersion。在我的新代码中为默认值?存储过程的第一个字段定义为 abcd OUT INT 但你

我有一个用于将存储过程错误记录到Oracle数据库的文件,但在执行存储过程时,我遇到了一个错误

ORA-06502:PL/SQL:数字或值错误:字符到数字转换错误
ORA-06512:在第1行

以前我使用的是Microsoft企业日志,但现在我使用的是
oracle.managed.dataaccess
。我的代码如下所示


如何解决这部分错误,(字节)0,(字节)0,(字符串)null,DataRowVersion。在我的新代码中为默认值?

存储过程的第一个字段定义为

abcd OUT INT
但你要把它绑定为

cmd = adapter.InputField(cmd, "abcd", logEntry.EventId, OracleDbType.Varchar2);

换句话说,
abcd
被定义为
INT
,它是一个输出参数,但您将其绑定为一个字符串输入参数。我没有走得更远。返回并检查所有绑定是否与参数匹配。

它告诉您,在某个地方,您会向数字字段发送一个值,如
'abc'
。Oracle不能隐式转换它。你是对的,鲍勃。它解决了这个问题。但现在我面临一些其他问题,比如{“输入字符串的格式不正确。”}。我以前的代码是db.AddParameter(storedProcCommand,“xyz”,DbType.String,32,ParameterDirection.Input,false,(byte)0,(byte)0,(String)null,DataRowVersion.Default,(object)logEntry.Severity.ToString());现在cmd=adapter.InputField(cmd,“severity”,logEntry.severity.ToString(),OracleDbType.Varchar2);命令参数[“严重性”]。大小=32;我编辑了这个问题。请看一看并提出一些解决问题的建议