Oracle 字符串格式
首先介绍:char(N) 和Varchar2(N)格式
create table TEST_CHAR
(
CHAR_COL CHAR(10),
VARCHAR_COL VARCHAR2(10),
);
SQL> insert into test_char(char_col, varchar_col ) values ('123','123');
SQL> commit;
SQL> select char_col,dump(char_col,16) as d_char_col , varchar_col,dump(varchar_col,16) as d_varchar_col from test_char;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
---------- -------------------------------------------------------------------------------- ----------- --------------------------------------------------------------------------------
123 Typ=96 Len=10: 31,32,33,20,20,20,20,20,20,20 123 Typ=1 Len=3: 31,32,33
可以看到:char 类型,若是长度不够,则自动在后面填补空格;varchar类型,则只是存储‘123’。
SQL> select to_number('31','xx') from dual;
TO_NUMBER('31','XX')
--------------------
49
----首先将16进制的数据转化为10进制。
SQL> select chr(49) from dual;
CHR(49)
-------
1
取得了 49 对应的 字符。
总结如下:oracle 存储字符,是将字符转化为对应的ASCII码进行相应的存储。
SQL> insert into test_char(char_col , varchar_col) values( '神奇的国家','神奇的国家');
SQL> commit;
Commit complete
SQL> select char_col,dump(char_col,16) as d_char_col , varchar_col,dump(varchar_col,16) as d_varchar_col from test_char;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
---------- -------------------------------------------------------------------------------- ----------- --------------------------------------------------------------------------------
123 Typ=96 Len=10: 31,32,33,20,20,20,20,20,20,20 123 Typ=1 Len=3: 31,32,33
神奇的国家 Typ=96 Len=10: c9,f1,c6,e6,b5,c4,b9,fa,bc,d2 神奇的国家 Typ=1 Len=10: c9,f1,c6,e6,b5,c4,b9,fa,bc,d2
可以看到中文字符 是按两个字节进行存储的。
接下来进行介绍的是:NChar(N),NVarchar2(N)。
create table TEST_NCHAR
(
CHAR_COL NCHAR(10),
VARCHAR_COL NVARCHAR2(10)
);
SQL> insert into test_nchar (char_col , VARCHAR_COL) values('123','123');
1 row inserted
SQL> commit;
Commit complete
SQL> select char_col , dump(char_col , 16) as d_char_col , VARCHAR_COL , dump(VARCHAR_COL, 16) as d_VARCHAR_COL from test_nchar;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
-------------------- -------------------------------------------------------------------------------- -------------------- --------------------------------------------------------------------------------
123 Typ=96 Len=20: 0,31,0,32,0,33,0,20,0,20,0,20,0,20,0,20,0,20,0,20 123 Typ=1 Len=6: 0,31,0,32,0,33
可以清楚的看到,同时插入了字符串‘123’,但是NChar的为 0,31,0,32,0,33,就是说:高位用0补充,补足两个字节。
总结如下:NChar,Nvarchar2 存储的所有字符都是按两个字节进行存储。
上述四种类型的共同点是:英文字符和数字都是按照ASCII码进行存储。
可以查看oracle的字符集:
SQL> select * from sys.props$ where name like '%CHARACTERSET%' ;
NAME VALUE$ COMMENT$
------------------------------ -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
NLS_CHARACTERSET ZHS16GBK Character set
NLS_NCHAR_CHARACTERSET AL16UTF16 NCHAR Character set
分享到:
相关推荐
1、CHAR数据类型,该类型是固定长度的字符串,如果没指定大小,则默认占用一字节,如果输入的值小于指定的长度,则数据库用空格填充至固定长度,如果用户输入的值大于指定的长度,则数据库返回错误信息 2、varchar...
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
ORACLE中CLOB字段转String类型
常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 ...数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)
让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从实用和优化的角度出发,讨论每种数据类型的特点。从这里开始oracle之旅! 第一部份 字符类型 §1.1 char 定长字符串,会用空格...
CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。 当你创建一个CHAR型字段,数据库将保证在这个字段中的...
oracle数据类型,CHAR 固定长度字符串 最大长度2000 bytes
返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符...
用过Oracle的人都知道,Oracle有一种数据类型叫VARCHAR2,用来表示不定长的字符串。VARCHAR2也是Oracle公司推荐使用的类型。但使用VARCHAR2有个问题:最大只能表示4000个字符,也就相当于2000个汉字。如果你的程序中...
其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...
主要介绍了Oracle截取JSON字符串内容 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
固定长度字符串 最大长度2000bytes VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes NVARCHAR2 根据字符集而定的可变长度...
返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 ...
2、变长度的字符串变长度字符串用varchar2表示,与char类型不同,Oracle不会在数据内容后面填充任何内容 3、char和varchar2的比较cha
C#连接Oracle的快速方法,使用Oracle.ManagedDataAccess的综合教程,全开源 ...2)已经写好了一个操作类OracleHelper,可以非常方便的操作数据库返回数据类型 3)全源代码,一看就懂,放心下载,已经在多个项目中使用。
sql server中的image类型的数据导出到oracle的clob字段中
在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误,有类似情况的朋友可以参考下
43.CONVERT(c,dset,sset) 将源字符串 sset从一个语言字符集转换到另一个目的dset字符集 SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;...46.ROWIDTOCHAR 将ROWID数据类型转换为字符类型
XMLTYPE_instance:XML数据类型的字段,用于保存XML ,XPath_string:操作的节点路径,例如:/info/Owner。 绝对路径与相对路径:区别在于路径字符串最前面的斜杠是否存在,有斜杠代表绝对路径,没有斜杠则是相对路径...