ODP.NET的ODAC组件使用输出参数(Out Parameter)时注意事项

来源:互联网 发布:淘宝好评返现常用语 编辑:程序博客网 时间:2024/04/27 14:10

最近使用Oracle的ODAC组件编写数据组件时候发现,在向OracleCommand中添加一个ParameterDirection.Out的输出参数,发现数值类型输出正常,Varchar2类型出来的全部是空字符串(不是DBNull)。

CommandText:

update TABLE set STATUS=123returning ID, NAME into :oId, :oName
Code:
comm.Parameters.Add(":oId", OracleDbType.Int32, ParameterDirection.Output);comm.Parameters.Add(":oName", OracleDbType.Varchar2, ParameterDirection.Output);

这个看起来毫无问题的代码,在跑的过程中却出现问题,输出参数“:oId”输出正常,但“:oName”却是空字符串。

几经调试毫无头绪,Google之,也没有什么具体回答,直到我看到一篇帖子(忘记具体说什么的了),提到设置OracleParameter中的Size属性,顿时想起调试时候OracleParameter中的Size值是0。

果断设之,输出正常!

Code:

comm.Parameters.Add(":oName", OracleDbType.Varchar2, ParameterDirection.Output).Size = 64;


PS:Size设大了只会浪费服务器上的一点点内存空间,而且在数据返回的时候会自动设定数据的大小为Size值;如果设小了就会截断返回的数据。这个需要自己衡量了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 身上起大片扁疙瘩很痒怎么办 我急用钱借钱又借不到怎么办 小孩蛀牙牙疼怎么办教你立刻止疼 牙齿里面长了个小牙齿怎么办 2岁宝宝又吐又拉怎么办 u盘坏了怎么办没反应了 怀孕了不知道孩子是谁的怎么办 怀孕八个月耻骨疼的厉害怎么办 没感情了这段婚姻该怎么办 1岁半宝宝o型腿怎么办 4s店没按时交车怎么办 几天几夜睡不着觉没有睡意怎么办 辣的吃多了胃疼怎么办 喉咙痛怎么办有最好即简单好得快 减肥过后皮肤留下的肥胖纹怎么办 用了完美玛丽艳脸上长痘痘怎么办 腰疼怎么办8方法解决腰疼 红米3x开不了机怎么办 苹果手机忘记了锁屏密码怎么办 小米5的4g网速慢怎么办 红米4a卡机了怎么办 信而富逾期3个月怎么办 苹果6锁屏密码忘了怎么办 孕8个月咳嗽有痰怎么办 微信红包输了6万怎么办 红米3s开不了机怎么办 核载5人载了6人怎么办 我欠支付宝2万6怎么办 我47岁这个月经不来怎么办 两个月不来月经了也没怀孕怎么办 婴儿不吃奶粉母乳又不够吃怎么办 怀孕39周了还没反应怎么办 脸过敏了又红又痒怎么办 刚开的淘宝店没生意怎么办 我22岁长得显老怎么办 卡的钱被qq转走怎么办 招行u盾密码忘了怎么办 孩子上五年级了成绩非常差怎么办 红米3s开不开机怎么办 皮肤被虫子咬了红肿痒怎么办 微信被骗了1万多怎么办