ORACLE与.NET类型对应关系(转)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ORACLE与.NET类型对应关系(转),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2914字,纯文字阅读大概需要5分钟。
内容图文
![ORACLE与.NET类型对应关系(转)](/upload/InfoBanner/zyjiaocheng/461/8c9ce6b744e04305843a344577cdf85a.jpg)
ORACLE与.NET类型对应关系
想来这个是最重要的事情了,因为多数情况下,我们使用dbhelper来调用数据库的时候,是因为如下三个地方导致错误:
1、错误的sql语句:末尾多了分号,少了部分关键字
2、sql中的参数与parameter[]不对应。
3、parasmeter[]中的数据类型转为Oracle的数据类型中出错。
通常情况下,我们大设置paramenter[]时,只会给出变量名和对应的值(多数是.NET中的变量)去让ODP自动执行数据类型转换,而ODP一般都可以正确的转换,但是,有时候也会出现一些意外的情况,这时,就需要我们手动来明确的设置。
ODP.NET的数据类型以结构体或者类的形式来支持ORACLE的本地类型以及PL/SQL的数据类型。其中结构体是值类型,而类则是引用类型。 ORACLE的数据类型比.NET自己的数据类型具有更大的优势,比如OracleDecimal支持38位而.NET的Decimal只支持28位。
下面表中展示了ORACLE数据库的本地类型(包含PL/SQL的)、ODP.NET的数据类型以及.NET的数据类型的对应关系。
而我们要关心的是把.NET的数据类型转为正确的ODP.NET数据类型就ok了,剩下的操作ODP.NET会帮助我们转换,说白了,就是我们在
New OracleParamter(){ParameterName=":name",Value=var}
的时候,确保我们的.NET类型var与数据库中的对应,或者在我们.NET数据类型无法满足使用的时候,使用ODP.NET的类型声明变量类型。
Oracle Native Data Type or PL/SQL Data Type | ODP.NET Type | .NET Framework Data Types |
BFILE | OracleBFile class | System.Byte[] |
BINARY_DOUBLE | OracleDecimal structure | System.Decimal |
BINARY_FLOAT | OracleDecimal structure | System.Decimal |
BINARY_INTEGER (PL/SQL only) | OracleDecimal structure | System.Decimal |
BLOB | OracleBlob class | System.Byte[] |
BOOLEAN (PL/SQL only) | OracleBoolean structure | System.Boolean |
CHAR | OracleString structure | System.String |
CLOB | OracleClob class | System.String |
DATE | OracleDate structure | System.DateTime |
INTERVAL DAY TO SECOND | OracleIntervalDS structure | System.TimeSpan |
INTERVAL YEAR TO MONTH | OracleIntervalYM structure | System.Int64 |
LONG | OracleString structure | System.String |
LONG RAW | OracleBinary structure | System.Byte[] |
NCHAR | OracleString structure | System.String |
NCLOB | OracleClob class | System.String |
NUMBER | OracleDecimal structure | System.Decimal |
NVARCHAR2 | OracleString structure | System.String |
PLS_INTEGER (PL/SQL only) | OracleDecimal Structure | System.Decimal |
RAW | OracleBinary structure | System.Byte[] |
REF | OracleRef class | System.String |
REF CURSOR (PL/SQL only) | OracleRefCursor class | Not Applicable |
ROWID | OracleString structure | System.String |
TIMESTAMP | OracleTimeStamp structure | System.DateTime |
TIMESTAMP WITH LOCAL TIMEZONE | OracleTimeStampLTZ structure | System.DateTime |
TIMESTAMP WITH TIME ZONE | OracleTimeStampTZ structure | System.DateTime |
UROWID | OracleString structure | System.String |
VARCHAR2 | OracleString structure | System.String |
XMLType | OracleXmlType class | System.String |
需要注意的是:
- 所有数字类型都使用DECIMAL,除了INTERVAL YEAR TO MONTH对应INT64除外(这个类型我们基本不会使用到)。
- ROWID,UROWID使用的是STRING而不是数字类型.
- 时间相关的全部使用DateTime,除了INTERVAL DAY TO SECOND使用TimeSpan(这个类型我们基本不会使用到)。
- RAW使用的是Byte[],所以,LONG RAW使用的也是Byte[].
ORACLE与.NET类型对应关系(转)
标签:
本文系统来源:http://www.cnblogs.com/jimcsharp/p/5280822.html
内容总结
以上是互联网集市为您收集整理的ORACLE与.NET类型对应关系(转)全部内容,希望文章能够帮你解决ORACLE与.NET类型对应关系(转)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。