oracle 12c 字符集修改 AL32UTF8 改为 ZHS16GBK

公司安装个 oracle 12c 测试环境,准备把线上的库导出来测试性能,结果把测试库的字符集选了 AL32UTF8 ,一看线上是 ZHS16GBK,还是保持一致吧,遂记录 AL32UTF8 改 ZHS16GBK 字符集过程:

首先最重要的事:备份!备份数据!别忘记备份数据!


C:\Windows\system32>sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on 星期二 2月 27 10:59:23 2018

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

SQL> conn / as sysdba
已连接。
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
--------------------------------------------------------------------------------

SIMPLIFIED CHINESE_CHINA.AL32UTF8

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

Total System Global Area 2533359616 bytes
Fixed Size                  3835256 bytes
Variable Size             738200200 bytes
Database Buffers         1778384896 bytes
Redo Buffers               12939264 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 INTERNAL_USE ZHS16GBK;

数据库已更改。

SQL> ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16;

数据库已更改。

SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。

Total System Global Area 2533359616 bytes
Fixed Size                  3835256 bytes
Variable Size             738200200 bytes
Database Buffers         1778384896 bytes
Redo Buffers               12939264 bytes
数据库装载完毕。
数据库已经打开。
SQL> select userenv('language') from dual;

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

SQL> col parameter format a32;
SQL> col value format a32;
SQL> select * from nls_database_parameters;

PARAMETER                        VALUE
-------------------------------- --------------------------------
NLS_RDBMS_VERSION                12.1.0.2.0
NLS_NCHAR_CONV_EXCP              FALSE
NLS_LENGTH_SEMANTICS             BYTE
NLS_COMP                         BINARY
NLS_DUAL_CURRENCY                $
NLS_TIMESTAMP_TZ_FORMAT          DD-MON-RR HH.MI.SSXFF AM TZR
NLS_TIME_TZ_FORMAT               HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_FORMAT             DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_FORMAT                  HH.MI.SSXFF AM
NLS_SORT                         BINARY
NLS_DATE_LANGUAGE                AMERICAN

PARAMETER                        VALUE
-------------------------------- --------------------------------
NLS_DATE_FORMAT                  DD-MON-RR
NLS_CALENDAR                     GREGORIAN
NLS_NUMERIC_CHARACTERS           .,
NLS_NCHAR_CHARACTERSET           AL16UTF16
NLS_CHARACTERSET                 ZHS16GBK
NLS_ISO_CURRENCY                 AMERICA
NLS_CURRENCY                     $
NLS_TERRITORY                    AMERICA
NLS_LANGUAGE                     AMERICAN

已选择 20 行。

SQL>

oracle 12c 将 AL32UTF8 字符集修改为 ZHS16GBK 完成。


  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Oracle 12c 中,创建一个指定字符集为 `AMERICAN_AMERICA.ZHS16GBK` 的表空间,可以使用以下语法: ``` CREATE TABLESPACE tablespace_name DATAFILE 'file_name' SIZE size DEFAULT CHARACTER SET AMERICAN_AMERICA.ZHS16GBK; ``` 其中,`tablespace_name` 是表空间的名称,`file_name` 是指定的数据文件名和路径,`size` 指定数据文件的大小,`AMERICAN_AMERICA.ZHS16GBK` 是指定的字符集名称。 例如,要创建一个名为 `my_tablespace` 的表空间,其中包含一个名为 `my_datafile` 的数据文件,大小为 `100M`,并且字符集为 `AMERICAN_AMERICA.ZHS16GBK`,可以使用以下语句: ``` CREATE TABLESPACE my_tablespace DATAFILE '/path/to/my_datafile' SIZE 100M DEFAULT CHARACTER SET AMERICAN_AMERICA.ZHS16GBK; ``` 这将创建一个名为 `my_tablespace` 的表空间,其中包含一个名为 `my_datafile` 的数据文件,大小为 `100M`,并且字符集为 `AMERICAN_AMERICA.ZHS16GBK`。在指定字符集后,该表空间中的所有表和索引将使用该字符集进行编码和存储。 注意,在 Oracle 12c 中,除了可以在表空间中指定字符集,还可以在数据库级别指定默认字符集。可以使用以下语句指定默认字符集: ``` ALTER DATABASE CHARACTER SET AMERICAN_AMERICA.ZHS16GBK; ``` 这将把数据库的默认字符集设置为 `AMERICAN_AMERICA.ZHS16GBK`。在数据库级别指定默认字符集后,所有新建的表空间和对象都将使用该字符集,除非在创建表空间或对象时显式指定不同的字符集

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员老油条

您的鼓励将是我创作的大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值