web-dev-qa-db-ja.com

OracleデータベースでNLS_LENGTH_SEMANTICSをCHARに設定することによって引き起こされる既知の問題はありますか?

私はいつもNLS_LENGTH_SEMANTICSBYTEに設定すると、マルチバイト文字セットを使用して頭を調べる必要がありましたが、最近、私たちの顧客から、NLS_LENGTH_SEMANTICSCHARに設定されます。これに何かありますか?既知の問題ですか?

3
ninesided

NLS_LENGTH_SEMANTICSパラメータを設定するときに発生する可能性のある長所/短所/問題について詳しく説明する便利なページ こちら があります。

質問に答えるには、Oracleの「内部」スクリプトを実行するときに必ずNLS_LENGTH_SEMANTICS=BYTEを設定してください。 IE:パッチ、アップグレード、$Oracle_HOME/dbms/adminのすべて。

2
Philᵀᴹ

ドキュメント によると:

インスタンスまたはサーバーのパラメータファイルでNLS_LENGTH_SEMANTICSパラメータをCHARに設定しないことを強くお勧めします。これにより、多くの既存のインストールスクリプトが予期せず文字長セマンティクスの列を作成し、バッファオーバーフローなどのランタイムエラーが発生する可能性があります。

2
ninesided