基础数据类型
字符类型
按照存贮空间分为固定长度类型(char)
和可变数据类型(varchar2/nvachar2)
两种
char
定长类型,会用空格填充来达到最大长度
非Null的char(12)总是包含12字节信息
char字段最多可存储2000
字节信息,如果创建表时,不指定char长度,默认为1
varchar2
变长字符串,与char类型不同,他不会使用空格填充至最大长度
最多可存储4000
字节的信息
nvarchar2
这是一个包含unicode格式数据的变长字符串
最多可存储4000
字节的信息
注
西文、数字:一个字节
汉字:三个字节
数字类型
number类型
既可以表示数字
类型,也可以表示浮点
类型
number(p,s) 是最常见的数字类型
p
: 是precison的缩写,表示有效数字的位数,最多不超过38个有效数字
s
: 是sacle的英文缩写,表示小数点数字的位数
只写number
:表示就是一个整数
number(20,2)
:表示整数位的位数为20,小数点后的位数精确到2位
integer类型
是number的子类型,等同于number(38,0),用来存储整数
若插入、更新的数值中有小数,则会被四舍五入
日期类型
DATE
最常用的数据类型,存储日期和时间信息,虽然可以用字符串或者数字类型来表示日期和时间信息,但是日期数据具有特殊关联的属性。
一般占有7个字节
的存储空间。
TimsStamp
这是一个7字节或者12字节
的定宽时间数据类型,它与DATA数据类型不同,因为可以包含小数秒,带小数秒的TimeStamp在小数点右边最多可以保留9位
。
TimeStamp with time zone
这是timeStamp类型的变种,它包含了时区偏移量的值。
TimeStamp witth local time zone
将时间数据以数据库时区进行规划后进行存储
Lob类型
CLOB类型(charachter large object)
二进制数据,存储单个字节和多个字节字符数据,最大长度4g
BLOB类型(Binary Larage Object)
存储非结构化的二进制数据最大对象,它可以被认为是没有字符集语意的比特流,
一般是图像、声音、视频等文件,最大长度是4g
NLLOG类型
存储unicode类型是数据,最大长度是4G
Long & Raw & Long Raw 类型
Long
它存储变长字符串(超长字符串),最多达2G的字符数据
(2GB 是指2千兆字节,而不是2千兆字符)
Long Raw
能存储2GB的二进制数据,可以存放多媒体、图像、声音
Raw类型
用于存储二进制或字符类型数据,必须指定长度;
这种数据类型存储的数据不会发生字符集转换;
可以存放多媒体、图像、声音等。
附:.NET 类型转化对应表
序号 | 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 |