0

中国語の単語をOracleデータベースに挿入しようとしていますが、とにかく正しく表示されませんでした。データベースの設定は次のとおりです。

SQL> select * FROM nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';


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

SQL> select * FROM nls_database_parameters where parameter='NLS_CHARACTERSET';

PARAMETER
------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF8

SQLPLUSにコピーして貼り付けてクエリを実行すると、漢字は「..」になります。私が使用しているバージョンは、OracleDatabase11gリリース11.2.0.3.0-64ビットです。ヒントはありますか?

4

1 に答える 1

0

いくつかの問題が考えられます:

1) 文字はデータベースに保存できません。

2) クライアントの言語設定によっては、文字が別のものに変換される場合があります。

3) 使用しているツールでは文字を表示できません。

--

1) テーブルに格納されている文字のバイト値を確認します。

select dump(column) from table where ...

ダンプ機能はバイト値を表示し、正しいバイトが列に格納されているかどうかを確認できます。

2) クライアントの NLS_LANG 設定を確認します。

3) 正しいバイトがテーブルに格納されていて、サーバーとクライアント間の NLS_LANG の不一致が原因で別のバイトに変換されていない場合、ツールは文字を正しく表示できない可能性があります。SQLPlus のインターフェイスは非常に限られていると確信しています。おそらく、SQL Developerはより広い範囲の文字を表示できます。

于 2013-03-01T13:36:54.047 に答える