首页 新闻 会员 周边

C#调用存储过程,输出参数为字符串时,长度被截取了。而在PLSQL调用查看时正常。

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-04-19 18:00

在PLSQL中执行存储过程,输出的参数是正确的结果,如下:

 

但是在C#调用存储过程时,其他类型(decimal,datatable都正常),出现了截取一段的现象,如下,希望遇到过的指点一二(客户端装的是 12c、另外还装了odp.net)

 

豆豆不多,希望大家能帮忙看下。非常感谢!

艾野草的主页 艾野草 | 初学一级 | 园豆:183
提问于:2016-04-07 20:47
< >
分享
所有回答(4)
0

将下面代码中的50改为更大的值,现在超过50个字符就会被截取。

new OracleParameter("p_pallet_no", OracleType.VarChar, 50)

 

dudu | 园豆:30994 (高人七级) | 2016-04-07 20:53

支持(0) 反对(0) 艾野草 | 园豆:183 (初学一级) | 2016-04-07 21:29
0

你看看存储过程中返回参数的类型是啥 或者使用OracleType.Char试试

刘宏玺 | 园豆:14020 (专家六级) | 2016-04-07 23:16

OUT VARCHAR2 啊

支持(0) 反对(0) 艾野草 | 园豆:183 (初学一级) | 2016-04-08 13:43
0

同意一楼的看法,你设置的字符串长度有可能小了,改大一些试试。

心怀宇宙 | 园豆:643 (小虾三级) | 2016-04-08 12:17

C#中,我不是都试了300吗,还试了LongChar类型,也没反应啊

支持(0) 反对(0) 艾野草 | 园豆:183 (初学一级) | 2016-04-08 13:43
0

遇到了同样的问题,是oracle 12c的bug,换回11g客户端后正常了.以后遇到这个问题的朋友可以参考下

Nquiet | 园豆:316 (菜鸟二级) | 2017-02-10 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册