Oracle开发:常用的数据库字段类型[转]

Oracle常用的数据库字段类型如下:

字段类型

中文说明

限制条件

其它说明

CHAR

固定长度字符串

最大长度2000 bytes

 

VARCHAR2

可变长度的字符串

最大长度4000 bytes

可做索引的最大长度749

Byte/char,默认情况用的是Byte

NCHAR

根据字符集而定的固定长度字符串

最大长度2000 bytes

 

NVARCHAR2

根据字符集而定的可变长度字符串

最大长度4000 bytes

 

DATE

日期(日--年)

DD-MM-YYHH-MI-SS

经过严格测试,无千虫问题

LONG

超长字符串

最大长度2G231-1

足够存储大部头著作

RAW

固定长度的二进制数据

最大长度2000 bytes

可存放多媒体图象声音等

LONG RAW

可变长度的二进制数据

最大长度2G

同上

BLOB

二进制数据

最大长度4G

 

CLOB

字符数据

最大长度4G

 

NCLOB

根据字符集而定的字符数据

最大长度4G

 

BFILE

存放在数据库外的二进制数据

最大长度4G

 

ROWID

数据表中记录的唯一行号

10 bytes ********.****.****格式,*01

 

NROWID

二进制数据表中记录的唯一行号

最大长度4000 bytes

 

NUMBER(P,S)

数字类型

P为整数位,S为小数位

 

DECIMAL(P,S)

数字类型

P为整数位,S为小数位

 

INTEGER

整数类型

小的整数

 

FLOAT

浮点数类型

NUMBER(38),双精度

 

REAL

实数类型

NUMBER(63),精度更高

 

 

From <http://blog.sina.com.cn/s/blog_4ea1df2801007s99.html>

 

  • VARCHAR2 - Byte vs char

一个英文字母,一个数字,一个符号各占一个字节。一个汉字占两个字节。

CREATE TABLE TEST(

NAME VARCHAR2(2)

)

INSERT INTO TEST VALUES('测试');

Windows环境下:

报错信息:实际值4, 最大值2

可见在Windows默认情况下,VARCHAR2(2) 就等于是 VARCHAR2(2 BYTE)  一个汉字占2个字节

 

Linux环境下:

报错信息:实际值6,最大值2

可见在Linux默认情况下,VARCHAR2(2) 就等于是 VARCHAR2(2 BYTE)  一个汉字占3个字节

如果建表文改为:

CREATE TABLE TEST(

NAME VARCHAR2(2 CHAR)

)

INSERT INTO TEST VALUES('测试'); WindowsLinux下都可以执行成功。

 

From <http://www.linuxidc.com/Linux/2011-04/35276.htm>

 

 

原文地址:https://www.cnblogs.com/recognition/p/5388081.html