zoukankan      html  css  js  c++  java
  • 【Oracle】修改Oracle数据库字符集

    以下是执行命令的全部过程:

    第一步:启动sqlplus

    C:Usersdszho>sqlplus

    SQL*Plus: Release 11.2.0.1.0 Production on 星期四 6月 22 09:56:04 2017

    Copyright (c) 1982, 2010, Oracle. All rights reserved.

    第二步:使用system sysdba帐号登录

    请输入用户名: system as sysdba
    输入口令:

    连接到:
    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 例程已经关闭。

    第四步:以mount启动
    SQL> startup mount;
    ORACLE 例程已经启动。

    Total System Global Area 3423965184 bytes
    Fixed Size 2180544 bytes
    Variable Size 1862273600 bytes
    Database Buffers 1543503872 bytes
    Redo Buffers 16007168 bytes
    数据库装载完毕。

    第五步:调整session

    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 INTERNAL_USE AL32UTF8;

    数据库已更改。

    SQL> select * from v$nls_parameters;

    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_LANGUAGE
    SIMPLIFIED CHINESE

    NLS_TERRITORY
    CHINA

    NLS_CURRENCY


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_ISO_CURRENCY
    CHINA

    NLS_NUMERIC_CHARACTERS
    .,

    NLS_CALENDAR
    GREGORIAN


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_DATE_FORMAT
    DD-MON-RR

    NLS_DATE_LANGUAGE
    SIMPLIFIED CHINESE

    NLS_CHARACTERSET
    AL32UTF8


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_SORT
    BINARY

    NLS_TIME_FORMAT
    HH.MI.SSXFF AM

    NLS_TIMESTAMP_FORMAT
    DD-MON-RR HH.MI.SSXFF AM


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_TIME_TZ_FORMAT
    HH.MI.SSXFF AM TZR

    NLS_TIMESTAMP_TZ_FORMAT
    DD-MON-RR HH.MI.SSXFF AM TZR

    NLS_DUAL_CURRENCY


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_NCHAR_CHARACTERSET
    AL16UTF16

    NLS_COMP
    BINARY

    NLS_LENGTH_SEMANTICS
    BYTE


    PARAMETER
    --------------------------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    NLS_NCHAR_CONV_EXCP
    FALSE


    已选择19行。

    第七步:关闭数据库并重新启动

    SQL> shutdown immediate;
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> startup
    ORACLE 例程已经启动。

    Total System Global Area 3423965184 bytes
    Fixed Size 2180544 bytes
    Variable Size 1862273600 bytes
    Database Buffers 1543503872 bytes
    Redo Buffers 16007168 bytes
    数据库装载完毕。
    数据库已经打开。

    第八步:查看是否修改成功

    SQL> select userenv('language') from dual;

    USERENV('LANGUAGE')
    --------------------------------------------------------------------------------
    SIMPLIFIED CHINESE_CHINA.AL32UTF8

    可以看到已经修改成功。

    每个人遇到的问题不一样,所以要多多研究。

    备注:遇到的问题

    在PL/SQL中运行这些语句是不行的,而且可能导致所有帐号都无法通过PL/SQL进行登录

    解决办法:启动sqlplus,login:sys as sysdba 讲session改回去。重启电脑即可。

    注意:

    SERVICE_NAME要设置正确,否则会出现在PL/SQL中编码未修改过来的问题。

  • 相关阅读:
    mysql主从只同步部分库或表
    springboot~aspect通过@annotation进行拦截
    ELK~fluentd将日志文件增量读到es里
    怎么自学 Java ?和盘托出
    一个后端开发的 Vue 笔记【入门级】
    企业级数据大屏设计如何实现
    Vue.js官方中文教程
    vue学习笔记 ---- 系列文章
    基于Asp.net core Kestrel的超迷你http服务器 ---- AServer
    Docker学习—概念及基本应用
  • 原文地址:https://www.cnblogs.com/flydkPocketMagic/p/7063471.html
Copyright © 2011-2022 走看看