ODP.NET的ODAC组件使用输出参数(Out Parameter)时注意事项
2012-12-03 09:33
525 查看
最近使用Oracle的ODAC组件编写数据组件时候发现,在向OracleCommand中添加一个ParameterDirection.Out的输出参数,发现数值类型输出正常,Varchar2类型出来的全部是空字符串(不是DBNull)。
CommandText:
这个看起来毫无问题的代码,在跑的过程中却出现问题,输出参数“:oId”输出正常,但“:oName”却是空字符串。
几经调试毫无头绪,Google之,也没有什么具体回答,直到我看到一篇帖子(忘记具体说什么的了),提到设置OracleParameter中的Size属性,顿时想起调试时候OracleParameter中的Size值是0。
果断设之,输出正常!
Code:
PS:Size设大了只会浪费服务器上的一点点内存空间,而且在数据返回的时候会自动设定数据的大小为Size值;如果设小了就会截断返回的数据。这个需要自己衡量了。
CommandText:
update TABLE set STATUS=123 returning ID, NAME into :oId, :oNameCode:
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值;如果设小了就会截断返回的数据。这个需要自己衡量了。
相关文章推荐
- 使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项
- ODP.NET 2.0使用注意事项以及与1.0的区别
- C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数或返回值的使用注意事项
- iBatis.NET使用ODP.NET的注意事项
- ASP.NET 参数传递,长度限制,及使用注意事项。
- C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数和返回值的使用注意事项
- 使用CFontHolder.Select的字体显示比例参数时的注意事项
- UGUI中带参数事件的使用,itween动画注意事项以及切换场景
- Asp.net MVC中使用KindEditor上传本地图片的注意事项
- ADO.NET访问ACCESS数据库是SQL语句的通配符使用注意事项
- Java中可变长参数的使用及注意事项
- layer组件中使用ajax注意事项
- .NET中 使用数组的注意事项
- Unity中Navigation组件的使用代码范例和注意事项
- (ZT)[Oracle]ASP.NET中使用ODP.NET(ODAC)對含有自定義類型參數的存儲過程進行操作
- RichFaces组件listShuttle使用注意事项
- 64位系统使用VS2010开发32位ASP.NET应用--注意事项
- asp.net 调用 mysql 分页存储过程,repeater使用mysql分页存储过程,mysql 存储过程的注意事项
- 使用 Android OkHttp网络请求时,关于传参数的注意事项
- Java中可变长参数的使用及注意事项