首页 新闻 会员 周边 捐助

Dapper 调用 Oracle数据库 带参数存储过程错误。

0
悬赏园豆:40 [已解决问题] 解决于 2016-01-19 12:27

项目是4.0的,使用了Dapper这个轻型ORM。

普通的sql语句执行没有问题,但是再执行Oracle的存储过程就有了错误。

下面是执行不带参数的存储过程:

下面是执行带参数的存储过程:

我这里没有给参数加上 ‘ :’,我之前网上搜索了一下相关资料,有些猿友说不写 ‘ :’也是可以的。结果还是同样的错误。

然后,补充上,加上‘ :’ 的错误:

补充说明:

使用的程序版本全是4.0,Oracle连接使用的System.Data.OracleClient.dll。

求帮助

LiGoper的主页 LiGoper | 初学一级 | 园豆:32
提问于:2015-10-13 09:59
< >
分享
最佳答案
1

代码上解决不了的问题,可以考虑换个角度,从设计上避免嘛。。一定非要传游标?

收获园豆:20
幻天芒 | 高人七级 |园豆:37205 | 2015-10-13 13:30

可是,我需要通过存储过程获得结果集。

LiGoper | 园豆:32 (初学一级) | 2015-10-13 13:57

@愤怒的TryCatch: 存储过程不是问题,可以从参数上考虑下哇。

幻天芒 | 园豆:37205 (高人七级) | 2015-10-13 17:05
其他回答(2)
1

去看你生成的sql语句,在数据库执行下,你就可以可以知道错误了

收获园豆:20
稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 10:31

1. v$sql.
2. 用 pl/sql developer 工具  "Tools" -> "Sessions" 可以查看每个session所执行过的语句

进行监控下吧

支持(1) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 10:34

@稳稳的河: 

嗯,谢谢你提供的方案。

问题基本上找到了,是缺少参数,这个DbType如何添加游标这个类型呢?

我写DbType.Object 也不行。

支持(0) 反对(0) LiGoper | 园豆:32 (初学一级) | 2015-10-13 10:47

@愤怒的TryCatch: Oracle的游标我没用过,目前也不知道怎么传参,你去goolge下吧

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 10:49
0

已经解决,自己扩展了Dapper。

http://www.cnblogs.com/likeli/p/4875341.html

LiGoper | 园豆:32 (初学一级) | 2015-10-16 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册