阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle基础教程-数据类型

175次阅读
没有评论

共计 2513 个字符,预计需要花费 7 分钟才能阅读完成。

Oracle 提供了 22 种不同的 sql 数据类型供我们使用:

1、char:

   这是个定长的字符串,会用空格填充来达到其最大长度。char 字段最多可以存储 2000 字节信息;

2、nchar:

   这个一个包含 Unicode 格式数据的定长字符串。与 char 类型有所不同,char 类型定义的长度可为字节或字符。nchar 字段最多可以存储 2000 字节的信息;

3、varchar2:

   目前这也是 varchar 的同义词。它是个变长字符串,与 char 类型不同,它不会用空格将字段或变量填充至最大长度。它最多可以存储 4000 字节信息。 自 Oracle12C 起,它可以最多存储 32767 字节信息;

4、nvarchar2:

   这个一个包含 Unicode 格式数据的变长字符串。它最多可以存储 4000 字节的信息。 自 Oracle12C 起,它可以存储最多 32767 字节的信息;

5、raw : 

   这个一种变长二进制数据类型,也就是说采用这种数据类型存储的数据不会发生字符集转换。它最多存储 2000 字节信息。 自 Oracle12C 起,它可以存储最多 32767 字节的信息;

6、number:

   这种数据类型能存储精度最多达 38 位的数字,这种类型的数据会以变长方式来存储,其长度在 0~22 字节(null 值长度为 0)。它的精度很高;

7、binary_float:

   这是 Oracle10 才开始有的一种新类型。它是一个 32 位单精度浮点数,可以支持至少 6 位精度,占用磁盘上 5 个字节的存储空间;

8、binary_double:

   这是一种 Oracle10 才开始有的新类型,它是一个 64 位双精度浮点数,可以支持至少 15 位精度,占用磁盘 9 字节的存储空间;

9、long:

   这种类型能存储最多 2GB 的字符数据(2GB 是指 2 千兆字节,而不是 2 千兆个字符,因为在一个多字节字符集中,有的字符可能占用多个字节),不建议使用该类型,在现有的应用中应将 long 类型转换为 CLOB 类型;

10、long raw:

   该类型能存储多大 2GB 的二进制信息,与 long 类型同样的原因建议在应用中使用 BLOB 类型;

11、date : 

   这是个 7 字节的定宽日期 / 时间数据类型,其中共包含 7 个属性:世纪、世纪中的哪一年、月份、天、小时、分钟和秒;

12、timestamp:

   这是个 7 字节或 11 字节的定宽日期时间数据类型(高精度会使用 11 字节)。它与 date 数据类型不同,因为 timestamp 可以包含小数秒,带小数秒的 timestamp 最多可以保留 9 位小数;

13、timestamp with time zone:

   这是一个 13 字节的定宽 timestamp,不过它还提供了时区(time zone)支持。因为时区信息是与 timestamp 存储在一起的,所以数据在插入时的时区信息会与时间一起保留下来;

14、timestamp with local time zone:

   与 timestamp 类型,这是一种以 7 字节或 11 字节的定宽日期时间数据类型(高精度会使用 11 字节);不过,这种类型对时区敏感;

15、interval year 10 month:

   这是个 5 字节的定宽数据类型,用于存储一个时段。这个类型将时段存储为年数和月数;我们可以在日期运算中使用这种时段,使一个 date 或 timestamp 类型的数据增加或减少一段时间;

16、interval day 10 second:

   这是个 11 字节的定宽数据类型,用于存储一个时段。这种类型将时段存储为天、小时、分钟、秒数,还可以有最多 9 位的小数秒;

17、BLOB:

   在 Oracle9i 以前最多能存储 4GB 数据,而从 Oracle10 以后最多能存储(4GB-1)X(数据库块大小) 字节的数据;blob 包含不需要进行字符集转换的二进制数据。

18、CLOB:

   在 Oracle9i 以前最多能存储 4GB 数据,而从 Oracle10 以后最多能存储(4GB-1)X(数据库块大小) 字节的数据;当发生字符集转换时,CLOB 会受到影响。这种数据类型很适合存储大块纯文本信息。

19、NCLOB:

   在 Oracle9i 以前最多能存储 4GB 数据,而从 Oracle10 以后最多能存储(4GB-1)X(数据库块大小) 字节的数据;NVLOB 会存储以数据库国家字符集编码的信息,而且像 CLOB 一样,当发生字符集转换时,这种类型也会受到影响;

20、BFILE:

   这种数据类型可以在数据库列中存储一个 Oracle 目录对象和一个文件名,我们可以通过它来读取这个文件;

21、rowid

    rowid 实际上是数据库表中行的地址,它有 10 字节长。rowid 中编码的信息,不但足以在磁盘上定位每一行,而且还能识别出 rowid 指向的那行数据所属的对象(表等);

22、urowid

    urowid 是一个通用 rowid,用于没有固定 rowid 的表。urowid 通常表现为主键的值。因此 urowid 的大小会根据所指向的对象而有所变化;

注意:从 Oracle12C 起,varchar2、nvarchar2 和 raw 类型可以存储最多 32767 字节的信息,但是需要启用扩展数据类型。在默认情况下这个特性没有启用的。

从 Oracle12C 起,varchar2 和 nvarchar2 类型的最大长度由原来的 4000 字节变成现在最多存储 32767 字节,12C 默认情况下没有启用扩展数据类型,需要手动启动,如下:

shutdown immediate;

startup upgrade;

alter system set max_string_size=extended;

@?/rdbms/admin/utl32k.sql

shutdown immediate

startup;

— 按照上面的命令就可以激活扩展数据类型;

注意:一旦激活扩展数据类型,是不可以回退的,除非做一个非完全恢复,将数据恢复到变更的时间点前的状态;

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-06/144739.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2513字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中