Oracle 数据类型 与C#映射关系


大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353

序号

Oracle数据类型

.NET类型

GetOracleValue类型

DbType

OracleType

BFILE

byte[]

OracleBFile

BFile

BLOB

byte[]

OracleLob

Blob

CHAR

string

OracleString

AnsiStringFixedLength

Char

CLOB

string

OracleLob

Clob

DATE

DateTime

OracleDateTime

DateTime

DateTime

FLOAT

Decimal

OracleNumber

Single、Double、Decimal

Float、Double、Number

INTEGER

Decimal

OracleNumber

SByte、Int16、Int32、Int64、Decimal

SByte、Int16、Int32、Number

INTERVAL YEAR TO  MONTH

Int32

OracleMonthSpan

Int32

IntervalYearToMonth

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

Number是最多变化的类型:原文:http://www.cnblogs.com/xuzhiwei/p/3998446.html

cle DB2/400 C C# C/C#数据范围
NUMBER Float(n)/REAL/DOUBLE double double

1.7E +/- 308 (15 digits)

NUMBER(p)
p<=4
SAMLLINT
DECIMAL(p)
NUMBER(p)
short Int16

–32,768 to 32,767

NUMBER(5)

NUMBER(p)
5<=p<=9
INTEGER
DECIMAL(p)
NUMBER(p)
int Int32

–2,147,483,648 to 2,147,483,647

NUMBER(10)

NUMBER(p)
10<=p<=19
BIGINT
DECIMAL(p)
NUMBER(p)
__int64 Int64

–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

NUMBER(19)

NUMBER(p,s)
p=7 s=3
Float(n)
DECIMAL(p,s)
NUMBER(p,s)

float
float

3.4E +/- 38 (7 digits)

NUMBER(p,s)
p=15 s=5
REAL
DECIMAL(p,s)
NUMBER(p,s)
double double

1.7E +/- 308 (15 digits)

NUMBER(p,s)
p=15 s=5
DOUBLE
DECIMAL(p,s)
NUMBER(p,s)
double double

1.7E +/- 308 (15 digits)

Oracle 是没有boolean 类型的,因此要用Number(1) ,存储1,0 再在程序中转换为boolean。