次の条件が両方とも当てはまるため、機能します。
- クライアントの文字セットはデータベースの文字セットと同じです。
- 文字セットは任意のバイト値を許可します
データベースの文字セットとクライアントの文字セットはUS7ASCII
に設定されています 。このような場合、各データは変換なしで1つずつ書き込まれます。つまり、送信するバイトはデータベースに正確に書き込まれます。おそらくNLS_LANG
を設定していません クライアント側ではまったくありませんが、Oracleのデフォルトは AMERICAN_AMERICA.US7ASCII
です。 。
US7ASCII
7ビットエンコーディングです。純粋なASCIIアプリケーション(見つけるのはかなり難しいかもしれません)は、8ビットアーキテクチャに格納されている8番目のビットを無視するだけだと思います。他の文字セット、例えば AL32UTF8
各バイト値を許可しないでください。この場合、そのような文字はプレースホルダーに置き換えられます。 ¿コード> または
?
。
クライアントの文字セットをUS7ASCII
に設定することに注意してください これはおそらく正しくありません。アプリケーションで使用されている文字セットに適切に設定してから、°
交換されます。
SQL * Plusを使用する場合は、コマンド chcp
を使用してコンソールのコードページを確認してください。 、それぞれロケールcharmap
。 NLS_LANG
を設定します sqlplusを開始する前に、それに応じて環境変数を設定します。