<轉>Oracle資料型別與.NET中的對應關係
Oracle連線新增的引用不同,會存在資料型別不同以及其他一些差別,就工作中遇到的問題暫時總結下。
兩種不同的新增引用語句:
(1)System.Data.OracleClient;
(2)Oracle.DataAccess.Client;
Oracle.DataAccess.Type;
採用第二種引用,建立的OracleCommand例項有ArrayBindCount屬性,可用於傳入陣列型引數,執行多次儲存過程函式。
對於不同引用建立OracleParameter例項,型別也存在著差異:
第一種引用:System.Data.OracleClient.OracleParameter para=new System.Data.OracleClient.OracleParameter("APPLICATIONNAME_",OracleType.NVarChar,200);
第二種引用:Oracle.DataAccess.Client.OracleParameter para=new Oracle.DataAccess.Client.OracleParameter("APPLICATIONNAME_",OracleDbType.Varchar2,200);
下面結合.NET開發需要,對資料型別比較整合下:
備註:
(1).NET型別:OracleDataReader.GetValue返回的.NET Framework資料型別;
(2)OracleType型別:OracleDataReader.GetOracleValue返回的OracleClient資料型別。
(3)DbType:要繫結為引數的System.Data.DbType列舉
(4)OracleType:要繫結為引數的OracleType列舉
序號 |
Oracle資料型別 |
.NET型別 |
GetOracleValue型別 |
DbType |
OracleType |
1 |
BFILE |
byte[] |
OracleBFile |
|
BFile |
2 |
BLOB |
byte[] |
OracleLob |
|
Blob |
3 |
CHAR |
string |
OracleString |
AnsiStringFixedLength |
Char |
4 |
CLOB |
string |
OracleLob |
|
Clob |
5 |
DATE |
DateTime |
OracleDateTime |
DateTime |
DateTime |
6 |
FLOAT |
Decimal |
OracleNumber |
Single、Double、Decimal |
Float、Double、Number |
7 |
INTEGER |
Decimal |
OracleNumber |
SByte、Int16、Int32、Int64、Decimal |
SByte、Int16、Int32、Number |
8 |
INTERVAL YEAR TO MONTH |
Int32 |
OracleMonthSpan |
Int32 |
IntervalYearToMonth |
9 |
INTERVAL DAY TO SECOND |
TimeSpan |
OracleTimeSpan |
Object |
IntervalDayToSecond |
10 |
LONG |
string |
OracleString |
AnsiString |
LongVarChar |
11 |
LONG RAW |
byte[] |
OracleBinary |
Binary |
LongRaw |
12 |
NCHAR |
string |
OracleString |
StringFixedLength |
NChar |
13 |
NCLOB |
string |
OracleLob |
|
NClob |
14 |
NUMBER |
Decimal |
OracleNumber |
VarNumeric |
Number |
15 |
NVARCHAR2 |
string |
OracleString |
String |
NVarChar |
16 |
RAW |
byte[] |
OracleBinary |
Binary |
RAW |
17 |
ROWID |
string |
OracleString |
AnsiString |
Rowid |
18 |
TIMESTAMP |
DateTime |
OracleDateTime |
DateTime |
Timestamp |
19 |
VARCHAR2 |
string |
OracleString |
AnsiString |
VarChar |
(1) Oracle 只允許將 BFILE 繫結為 BFILE 引數。如果您嘗試繫結非 BFILE 值,例如 byte[] 或 ,Oracle .NET 資料提供程式不會自動為您構造一個引數。
(2) Oracle 只允許將 BLOB 繫結為 BLOB 引數。如果您嘗試繫結非 BLOB 值,例如 byte[] 或 OracleBinary,Oracle .NET 資料提供程式不會自動為您構造一個引數。
(4)Oracle 只允許將 CLOB 繫結為 CLOB 引數。如果您嘗試繫結非 CLOB 值,例如 System.String 或 OracleString,Oracle .NET 資料提供程式不會自動為您構造一個引數。
(6、7) 確定System.Data.DBType 和OracleType。
(8、9、18) 僅在同時使用 Oracle 9i 客戶端和伺服器軟體時才適用。
(13)Oracle 只允許將 NCLOB 繫結為 NCLOB 引數。如果您嘗試繫結非 NCLOB 值,例如 System.String 或 OracleString,Oracle .NET 資料提供程式不會自動為您構造一個引數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-775537/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [轉]ABAP資料型別與Java資料型別的對應關係資料型別Java
- SqlServer與.NET的資料型別對映關係圖(轉)SQLServer資料型別
- MYSQL資料庫型別與JAVA型別對應關係MySql資料庫型別Java
- Java資料型別與資料庫欄位型別對應關係Java資料型別資料庫
- MySQL與Java常用資料型別的對應關係MySqlJava資料型別
- C++與Rust資料型別對應關係C++Rust資料型別
- SQL Server 2005 資料型別和.Net資料型別的對應關係SQLServer資料型別
- C++資料型別與C#對應關係C++資料型別C#
- Android NDK開發中java資料型別與C/C++資料型別的對應關係AndroidJava資料型別C++
- SQL與NoSQL(關係型與非關係型)資料庫的區別SQL資料庫
- Oracle資料型別對應Java型別Oracle資料型別Java
- oracle中date資料型別與timestamp資料型別的轉換Oracle資料型別
- MapReduce 與 關係型資料庫的區別資料庫
- JNI/NDK開發指南(3):JNI資料型別及與Java資料型別的對映關係資料型別Java
- 關係型資料庫和非關係型資料庫的區別資料庫
- C#與C++型別對應關係總結C#C++型別
- R 語言中雙中括號 [[]]與資料型別列表的關係資料型別
- Oracle和sqlserver資料型別對應OracleSQLServer資料型別
- 關係型資料庫和非關係型資料庫的簡單對比資料庫
- 關係型資料庫與非關係型資料庫介紹!資料庫
- 資料庫入門之3張表對比關係型與非關係型資料庫資料庫
- 關於oracle中的sql資料型別OracleSQL資料型別
- 走近VB.Net(四) 關於資料型別與示例 (轉)資料型別
- oracle對BLOB型別資料的操作與效能問題(轉載)Oracle型別
- 欄位的資料型別隱式轉換有關係資料型別
- 關於資料庫中的型別和entity bean裡面的型別對應問題資料庫型別Bean
- redis12-----redis 與關係型資料庫的對比Redis資料庫
- 【轉載】Oracle字符集子集與超級的對應關係Oracle
- ORACLE的資料型別(轉)Oracle資料型別
- NHibernate VS .NET Type VS DbType 的型別對映關係型別
- 非關係型資料庫(NOSQL)和關係型資料庫(SQL)區別詳解資料庫SQL
- (轉)SCN號與oracle資料庫恢復的關係Oracle資料庫
- 【轉】ORACLE資料型別Oracle資料型別
- [轉]oracle資料型別Oracle資料型別
- 網路關係型資料庫的代表Oracle 9i(轉)資料庫Oracle
- C#與Windows API對應資料型別C#WindowsAPI資料型別
- ASP.NET Web API 資料提供系統相關型別及其關係ASP.NETWebAPI型別
- MySQL與oracle的資料型別轉換總結MySqlOracle資料型別