设为首页 收藏本站
查看: 1048|回复: 0

[经验分享] Oracle基础-数据类型总结

[复制链接]

尚未签到

发表于 2018-9-6 11:37:02 | 显示全部楼层 |阅读模式
  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;
  ---按照上面的命令就可以激活扩展数据类型;
  注意:一旦激活扩展数据类型,是不可以回退的,除非做一个非完全恢复,将数据恢复到变更的时间点前的状态;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-564016-1-1.html 上篇帖子: PL/SQL Developer如何连接64位的Oracle图解 下篇帖子: Oracle12C R2+RAC安装测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表