Oracle 开发:常用的数据库字段类型

Oracle 常用的数据库字段类型如下:

字段类型 中文说明 限制条件 其它说明
CHAR 固定长度字符串 最大长度2000 bytes
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749Byte/char,默认情况用的是Byte
NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes
NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题
LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作
RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等
LONG RAW 可变长度的二进制数据 最大长度2G 同上
BLOB 二进制数据 最大长度4G
CLOB 字符数据 最大长度4G
NCLOB 根据字符集而定的字符数据 最大长度4G
BFILE 存放在数据库外的二进制数据 最大长度4G
ROWID 数据表中记录的唯一行号 10 bytes ********.****.****格式,*为0或1
NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes
NUMBER(P,S) 数字类型 P为整数位,S为小数位
DECIMAL(P,S) 数字类型 P为整数位,S为小数位
INTEGER 整数类型 小的整数
FLOAT 浮点数类型 NUMBER(38),双精度
REAL 实数类型 NUMBER(63),精度更高
  • VARCHAR2 - Byte vs char

一个英文字母,一个数字,一个符号各占一个字节。一个汉字占两个字节。

CREATE TABLE TEST(
    NAME VARCHAR2(2)
)
INSERT INTO TEST VALUES('测试');
  • 在Windows环境下:

报错信息:实际值4, 最大值2

可见在Windows默认情况下,VARCHAR2(2) 就等于是 VARCHAR2(2 BYTE) 一个汉字占2个字节

  • 在Linux环境下:

报错信息:实际值6,最大值2

可见在Linux默认情况下,VARCHAR2(2) 就等于是 VARCHAR2(2 BYTE) 一个汉字占3个字节

如果建表文改为:

CREATE TABLE TEST(
    NAME VARCHAR2(2 CHAR)
)
INSERT INTO TEST VALUES('测试'); 

在Windows和Linux下都可以执行成功。

原文链接:
https://www.cnblogs.com/recognition/p/5388081.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容