oracle 文字化けした文字セットを変更する解決策: 1. TNSNAMES.ORA ファイルを見つけ、接続するデータベースの別名を見つけ、環境変数 NLS_LANG を設定し、SQL*Plus を開き、上記の構成を使用します。データベースに接続する; 2. 中国語の文字を格納するテーブルを作成し、中国語の文字を格納するフィールドにいくつかの中国語の文字を挿入し、UTL_FILE パッケージを使用して中国語の文字を出力します。実行後、chinese.txt という名前のファイルが作成されます。 UTL_DIR ディレクトリ内にあり、中国語の文字が含まれています。
このチュートリアルの動作環境: Windows 10 システム、Oracle Database 20c バージョン、DELL G3 コンピューター。
Oracle データベースでは、中国語の文字セットを設定するときに文字化けが頻繁に発生し、多くの開発者や管理者にとって頭痛の種となっています。今回は、Oracleデータベースの中国語文字化け問題を解決する方法を編集者がご紹介しましたので、ご参考になれば幸いです。
方法 1: NLS_LANG を変更する
NLS_LANG は、Oracle データベースの環境変数であり、データベース内の文字のエンコード方法を定義します。 Oracle 9i 以降、NLS_LANG の値はデフォルトで AMERICAN_AMERICA.UTF8 になります。このエンコード方法は中国語をサポートしていないため、中国語をサポートするには NLS_LANG の値を手動で変更する必要があります。
手順は次のとおりです:
1. TNSNAMES.ORA ファイルを見つけて、接続するデータベースのエイリアス (例:
orcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
2) を見つけます。環境変数 NLS_LANG、値 使用する文字セット (例:
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
または
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
3) SQL*Plus を開き、上記の構成を使用してデータベースに接続します:
sqlplus system/oracle@orcl
方法 2: UTL_FILE パッケージを使用する
UTL_FILE パッケージは、Oracle データベースでのファイル I/O 操作に使用される標準パッケージです。 。 UTL_FILE を使用するとテキスト ファイルの読み書きができ、漢字も簡単に処理できます。
手順は次のとおりです:
1. 中国語の文字を格納するテーブルを作成します (例:
CREATE TABLE chinese ( name VARCHAR2(20), clob CLOB );
2. 中国語を格納するフィールドに中国語の文字を挿入します)文字:
INSERT INTO chinese VALUES (‘中国’, ‘中华人民共和国’);
3. 出力ファイルを作成し、UTL_FILE パッケージを使用して中国語文字を出力します:
DECLARE file_handle UTL_FILE.FILE_TYPE; chinese_clob CLOB; BEGIN SELECT clob INTO chinese_clob FROM chinese WHERE name=’中国’; file_handle := UTL_FILE.FOPEN(‘UTL_DIR’, ‘chinese.txt’, ‘w’, 32767); UTL_FILE.PUT_LINE(file_handle, chinese_clob, FALSE); UTL_FILE.FCLOSE(file_handle); END;
実行後、chinese.txt という名前のファイルが UTL_DIR ディレクトリに作成されます。漢字が含まれています。
概要
上記 2 つの方法はいずれも、Oracle データベースの中国語文字化けの問題を解決できます。方法 1 は、中国語の文字をサポートするように NLS_LANG 環境変数の値を変更することであり、方法 2 は、UTL_FILE パッケージを介して中国語の文字を読み書きすることです。特定のニーズに応じて、対応する解決方法を選択できます。
以上がOracleの文字化けを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。