私はいつもNLS_LENGTH_SEMANTICS
をBYTE
に設定すると、マルチバイト文字セットを使用して頭を調べる必要がありましたが、最近、私たちの顧客から、NLS_LENGTH_SEMANTICS
はCHAR
に設定されます。これに何かありますか?既知の問題ですか?
NLS_LENGTH_SEMANTICS
パラメータを設定するときに発生する可能性のある長所/短所/問題について詳しく説明する便利なページ こちら があります。
質問に答えるには、Oracleの「内部」スクリプトを実行するときに必ずNLS_LENGTH_SEMANTICS=BYTE
を設定してください。 IE:パッチ、アップグレード、$Oracle_HOME/dbms/admin
のすべて。
ドキュメント によると:
インスタンスまたはサーバーのパラメータファイルでNLS_LENGTH_SEMANTICSパラメータをCHARに設定しないことを強くお勧めします。これにより、多くの既存のインストールスクリプトが予期せず文字長セマンティクスの列を作成し、バッファオーバーフローなどのランタイムエラーが発生する可能性があります。