Benjamin Zhang

目前就职于中科院计算机网络信息中心,主要兴趣集中在数据库,操作系统,中间件。

【Oracle】在GBK字符集Oracle数据下储存生僻字

01 Mar 2019 » Oracle

Oracle储存生僻字

  1. 查看Oracle server端字符集

    SQL> select userenv('language') from dual;
       
    USERENV('LANGUAGE')
    ----------------------------------------------------
    AMERICAN_AMERICA.ZHS16GBK
    
  2. 把生僻字转换为Unicode

    转化的地址为:http://www.bejson.com/convert/unicode_chinese/

    例如:这个字的Unicode为\u3f06

  3. 数据库实验

    建立test01表

    create table test01(zsd nvarchar2(20));
    

    查看unicode的生僻字如下:

    SYS@oradb> select utl_raw.cast_to_nvarchar2('3f06') from dual;
       
    UTL_RAW.CAST_TO_NVARCHAR2('3F06')
    ------------------
    
    

    插入至test01表中:

    SYS@oradb> insert into test01 values((select utl_raw.cast_to_nvarchar2('3f06') from dual));
       
    已创建 1 行。
       
    SYS@oradb> select * from test01;
       
    ZSD
    --------------------------------------------------------------------------------
    
    

    至此,gbk字符集的数据库可以查询生僻字