美文网首页oracle数据库
oracle之修改字符集

oracle之修改字符集

作者: iszengmh | 来源:发表于2018-01-11 12:16 被阅读33次

    参考链接

    如何改oracle AL16UTF16为AL32UTF8——百度知道

    建库时AL16UTF16字符集怎么设置?——出处: ITPUB论坛-中国最专业的IT技术社区

    正文

    Microsoft Windows [版本 6.1.7601]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
    
    C:\Users\Administrator>sqlplus / as sysdba
    
    SQL*Plus: Release 11.2.0.1.0 Production on 星期四 1月 11 12:00:49 2018
    
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    
    
    连接到:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    
    SQL> shutdown immediate
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup mount
    ORACLE 例程已经启动。
    
    Total System Global Area 3290345472 bytes
    Fixed Size                  2180224 bytes
    Variable Size            2164263808 bytes
    Database Buffers         1107296256 bytes
    Redo Buffers               16605184 bytes
    数据库装载完毕。
    SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
    
    系统已更改。
    
    SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    
    系统已更改。
    
    SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
    
    系统已更改。
    
    SQL> ALTER DATABASE OPEN;
    
    数据库已更改。
    
    SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
    ALTER DATABASE CHARACTER SET AL32UTF8
    *
    第 1 行出现错误:
    ORA-12712: 新字符集必须为旧字符集的超集
    
    
    SQL> ALTER DATABASE CHARACTER SET AL16UTF16;
    ALTER DATABASE CHARACTER SET AL16UTF16
    *
    第 1 行出现错误:
    ORA-12712: 新字符集必须为旧字符集的超集
    # ALTER DATABASE national CHARACTER SET AL16UTF16;
    
    SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
    
    数据库已更改。
    
    SQL> SHUTDOWN IMMEDIATE;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> STARTUP
    ORACLE 例程已经启动。
    
    Total System Global Area 3290345472 bytes
    Fixed Size                  2180224 bytes
    Variable Size            2164263808 bytes
    Database Buffers         1107296256 bytes
    Redo Buffers               16605184 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
    

    ALTER DATABASE character set INTERNAL_USE AL32UTF8;
    INTERNAL_USE有点像是强制修改,其他用户角色可能会报错

    其他问题

    AL16UTF16不能作为character set

    AL16UTF16 不能用做数据库的character set,只能用做national character set 。
    character set必须是single byte 7-bit ASCII或是单字节EBCDIC的子集,因此fixed width的多字节字符集(AL16UTF16)就不能做为character set。

    你可以用如下这样用的:

    CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16
    或是
    CHARACTER SET zhs16cgb231280  NATIONAL CHARACTER SET AL16UTF16
    

    相关文章

      网友评论

        本文标题:oracle之修改字符集

        本文链接:https://www.haomeiwen.com/subject/nmmznxtx.html