今日在用SimpleDatabase访问Oracle游标返回数据时,总是提示"不正确的参数类型或数量",访问没有游标返回的Procedure就一切正常,上网查了一下,发现如下资料:
realized all that needed to be done was to add an output parameter of type OracleType.Cursor. But since the IDataParamater.DbType didn't have that type, and I didn't want to change much code, I changed the code in the 'else parameter.Type is null' portion of Wilson.ORMapper.Internals.Connection.GetParameter(...) to this:
if (dbParameter is System.Data.OracleClient.OracleParameter && dbParameter.Direction == ParameterDirection.Output)
{
((System.Data.OracleClient.OracleParameter)dbParameter).OracleType = System.Data.OracleClient.OracleType.Cursor;
}
else
{
dbParameter.DbType = DbType.String;
}
用上述的代码测试后,结果正常,但如果真的有output非游标参数,上述的代码就会有问题了。
不知道是不是SimpleDatabase的问题,欢迎大侠们提下意见。