oracle数据类型查询,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( )

定长字符型(在Oracle5   、Oracle6   是变长),字符长度不够自动在右边加空格符号。当字符长度超出2000个则错误。不指定大小缺省为   1。

VARCHAR( )

可变字符型,当前与VARCHAR2( )相同。

VARCHAR2( )

可变字符型,当前与VARCHAR( )相同。VARCHAR2   类型的字段(列)可存放4000个字符;但是VARCHAR2   变量可以存放32,767   个字符。大小必须指定。

NCHAR( )和NVARCHAR2( )

NCHAR   和NVARCHAR2   分别与   CHAR和VARCHAR2   有相同的大小。并用于于存放   National   Language   Support   (NLS)数据,Oracle   允许以本地语言存放数据和查询数据。

如果将列名声明成NCHAR、NVARCHAR2这样的类型,则insert和   select   等语句中的具体值前加N,不能直接按照普通字符类型进行操作。

NUMBER(

, )

是数据的整数部分, 是数据的精度(即小数)部分,注意, 部分可以表示负的精度。用 可以表示从小数点往右或往左保留多少位。如下表:

实际值 数据类型 存储值

1234567.89 Number 1234567.89

1234567.89 Number(8) 1234568

1234567.89 Number(6) 出错

1234567.89 Number(9,1) 1234567.9

1234567.89 Number(9,3) 出错

1234567.89 Number(7,2) 出错

1234567.89 Number(5,-2) 1234600

1234511.89 Number(5,-2) 1234500

1234567.89 Number(5,-4) 1230000

1234567.89 Number(*,1) 1234567.9

Sal     number(7,2),     --表示5位整数,2位小数.

DATE

Oracle   的日期型用7个字节表示,每个日期型包含如下内容:

l Century   (世纪)

l Year   (年)

l Month(月)

l Day   (天)

l Hour   (小时)

l Minute   (分)

l Second   (秒)

日期型字段有下面特点:

l 日期型字段的插入和更新可以数据型或字符并带to_date   函数说明即可。

l 缺省的日期格式有NLS_DATE_FORMAT参数控制,它的缺省格式为DD-MON-YY。

l 缺省的时间是夜里   00:00:00   (即0点   0分0秒)。

l sysdate返回的是服务器的时间,见下面例子。

l 日期格式的显示可以设置,见下面例子。

l 日期型可以运算,见下面例子。见下面例子。

l 世纪用cc   表示;年用yyyy表示,月用mm表示,日用dd表示,小时用hh24表示,分用mi表示,秒用ss表示。

BLOB

大二进制对象,每条记录可存储达4GB的数据,详细见后面章节。

CLOB

大字符对象,每条记录可存储达4GB的数据,详细见后面章节。

BFILE

外部二进制文件,每条记录可存储达4GB的数据(与OS有关),详细见后面章节。

RAW

非结构的二进制数据,这些数据不被数据库系统解释。RAW可以存储达2,000字节。

LONGRAW

大的二进制类型数据,LONGRAW是非结构的二进制数据,这些数据不被数据库系统解释。LONGRAW可以存储达2GB字节。LONGRAW不能被索引,而RAW可以被索引。

ROWID

ROWID在Oracle数据库中是一个虚的列,即系统用的特殊的列,不是我们建立的列。用于对数据库中的每条记录进行定位。详细见“Rowid的使用”章节。

UROWID

UROWID   是Universal   ROWID   的意思。即全球ROWID,它支持逻辑和物理ROWID,也作为外部表的(通过getway   访问的非Oracle   表)的ROWID。UROWID类型可以存储所有的ROWID类型的数据。

%TYPE类型的匹配:

books_printed                   number(6);

books_sold                           books_printed%TYPE;

books_sold的数据类型与book_printed的类型一致;

(   %TYPE类型   在   PL/SQL中介绍   )。

空值与字符型、数字型的运算:

null   +   =null                         (空值+数字仍是空值)

null   >   =null                         (空值与数字比较结果为空值)

null   ||   '字符串 '   =   字符串

number类型与以下类型具有同等的值域:

DEC

Decimal

Double       PREcision

Float

Integer

Int

Numeric

Real

Smallint

提示:虽然Oracle可以使用上面的子数据类型,但建议还是采用NUMBER(n,m)为好。因为如果使用子数据类型定义字段类型不当,可能引起数据在运算方面的问题。

Long数据类型的限制:

l select中可以用long;

l update中可以用select子句;

l insert中可以用Valus子句;

l 每个表只能允许一个long列;

l long列不能列出完整性约束(null、not       null除外);

l long列不能被索引;

l 过程或存储函数不能接收long型函数;

l 存储函数不能返回long型值。

long     目前不能出现在以下情况中:

l select中的Where,Group     by,order     by,Connect     by,distinct;

l 不能对long列作substr,instr;

l 表达式或条件;

l 子查询或集合中不能用long;

l Create       table       ...as       select       中不能用long;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值