おそらく、ロケール固有のNLS文字セット間の不一致が原因です。 およびデータベース文字セット 。または、 NLS_LANG OS環境変数に値が正しく設定されていません 。
クライアントにジャンク値/特殊文字/質問マークが表示されるのはなぜですか?
- クライアントの文字セットがデータベースの文字セットと一致しません。
比較できます:
-- locale-specific characterset
select value
from v$nls_parameters
where parameter = 'NLS_CHARACTERSET';
-- database characterset
select value
from nls_database_parameters
where parameter = 'NLS_CHARACTERSET';
2つの間に不一致が見られる場合は、ロケール固有のNLS文字セットをデータベース文字セットの文字セットに設定します。
- 上記の文字セットが一致する場合は、OS環境変数にNLS_LANG値を設定する必要があります。
Windows OSの場合、形式は次のとおりです。
[NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]
NLS_LANGの設定に関するドキュメントの指示に従ってください:OracleデータベースのNLS_LANG環境変数の設定