Oracle 内置数据类型 -- 字符
2014-12-07 19:48
141 查看
-- Start
--更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-07-04
-- Created by ShangBo on 2014-12-07
-- End
CHAR
CREATE TABLE TEST ( -- 语法:CHAR [(size [BYTE | CHAR])] -- 默认长度(size)是 1,最大长度是 2000 -- 默认修饰符是 BYTE, 但可以通过修改参数 NLS_LENGTH_SEMANTICS 来设置默认值为 CHAR -- SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER='NLS_LENGTH_SEMANTICS' COL1 CHAR, -- 同 COL1 相同 COL2 CHAR(1 BYTE), -- 根据数据库字符集的不同,CHAR 由 1 到 4 BYTE 组成, -- 所以如果你的数据库是此类字符集,那么推荐你使用 CHAR -- 由于性能的原因,Oracle 推荐我们不要指定长度修饰符,而是通过 NLS_LENGTH_SEMANTICS 来设置 -- ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR COL3 CHAR(10 CHAR) ); -- 语法 1:'' -- 如果要输入单引号,用两个单引号代表一个单引号 INSERT INTO TEST VALUES ('a', '1', 'I''m bo'); -- 语法 2:q'delimiter XXX delimiter' INSERT INTO TEST VALUES ('b', '2', q'/I'm bo/'); INSERT INTO TEST VALUES ('c', '3', Q'[I'm bo]'); INSERT INTO TEST VALUES ('d', '4', q'8I'm bo8'); INSERT INTO TEST VALUES ('e', '5', Q'KI'm boK'); INSERT INTO TEST VALUES ('f', '6', q'<I'm bo>');
VARCHAR2
CREATE TABLE TEST ( -- 语法:VARCHAR2(size [BYTE | CHAR]) -- 如果 MAX_STRING_SIZE=STANDARD, 最大长度是 4000 bytes -- 如果 MAX_STRING_SIZE=EXTENDED, 最大长度是 32767 bytes -- 默认修饰符是 BYTE, 但可以通过修改参数 NLS_LENGTH_SEMANTICS 来设置默认值为 CHAR -- SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER='NLS_LENGTH_SEMANTICS' COL1 VARCHAR2(10), -- 同 COL1 相同 COL2 VARCHAR2(10 BYTE), -- 由于性能的原因,Oracle 推荐我们不要指定长度修饰符,而是通过 NLS_LENGTH_SEMANTICS 来设置 -- ALTER SESSION SET NLS_LENGTH_SEMANTICS=CHAR COL3 VARCHAR2(10 CHAR) ); -- 语法 1:'' -- 语法 2:q'delimiter XXX delimiter' INSERT INTO TEST VALUES ('I''m bo', Q'[I'm bo]', q'/I'm bo/'); INSERT INTO TEST VALUES (q'8I'm bo8', Q'KI'm boK', q'<I'm bo>');
NCHAR
CREATE TABLE TEST ( -- 语法:NCHAR[(size)] -- 默认长度(size)是 1 个字符(char),最大长度是 2000 个字节(byte),注意是字节, -- 如果数据库编码 1 个字符由 2 个字节组成,那么最大长度是 1000 个字符 COL1 NCHAR, -- NCHAR 列只能插入 UNICODE 编码的字符串,由于编码不同,CHAR 和 NCHAR 是不兼容的 COL2 NCHAR(10) ); -- 语法 1:N'xxx' INSERT INTO TEST VALUES (n'a', N'尚波'); -- 语法2:NQ'delimiter XXX delimiter' INSERT INTO TEST VALUES (n'a', nq'[尚波]'); INSERT INTO TEST VALUES (n'b', nq'8尚波8'); INSERT INTO TEST VALUES (n'c', nq'H尚波H'); INSERT INTO TEST VALUES (n'd', nq'/尚波/');
NVARCHAR2
CREATE TABLE TEST ( -- 语法:NVARCHAR2(size) -- NVARCHAR2 列只能插入 UNICODE 编码的字符串 -- 如果 MAX_STRING_SIZE=STANDARD, 最大长度是 4000 bytes -- 如果 MAX_STRING_SIZE=EXTENDED, 最大长度是 32767 bytes COL1 NVARCHAR2(10) ); -- 语法 1:N'xxx' INSERT INTO TEST VALUES (N'尚波'); -- 语法2:NQ'delimiter XXX delimiter' INSERT INTO TEST VALUES (nq'[尚波]'); INSERT INTO TEST VALUES (Nq'8尚波8'); INSERT INTO TEST VALUES (nQ'H尚波H'); INSERT INTO TEST VALUES (NQ'/尚波/');
--更多参见:Oracle SQL 精萃
-- 声明:转载请注明出处
-- Last edited on 2015-07-04
-- Created by ShangBo on 2014-12-07
-- End
相关文章推荐
- Oracle Built-in Data Types(Oracle内置数据类型)
- Oracle数据类型及存储方式——字符类型篇
- 《卸甲笔记》-PostgreSQL和Oracle的数据类型的对比系列一:字符类型
- 1. Oracle内置数据类型--字符串, 2. char的大小和字符集有关
- Oracle基本数据类型存储格式浅析(一)——字符类型
- Oracle数据类型及存储方式——字符类型篇
- Oracle 内置数据类型 -- ROWID
- Oracle五种字符数据类型简介
- Oracle clob类型如何插入4000字符数据
- Oracle基本数据类型存储格式浅析(一)——字符类型
- Oracle内置数据类型(Built-in Data Types)
- Oracle内置数据类型
- Oracle 内置数据类型 -- 日期时间
- Oracle,MySQL,SQL Server数据库内置的数据类型
- Oracle 内置数据类型 -- LONG 和 RAW
- Oracle字符类型数据的全半角转换
- Oracle基本数据类型存储格式浅析(一)——字符类型
- Oracle基本数据类型存储格式浅析(一)——字符类型
- Oracle字符数据类型及存储方式
- Oracle内置数据类型和存储数据的方法