Oracle内建的数据类型

1.Character Data Types字符数据类型

1.1VARCHAR2(size [BYTE | CHAR])

可变长度字符串,具有最大长度size字节或字符。 您必须为VARCHAR2指定size。 最小size是1个字节或1个字符。 最大尺寸为:

  • 32767 bytes or characters if MAX_STRING_SIZE=EXTENDED
  • 4000 bytes or characters if MAX_STRING_SIZE=STANDARD
    VARCHAR2数据类型指定数据库字符集中的可变长度字符串。您在创建数据库时指定数据库字符集。

使用VARCHAR2列创建表时,必须将列长度指定为大小,可选地后跟长度限定符。限定符BYTE表示字节长度语义,而限定符CHAR表示字符长度语义。在字节长度语义中,size是可以在列中存储的最大字节数。在字符长度语义中,size是数据库字符集中可以存储在列中的最大代码点数。代码点可以具有1到4个字节,具体取决于数据库字符集和代码点编码的特定字符。 Oracle建议您指定一个长度限定符以显式记录列的所需长度语义。如果未指定限定符,则创建列的会话的NLS_LENGTH_SEMANTICS参数的值将定义长度语义,除非该表属于模式SYS,在这种情况下,默认语义为BYTE。

Oracle完全按照您的指定将字符值存储在VARCHAR2列中,不带任何空白填充,前提是该值不超过列的长度。如果您尝试插入超过指定长度的值,则Oracle会返回错误。
BYTE表示该列将具有字节长度语义。 CHAR表示该列将具有字符语义。

image.png

1.2.NVARCHAR2(size)

具有最大长度大小字符的可变长度Unicode字符串。 您必须为NVARCHAR2指定大小。 对于AL16UTF16编码,字节数最多可以是两倍,对于UTF8编码,字节数最多可以是三倍。 最大大小由国家字符集定义决定,上限为:

  • 32767 bytes if MAX_STRING_SIZE = EXTENDED
  • 4000 bytes if MAX_STRING_SIZE = STANDARD

1.3.CHAR [(size [BYTE | CHAR])]

长度大小为字节或字符的定长字符数据。 最大大小为2000字节或字符。 默认和最小大小为1个字节。
CHAR数据类型指定数据库字符集中的固定长度字符串。 您在创建数据库时指定数据库字符集。
使用CHAR列创建表时,可以将列长度指定为大小,可选地后跟长度限定符。限定符BYTE表示字节长度语义,而限定符CHAR表示字符长度语义。在字节长度语义中,size是要存储在列中的字节数。在字符长度语义中,size是要存储在列中的数据库字符集中的代码点数。代码点可以具有1到4个字节,具体取决于数据库字符集和代码点编码的特定字符。 Oracle建议您指定一个长度限定符以显式记录列的所需长度语义。如果未指定限定符,则创建列的会话的NLS_LENGTH_SEMANTICS参数的值将定义长度语义,除非该表属于模式SYS,在这种情况下,默认语义为BYTE。
Oracle确保存储在CHAR列中的所有值都具有以所选长度语义中的size指定的长度。如果插入的值小于列长度,则Oracle会将值空白填充到列长度。如果您尝试为列插入一个太长的值,则Oracle会返回错误。请注意,如果列长度以字符(代码点)表示,则空白填充不保证所有列值具有相同的字节长度。
size的最大值是2000,这意味着2000个字节或字符(代码点),具体取决于所选的长度语义。但是,独立地,可以存储到CHAR列的任何字符值的绝对最大长度是2000个字节。例如,即使您将列长度定义为2000个字符,如果您尝试插入一个2000个字符的值(其中一个或多个代码点大于1个字节),Oracle也会返回错误。字符大小的值是长度约束,而不是保证容量。如果希望CHAR列始终能够在任何数据库字符集中存储大小字符,请使用大小小于或等于500的值。
BYTE和CHAR具有与VARCHAR2相同的语义。

1.4.NCHAR[(size)]

长度大小字符的定长字符数据。 对于AL16UTF16编码,字节数最多可以是两倍,对于UTF8编码,字节数最多可以是三倍。 最大大小由国家字符集定义决定,上限为2000字节。 默认和最小大小为1个字符。

2Numeric Data Type数字数据类型

2.1.NUMBER [ (p [, s]) ]

具有精度p和标度s的数字。 精度p的范围为1到38.标度s的范围为-84到127.精度和标度都是十进制数字。 NUMBER数据类型存储零以及正和负固定数字,绝对值为1.0 x 10-130但不包括1.0 x 10126.如果指定一个算术表达式,其值的绝对值大于或等于1.0 x 10126,然后Oracle返回错误。 每个NUMBER值需要1到22个字节。

image.png

使用以下格式指定定点数:
NUMBER(p,s)
例如:NUMBER(3,2),当要存入的数据为123.98时,是无法存入的,但是字段类型若为
NUMBER(5,2),则是可以存进去的,所以可以看出p包含所有的数位,s包含小数位精度。

2.2.FLOAT [(p)]

具有精度p的NUMBER数据类型的子类型。 FLOAT值在内部表示为NUMBER。 精度p的范围可以是1到126个二进制数字。 FLOAT值需要1到22个字节。转换ANSI FLOAT数据时,Oracle数据库在内部使用Oracle FLOAT数据类型。 Oracle FLOAT可供您使用,但Oracle建议您使用BINARY_FLOAT和BINARY_DOUBLE数据类型


image.png

2.3. LONG

可变长度的字符数据最多2千兆字节,或2^31 -1字节。 提供向后兼容性。不要创建包含LONG列的表。 请改用LOB列(CLOB,NCLOB,BLOB)。 仅支持LONG列以实现向后兼容性。(极少使用)

3.Datetime and Interval Data Types时间类型

3.1. DATE

有效日期范围从公元前4712年1月1日到公元9999年12月31日。 默认格式由NLS_DATE_FORMAT参数显式确定,或由NLS_TERRITORY参数隐式确定。 大小固定为7个字节。 此数据类型包含日期时间字段YEAR,MONTH,DAY,HOUR,MINUTE和SECOND。 它没有小数秒或时区。


image.png

3.2.TIMESTAMP [(fractional_seconds_precision)]

日期的年,月和日值,以及小时,分钟和秒的时间值,其中fractional_seconds_precision是SECOND日期时间字段的小数部分中的位数。 fractional_seconds_precision的可接受值为0到9.默认值为6.默认格式由NLS_TIMESTAMP_FORMAT参数显式确定,或由NLS_TERRITORY参数隐式确定。 大小为7或11个字节,具体取决于精度。 此数据类型包含日期时间字段YEAR,MONTH,DAY,HOUR,MINUTE和SECOND。 它包含小数秒,但没有时区。

3.3.TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE

TIMESTAMP的所有值以及时区位移值,其中fractional_seconds_precision是SECOND日期时间字段的小数部分中的位数。 接受的值为0到9.默认值为6.默认格式由NLS_TIMESTAMP_FORMAT参数显式确定,或由NLS_TERRITORY参数隐式确定。 大小固定为13个字节。 此数据类型包含日期时间字段YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,TIMEZONE_HOUR和TIMEZONE_MINUTE。 它具有小数秒和显式时区。

3.4.TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE

TIMESTAMP WITH TIME ZONE的所有值,但以下情况除外:

  • 当数据存储在数据库中时,数据被标准化为数据库时区。
  • 检索数据时,用户会在会话时区中看到数据。

4.CLOB Data Type

包含单字节或多字节字符的字符大对象。 使用数据库字符集支持固定宽度和可变宽度字符集。 最大大小为(4千兆字节-1)*(数据库块大小)。


image.png

5.BLOB

二进制大对象。 最大大小为(4千兆字节-1)*(数据库块大小)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335