`

Oracle 基本数据类型---(字符串)

阅读更多
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

分享到:
评论

相关推荐

    Oracle 数据类型

    1、CHAR数据类型,该类型是固定长度的字符串,如果没指定大小,则默认占用一字节,如果输入的值小于指定的长度,则数据库用空格填充至固定长度,如果用户输入的值大于指定的长度,则数据库返回错误信息 2、varchar...

    ORACLE 存储过程返回结果集,拼接为字符串输出为clob

    大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...

    ORACLE中CLOB字段转String类型

    ORACLE中CLOB字段转String类型

    oracle支持的数据类型

    常用的数据库字段类型如下: 字段类型 中文说明 限制条件 其它说明 CHAR 固定长度字符串 ...数据类型 参数 描述 char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

    Oracle存储过程-1

    让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从实用和优化的角度出发,讨论每种数据类型的特点。从这里开始oracle之旅! 第一部份 字符类型 §1.1 char 定长字符串,会用空格...

    ORACLE中的数据类型.doc

    CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。 当你创建一个CHAR型字段,数据库将保证在这个字段中的...

    oracle数据类型.txt

    oracle数据类型,CHAR 固定长度字符串 最大长度2000 bytes

    MYSQL,SQLSERVER,ORACLE常用的函数

    返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符...

    用PHP操纵Oracle的LOB类型的数据

    用过Oracle的人都知道,Oracle有一种数据类型叫VARCHAR2,用来表示不定长的字符串。VARCHAR2也是Oracle公司推荐使用的类型。但使用VARCHAR2有个问题:最大只能表示4000个字符,也就相当于2000个汉字。如果你的程序中...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle截取JSON字符串内容的方法

    主要介绍了Oracle截取JSON字符串内容 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

    oracle常用数据类型说明

    固定长度字符串 最大长度2000bytes   VARCHAR2 可变长度的字符串, 最大长度4000bytes 可做索引的最大长度749 NCHAR 根据字符集而定的固定长度字符串 最大长度2000bytes   NVARCHAR2 根据字符集而定的可变长度...

    oracle函数大全.doc

    返回字符串并将字符串的第一个字母变为大写; SQL> select initcap('smith') upp from dual; UPP ----- Smith 5.INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 ...

    05.Oracle数据类型1

    2、变长度的字符串变长度字符串用varchar2表示,与char类型不同,Oracle不会在数据内容后面填充任何内容 3、char和varchar2的比较cha

    c#连接Oracle的快速方法,使用Oracle.ManagedDataAccess的综合教程,全开源

    C#连接Oracle的快速方法,使用Oracle.ManagedDataAccess的综合教程,全开源 ...2)已经写好了一个操作类OracleHelper,可以非常方便的操作数据库返回数据类型 3)全源代码,一看就懂,放心下载,已经在多个项目中使用。

    sql server中的image类型的数据导出到oracle的clob字段中

    sql server中的image类型的数据导出到oracle的clob字段中

    向Oracle数据库的CLOB属性插入数据报字符串过长错误

    在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误,有类似情况的朋友可以参考下

    Oracle SQL 内置函数大全(3)

    43.CONVERT(c,dset,sset) 将源字符串 sset从一个语言字符集转换到另一个目的dset字符集 SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;...46.ROWIDTOCHAR 将ROWID数据类型转换为字符类型

    ORACLE操作XML函数

    XMLTYPE_instance:XML数据类型的字段,用于保存XML ,XPath_string:操作的节点路径,例如:/info/Owner。 绝对路径与相对路径:区别在于路径字符串最前面的斜杠是否存在,有斜杠代表绝对路径,没有斜杠则是相对路径...

Global site tag (gtag.js) - Google Analytics