Part1  oracle数据类型分析

一、数据类型

1  char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)。

2  varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。如果数据长度没有达到最大值n,Oracle 8i/9i/10g会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。

3  number(m,n) m=1 to 38,n=-84 to 127 可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。如:number(5,2),则这个字段的最大值是99999,如果数值超出了位数 限制就会被截取多余的位数。如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。如:number(3,0),输入575.316,真正保存的数据是575。

4  date 无 从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle 8i/9i/10g其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。缺省格式为DD-MON-YY,如07-11月-00 表示  2000年11月7日。

5  Long:可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。

long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

6  raw(n) n=1 to 2000 可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8/9i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档, 以及音频、视频等非文本文件。

raw是一种较老的数据类型,将来会逐渐被BLOB、NCLOB等大的对象数据类型所取代。

7  long raw 可变长二进制数据,最大长度是2GB。Oracle 8i/9i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。

在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、NCLOB等大的对象数据类型所取代。

8  blob clob nclob

三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。LOB有几种类型,取决于你使用的字段的类型,Oracle 9i/10g实实在在地将这些数据存储在数据库内部保存。

可以执行读取、存储、写入等特殊操作。

9  bfile 无 在数据库外部保存的大型二进制对象文件,最大长度是4GB。这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。Oracle 8i/9i/10g可以读取、查询BFILE,但是不能写入。大小由操作系统决定。

二、ORACLE中的数据类型分类

1、字符数据类型:包括我CHAR,VARCHAR2,LONG。

CHAR型:可以存储字母数字值,这种数据类型的列长度可以是1到2000个字节。如果未指明,则默认其占用一个字节,如果用户输入的值小于指定的长度,数据库则用空格填充至固定长度。

VARCHAR2型:其实就是VARCHAR,只不过后面多了一个数字2,VARCHAR2就是VARCHAR的同义词,也称别名。数据类型大小在1至4000个字节,但是和CHAR不同的一点是:当你定义了VARCHAR2长度为30,但是你只输入了10个字符,这时VARCHAR2不会像CHAR一样填充,在数据库中只有10具字节。

LONG型:此数据类型用来存储可变长度的字符数据,最多能存储2GB。但是有一些限制:一个表中只有一列可以为LONG型,LONG列不能定义为主键或唯一约束,不能建立索引,过程或存储过程不能接受LONG数据类型的参数。

2、数值数据类型:只有NUMBER型,但是NUMBER功能不小,它可以存储正数,负数,零,定点数和精度为30位的浮点数。格式为(P=38,S=0),其中P为精度,表示数字的总位数,它在1-38之间,S为范围,表示小数点右边的数字的位数,它在-84至127之间。

3、日期时间数据类型:有DATE数据类型,TIMESTAMP数据类型。

DATE用于存储表中的日期和时间数据,ORACLE使用自己的格式存储日期,使用7个字节固定长度,每个字节分别存储世纪,年月日,小时,分和秒。日期数据类型的值从公元前4712年1月1日到公元9999年12月31日。ORACLE中的SYSDATE函数用于返回当前的日期和时间。TIMESTAMP数据类型与DATE不同的是:它还返回当前的时区。

4、 RAW和LONG RAW 数据类型此种数据类型主要用于存储二进制数据。RAW用于存储基于字节的数据,最多能存储2000个字节,它没有默认大小,所以在使用时要指定大小,可以建立索引。

RAW LONG用于存储可变长度的二进制数据,最多能存储2GB,它受的限制和LONG类型一样。

5、LOB数据类型

● LOB又称为“大对象”数据类型:主要有CLOB,BLOB(NBLOB),BFILE,三种子类型。

● CLOB代表(CHARACTER LOB),它能够存储大量字符数据,可以存储非结构化的XML文档。

● BLOB代表(BINARY LOB),它可以存储较大的二进制对象;如图形,音视频剪辑。

BFILE代表(BINARY FILE),它能够将二进制文件存储在数据库外部的操作系统文件中,注意是二进制文件,不是一般数据,BFILE列存储一个BFILE定位器,它指向位于服务器文件系统上的二进制文件,支持的文件最大为4GB。不过ORACLE10以上的会更大,这还需要硬件方面的支持。

Part2  Oracle 9i/10g共提供了16种标量数据类型

Oracle 9i共提供了16种标量数据类型,如表1所示。

名称

含义

Char

用于描述定长的字符型数据,长度<=2000字节

varchar2

用于描述变长的字符型数据,长度<=4000字节

nchar

用来存储Unicode字符集的定长字符型数据,长度<=1000字节

nvarchar2

用来存储Unicode字符集的变长字符型数据,长度<=1000字节

number

用来存储整型或者浮点型数值

Date

用来存储日期数据

Long

用来存储最大长度为2GB的变长字符数据

Raw

用来存储非结构化数据的变长字符数据,长度<=2000字节

Long raw

用来存储非结构化数据的变长字符数据,长度<=2GB

rowid

用来存储表中列的物理地址的二进制数据,占用固定的10个字节

Blob

用来存储多达4GB的非结构化的二进制数据

Clob

用来存储多达4GB的字符数据

nclob

用来存储多达4GB的Unicode字符数据

Bfile

用来把非结构化的二进制数据存储在数据库以外的操作系统文件中

urowid

用来存储表示任何类型列地址的二进制数据

float

用来存储浮点数

oracle中的数据类型相关推荐

  1. Oracle中的数据类型和数据类型之间的转换

    Oracle中的数据类型 /*ORACLE 中的数据类型:char 长度固定 范围:1-2000VARCHAR2 长度可变 范围:1-4000LONG 长度可变 最大的范围2gb 长字符类型numbe ...

  2. oracle中raw是什么格式,oracle中RAW数据类型

    近日在研究v$latch视图时,发现一个从未见过的数据类型.v$latch 中ADDR属性的数据类型为RAW(4|8)  同时也发现v$process中的ADDR属性的数据类型也为RAW(4|8).于 ...

  3. java将clob类型文件写到磁盘_Java对Oracle中Clob类型数据的读取和写入

    Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的 Java对Oracle中Clob数据类型是不能够直接插入的, ...

  4. Oracle中CHAR类型不足位数时,用空格自动补足位数

    在今天开发过程中,发现了一查询结果很怪异,一GOOGLE下才知道是ORACLE对CHAR类型处理的问题,在ORACLE中对CHAR的处理是自动添加空格,比如char(8)存储'2007-11',则在后 ...

  5. mysql导出oracle_如何将mysql中的表结构导出放入oracle中

    展开全部 将mysql中的表结构导出放入oracle中的方法: 1.导出mysql的表结构sql脚本,然后修改mysql中的数据类型为oracle中的数据类型: MySql与Oracle数据类型的62 ...

  6. 【ORACLE】各种数据类型

    文章目录 汇总表 Character 数据类型 Numberic 数据类型 DATE 数据类型 LOB 数据类型 其他数据类型 来源 ORACLE数据类型大约分为:character, number, ...

  7. clob在java里的类型_Java对Oracle中Clob类型数据的读取和写入(转)

    Java对Oracle中Clob数据类型是不能够直接插入的,但是可以通过流的形式对clob类型数据写入或者读取,网上代码并不算特别多,讲的也不是很清楚,我对网上资料进行了整理和总结,具体看代码: 写入 ...

  8. 【数据库】Oracle中的字符型及处理方法

    与其他编程语言一样,oracle中同样存在着数据类型. oracle中的数据类型主要有两个应用场景:一是用于指定数据表中列的类型:二是用于PL/SQL编程中声明变量. oracle的数据类型主要包括: ...

  9. oracle权限分几种类型,Oracle权限和数据类型

    oracle创建用户: CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK] [注]LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态.锁 ...

最新文章

  1. 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知...
  2. 每日一皮:2020年度最佳微小说...
  3. 每日一皮:好像有个Bug... 你看到了吗?
  4. DQN 笔记 State-action Value Function(Q-function)
  5. CountDownLatch 源码分析
  6. 程序员的私藏好书中,一定有这7本!
  7. Ajax基本案例详解之load的实现
  8. leetcode1090. 受标签影响的最大值(贪心算法)
  9. 解决AS3 Socket编程中最令人头疼的问题
  10. 2021上半年测试工作总结:再一次的跳出、新的转变
  11. 顺序右移数组元素(内测第0届第5题)
  12. Java使用Cipher类实现加密,包括DES,DES3,AES和RSA加密
  13. ISCW实验11:使用SDM配置Site-to-Site IPSec ×××
  14. 用js(javascript)完成点击一个按钮会使相应的div背景颜色发生改变
  15. 计算机网络中的广播啥意思,卫星IP数据广播是什么意思?
  16. Linux内存管理专题
  17. android gridview 详解,Android GridView九宫图
  18. Android KitCat 4.4.2 ADB 官方所支持的所有Services格式翻译
  19. 计算机电路中bga是什么,bga是什么
  20. 关于plt.cm.Spectral

热门文章

  1. 安卓手机如何防盗_来看看安卓手机对于AirPods的适配体验如何
  2. java questionbank_一个小小的单机英语测试程序(Java)
  3. 计时器(timer)
  4. 平衡车Car_Balance(一)——电机
  5. offsetWidth / offsetHeight等
  6. c#--实例选号器--实现打印、序列化方式保存
  7. MTK平台4G执法记录仪开发
  8. linux关闭root权限管理,如何在Ubuntu中启用和禁用root帐户?
  9. STM32F103完成对SD卡的数据读取
  10. 仿生技术能应用于人工智能吗?