类型名称
Oracle
SQLServer
比较
字符数据类型 CHAR CHAR
:都是固定长度字符资料但oracle里面最大度为2kb,SQLServer里面最大长度为8kb
变长字符数据类型 VARCHAR2 VARCHAR :racle里面最大长度为4kb,SQLServer里面最大长度为8kb
根据字符集而定的固定长度字符串 NCHAR
:NCHAR 前者最大长度2kb后者最大长度4kb
根据字符集而定的可变长度字符串 NVARCHAR2 NVARCHAR :者最大长度都为4kb
日期和时间数据类型 DATE 有Datetime和Smalldatetime两种 在oracle里面格式为DMY在SQLSerser里面可以调节,默认的为MDY
数字类型 NUMBER(P,S) NUMERIC[P(,S)]
:Oracle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。
数字类型 DECIMAL(P,S) DECIMAL[P(,S)] :racle里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。
整数类型 INTEGER INT 同为整数类型,存储大小都为4个字节
浮点数类型 FLOAT FLOAT
实数类型 REAL REAL
ORACLE的数据类型
常用的数据库字段类型如下:
字段类型
中文说明 限制条件 其它说明
CHAR 固定长度字符串 最大长度2000 bytes
VARCHAR2 可变长度的字符串 最大长度4000 bytes
可做索引的最大长度749
NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes
NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS)
LONG 可变长度的字符数据 最大长度2G(231-1)足够存储大部头著作
RAW 固定长度二进制数据 最大长度2000 bytes
可存放比较小的多媒体图象声音等
LONG RAW 可变长度的二进制数据 最大长度2G 可存放比较大的多媒体图象声音等
BLOB 大型的二进制对象(可变长度)最大长度4G
CLOB 大型的CHAR类型数据
NCLOB 大型的NCHAR类型数据
BFILE 存放在数据库外的大型的二进制文件
ROWID 数据表中记录的唯一行号10 bytes
********.****.****格式,*为0或1,存储在索引中。
UROWID 同上 存储在索引中
NROWID 二进制数据表中记录的唯一行号
最大长度4000 bytes
NUMBER(P,S) 数字类型 P为总的位数,S为小数位
DECIMAL(P,S) 数字类型P为总的位数,S为小数位
INTEGER 整数类型 的整数
FLOAT 浮点数类型
NUMBER(38),双精度
REAL 实数类型
NUMBER(63),精度更高
注意:每个表中只能有一个LONG或LONG RAW列,……….。
Oracle
Microsoft SQL Server
CHAR
建议使用 char。因为 char 类型的列使用固定的存储长度,所以,访问时比 varchar 列要快一些。
VARCHAR2
和 LONG
varchar 或 text。(如果 Oracle 列中数据值的长度为 8000 字节或更少,则使用
varchar;否则,必须使用 text。)
RAW 和
LONG RAW
varbinary 或 image。(如果 Oracle 列中数据值的长度为 8000 字节或更少,则使用
varbinary;否则,必须使用 image。)
NUMBER
如果整数在 1 和 255 之间,使用 tinyint。
如果整数在 -32768 和 32767 之间,使用 smallint。
如果整数在 -2,147,483,648 和 2,147,483,647 之间,则使用 int。
如果需要浮点类型数,使用 numeric(有精度和小数位)。
注意:不要使用 float 或 real,因为可能会产生舍入(Oracle NUMBER 和 SQL Server
numeric 均不舍入)。
如果不确定,则使用 numeric;它最接近 Oracle NUMBER 数据类型。
ROWID
使用 identity 列类型。
CURRVAL, NEXTVAL
使用 identity 列类型以及 @@IDENTITY、IDENT_SEED() 和 IDENT_INCR() 函数。