Oracle 12c 数据库字符集ZHS16GBK改为AL32UTF8

一、查看字符集

SQL> select * from v$version;

BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
PL/SQL Release 12.1.0.2.0 - Production                                                    0
CORE    12.1.0.2.0      Production                                                                0
TNS for Linux: Version 12.1.0.2.0 - Production                                            0
NLSRTL Version 12.1.0.2.0 - Production                                                    0

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

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

SQL>

SQL> select * from v$nls_parameters;

PARAMETER                      VALUE                              CON_ID
------------------------------ ------------------------------ ----------
NLS_LANGUAGE                   AMERICAN                                0
NLS_TERRITORY                  AMERICA                                 0
NLS_CURRENCY                   $                                       0
NLS_ISO_CURRENCY               AMERICA                                 0
NLS_NUMERIC_CHARACTERS         .,                                      0
NLS_CALENDAR                   GREGORIAN                               0
NLS_DATE_FORMAT                DD-MON-YYYY HH24:MI:SS                  0
NLS_DATE_LANGUAGE              AMERICAN                                0
NLS_CHARACTERSET               ZHS16GBK                                0
NLS_SORT                       BINARY                                  0
NLS_TIME_FORMAT                HH.MI.SSXFF AM                          0

PARAMETER                      VALUE                              CON_ID
------------------------------ ------------------------------ ----------
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM                0
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                      0
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR            0
NLS_DUAL_CURRENCY              $                                       0
NLS_NCHAR_CHARACTERSET         AL16UTF16                               0
NLS_COMP                       BINARY                                  0
NLS_LENGTH_SEMANTICS           BYTE                                    0
NLS_NCHAR_CONV_EXCP            FALSE                                   0

19 rows selected.

SQL>

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 rows selected.

二、修改字符集

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1778384896 bytes
Fixed Size                  2925408 bytes
Variable Size            1627393184 bytes
Database Buffers          134217728 bytes
Redo Buffers               13848576 bytes
Database mounted.
SQL> alter session set sql_trace=true; 

Session altered.

SQL> alter system enable restricted session; 

System altered.

SQL> alter system set job_queue_processes=0; 

System altered.

SQL> alter system set aq_tm_processes=0; 

System altered.

SQL> alter database open; 

Database altered.

SQL>  ALTER DATABASE character set INTERNAL_USE AL32UTF8;

Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup 
ORACLE instance started.

Total System Global Area 1778384896 bytes
Fixed Size                  2925408 bytes
Variable Size            1627393184 bytes
Database Buffers          134217728 bytes
Redo Buffers               13848576 bytes
Database mounted.
Database opened.
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               AL32UTF8
NLS_ISO_CURRENCY               AMERICA
NLS_CURRENCY                   $
NLS_TERRITORY                  AMERICA
NLS_LANGUAGE                   AMERICAN

20 rows selected.
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`。在数据库级别指定默认字符集后,所有新建的表空间和对象都将使用该字符集,除非在创建表空间或对象时显式指定不同的字符集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值