Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。

时间:2023-03-08 16:55:53
Oracle存储过程 输出参数赋值异常:“Oracle.DataAccess.Types.OracleString”的类型初始值设定项引发异常。

场景:

写了一个有返回参数的存储过程,在个另开发人员机器上都正常。其它机器报如题错误。让人郁闷的是,所有调用方都是客户端,根本不存在网上众贴所说的版本不一致问题。

分析:

虽然网上的帖子没有根本解决问题,但还是给了些丝路。参数值类型问题。而且,我也把输出参数赋值语句注释后,也可以正常调用(只是结果没返回)。尝试了将类型转为Oracle的OracleString,强制转clr的string,都不行。

dicParaOut[kvp.Key] = (string)command.Parameters[0].Value;

dicParaOut[kvp.Key] = (OracleString)command.Parameters[0].Value;

解决:

抱着试试看的心态,尝试用.ToString()。搞定了。

dicParaOut[kvp.Key] = command.Parameters[0].Value.ToString();

参考帖子:

http://www.cnblogs.com/keyrratuff/archive/2010/02/04/1663791.html