在使用ORACLE中经常会碰到定义字段的数据类型,在这里我就简单介绍一下:
ORACLE支持的数据类型可以分成三类:字符数据类型,数字数据类型以及其他数据的数据类型(在实际操作数据库的时候基本上只会用到日期数据类型)
字符数据类型:CHAR与NCHAR,VARCHAR2与NVARCHAR2,LONG,CLOB与NCLOB。在创建数据库的时候,我们会指定所使用的字符集,以便对数据库中的数据进行编码,ORACLE是自带多种字符集的,这样就可以在各个平台中表现一样。在指定之后,我们还可以指定一个辅助的字符集(即本地语言集 National Language Set NLS),NCHAR,NVARCHAR2,NCLOB就是用的NLS。可以使用SELECT parameter,value FROM nls_database_parameters where parameter like '%NLS%' 这个语句查询库中的NLS. CHAR与VARCHAR2,分别表示固定长度和可变长度的字符数据。CHAR存储固定长度的字符串,可以从1到2000,如果没有说明长度,默认为1。VARCHAR2存储的是可变长度的字符串,最多可以设置4000个字符。ORACLE在存储CHAR类型的数据时,不满长度的时候,会用空格填充,而VARCHAR2,不超过最大长度的时候ORACLE会自动分配相应的长度进行存储,VARCHAR2比CHAR类型的数据节省空间。在ORACLE9i中,可以以字符而不是字节为单位来表示NVARCHAR2和NCHAR列的长度。
LONG数据类型可以存放2GB的字符数据,这是早期的版本,在表和SQL中使用LONG类型有许多限制。
CLOB数据类型可以存放4GB的字符数据。
数字数据类型:ORACLE使用标准,可变长度的内部格式存储数字。这种内部格式精度可达38位。NUMBER(precision,scale)
precision指定数字中的有效位,缺省的话,ORACLE会默认为38位精度,scale指小数点后多少位,可以是负数,若为负数,ORACLE会取舍到小数点左边的位数。
如NUMBER(9,2)就指数据精度为9位,保留小数点后两位
其他的数据类型:在这里主要介绍日期数据类型。ORACLE的标准日期格式为:DD-MON-YYYY HH:MI:SS ,可以通过修改实例的参数NLS_DATE_FORMAT,可以改变实例中插入日期的格式,或者通过SQL语句的TO_DATE的表达式参数来更新一个特定的值。