场景:
写了一个有返回参数的存储过程,在个另开发人员机器上都正常。其它机器报如题错误。让人郁闷的是,所有调用方都是客户端,根本不存在网上众贴所说的版本不一致问题。
分析:
虽然网上的帖子没有根本解决问题,但还是给了些丝路。参数值类型问题。而且,我也把输出参数赋值语句注释后,也可以正常调用(只是结果没返回)。尝试了将类型转为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