blog

docker で Oracle 12C データベースの文字セット ZHS16GBK を AL32UTF8 に変更する。

オラクルデータベースの文字修正\nクエリ oracle イメージ名\n\ndocker で Oracle データベースコンテナに入るには\n# oracle コンテナに入ります。\n[root@loc...

Jan 24, 2020 · 4 min. read
シェア

オラクル・データベースの文字修正

クエリーオラクル イメージ名

dockerでOracleデータベースコンテナに入ります。

# オラクル・コンテナに入る
[root@localhost ~]# docker exec -it oracl /bin/bash
# oracleユーザーに切り替える
root@e7647ff4db28:/# su oracle

SQLplusに管理者としてログインします。

# oracle binディレクトリに移動する
oracle@e7647ff4db28:/$ cd u01/app/oracle/product//xe/bin
# 管理者としてログインするSQLplus
oracle@e7647ff4db28:/u01/app/oracle/product//xe/bin$ ./sqlplus / as sysdba
SQL*Plus: Release .2.0 Production on Fri Jul :
Copyright (c) , Oracle. All rights reserved.
Connected to:
Oracle Database 12c Standard Edition Release .2.0 - 64bit Production
SQL> 

文字セットの変更

  • 文字セットを見る
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 .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  bytes
Fixed Size  bytes
Variable Size  bytes
Database Buffers  bytes
Redo Buffers  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  bytes
Fixed Size  bytes
Variable Size  bytes
Database Buffers  bytes
Redo Buffers  bytes
Database mounted.
Database opened.
SQL> select * from nls_database_parameters;
PARAMETER VALUE
------------------------------ ------------------------------
NLS_RDBMS_VERSION .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.

その他

  • 解決方法
  1. クエリサーバの文字セット
SQL> 
select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
  1. オペレーティング・システムの環境変数を変更するには、以下の手順に従います。

新しい環境変数を作成し、OKをクリックします。 変数の値は、先ほど確認したサーバーの文字セットと同じです。

コーダーの道を孤独に歩く者

Read next

ShardingSphere 4.x オーケストレーション・ガバナンス・アプリケーション・パフォーマンス・モニタリング・インテグレーション

APM は Application Performance Monitoring の略です。現在、APMの主な機能は分散システムの性能診断に重点を置いており、コールチェーン表示、アプリケーショントポロジー分析などが主な機能です。 APMは、アプリケーション性能監視に関連するデータの収集、保存、表示を担当するのではなく、2つのデータスライスであるSQL解析とSQL実行に関連するコア情報を、アプリケーション性能監視...

Jan 23, 2020 · 3 min read