oracle数据类型

本文介绍了Oracle数据库从ORACLE5到ORACLE8i各版本中数据类型的变化情况,包括CHAR、VARCHAR2、NUMBER等数据类型的使用特点及注意事项。

ORACLE数据类型

Oracle数据库的数据类型与其它的数据库系统相比,它的数据类型不多,Oracle在表示数据方面比其他数据库系统来说要省去许多关键字。Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。其它如日期类型等也简单得多,只DATE就表示日期和时间。下面以列表形式给出各个版本的Oracle系统数据类型的表示方法。下面给出Oracle旧版本的数据类型的目的是让读者了解Oracle的变化,另外就是你在对旧版本进行升级或数据转换时要注意各个版本的差别。
 
ORACLE5、ORACLE6数据类型
 
数据类型
说明
Char
可变长字符型,≤254
Varchar2
可变长字符型,≤2000
Number(m,n)
数字类型,含整数、小数等
Date
日期型,含时间,缺省格式为mmm-dd-yyyy hh:mi:ss(占7字节)
Long
存储大型可变长字符串,≤2GB
Raw
存储短二进制串,≤2GB
Long  raw
存储长二进制串,≤2GB
                               ORACLE7数据类型
数据类型
说明
Char
定长字符,≤255个字符
Varchar
变长字符,≤2000个字符
Varchar2
变长字符,≤2000个字符
Number(m,n)
数字类型,含整数、浮点、双精度等
Long
存储大型可变长字符串,≤2GB
Raw
存储可变短二进制数,≤2000
Long  raw
存储大型可变长二进制数,≤2GB
 
                      ORACLE8/8i  数据类型
 
数据类型
说明
Char
定长字符,≤2000个字符
Varchar
(同Varchar2)可变字符,≤4000个字符
Varchar2
变长字符,≤4000个字符
Date
固定长度(7字节)的日期型
Number
数字型,可存放实型和整型
Long
可变字符,≤2GB个字符
Raw
可变二进制数据,≤4000字节
Long  raw
可变二进制数据,≤2GB
MLSLABEL
仅Trusted Oracle 用长度在2~5字节间
Blob
大二进制对象,≤4GB
Clob
大字符串对象,≤4GB
Nclob
多字节字符集的Clob,≤4GB
Bfile
外部二进制文件,大小由OS决定
 
 
CHAR(<size>)
定长字符型(在Oracle5 、Oracle6 是变长),字符长度不够自动在右边加空格符号。当字符长度超出2000个则错误。不指定大小缺省为 1。
 
VARCHAR(<size>)
可变字符型,当前与VARCHAR2(<size>)相同。
 
VARCHAR2(<SIZE>)
可变字符型,当前与VARCHAR(<size>)相同。VARCHAR2 类型的字段(列)可存放4000个字符;但是VARCHAR2 变量可以存放32,767 个字符。大小必须指定。
 
NCHAR(<size>)和NVARCHAR2(<size>)
NCHAR 和NVARCHAR2 分别与 CHAR和VARCHAR2 有相同的大小。并用于于存放 National Language Support (NLS)数据,Oracle 允许以本地语言存放数据和查询数据。
如果将列名声明成NCHAR、NVARCHAR2这样的类型,则insert和 select 等语句中的具体值前加N,不能直接按照普通字符类型进行操作。看下面例子:
 
SQL> create table nchar_tst(name nchar(6),addr nvarchar2(16),sal number(9,2));
 
表已创建。
 
SQL> insert into nchar_tst values(N'赵元杰',N'北京市海淀区',9999.99);
 
已创建 1 行。
 
SQL> select * from nchar_tst where name like N'赵%';
 
NAME   ADDR                    SAL
------ ---------------- ----------
赵元杰 北京市海淀区       9999.99
 
SQL> select * from nchar_tst where name like '赵%';
select * from nchar_tst where name like '赵%'
                                        *
ERROR 位于第 1 行:
ORA-12704: 字符集不匹配.
 
提示:虽然Oracle可以使用nchar, nvarchar2 类型来存放字符数据,但建议设计者不要使用NCHAR和NVARCHAR2。因为CHAR和VARCHAR2就能存放汉字。









本文转自 jxwpx 51CTO博客,原文链接:http://blog.51cto.com/jxwpx/204036,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值