変更内容
rdbsloaderコマンド、rdbsaloaderコマンドおよびrdbsuloaderコマンドでテキスト形式の入力ファイルを指定した場合、データベースの文字コード系がEUCコードまたはシフトJISコードであるにもかかわらず、各国語文字列型の列に半角カタカナを格納していました(P番号PG49764により修正されており、これを含む緊急修正を適用していない場合に該当します)。
rdbsloaderコマンド、rdbsaloaderコマンドおよびrdbsuloaderコマンドでテキスト形式の入力ファイルを指定した場合、データベースの文字コード系がEUCコードまたはシフトJISコードで、各国語文字列型の列に半角カタカナを格納しようとした場合にエラー通知します。
非互換
各国語文字列型の列に半角カタカナを格納しようとした場合に、従来正常終了していたものがエラー通知されるようになります。
対処方法
本機能を無効にする場合はRDB構成パラメタファイルのRDBNCHARKANAにNONを指定し、Symfoware/RDBを再起動してください。
NONを指定すると、半角カタカナのデータを格納することはできますが、格納したデータを正しく取り出すことができない場合があります。その場合にエラー通知するには、NORMALを指定してください。NORMALを指定した場合にエラーとなるか否かの詳細は、“表2.12 エラー通知の対象となるバージョンレベル、条件およびコマンドと、RDBNCHARKANA=NORMAL指定時の動作”を参照してください。
注意
本機能は、誤って各国語文字列型の列に半角カタカナを格納しようとしたときにエラー通知できていなかったものをエラー通知するように修正するものです。したがって、本機能を有効にして運用することを推奨します。
データベースの文字コード系がEUCコードまたはシフトJISコードの場合に、rdbsloaderコマンド、rdbsaloaderコマンドおよびrdbsuloaderコマンドで各国語文字列型の列に半角カタカナを格納する際にエラー通知するか否かを指定します。
記述形式は以下のとおりです。
RDBNCHARKANA = 半角カタカナ格納のエラー通知の有無
各国語文字列型の列に半角カタカナを格納する際にエラー通知するか否かを指定します。省略した場合はERRORが指定されたものとみなします。
本指定は、データベースの文字コード系がEUCコードまたはシフトJISコードの場合に有効となります。
各国語文字列型の列への半角カタカナの格納をすべてエラー通知します。
各国語文字列型の列への半角カタカナの格納時にデータ破損が発生する場合のみエラー通知します。
各国語文字列型の列への半角カタカナの格納をエラーとしません。
エラー通知の対象となるバージョンレベル、条件およびコマンドと、RDBNCHARKANA=NORMAL指定時の動作を以下に示します。
なお、以下の表では、各国語文字列型の列への半角カタカナ格納時に、データ破損が発生する可能性のある組合せのみを示しています。
表記していない組合せはすべてエラー通知されます。
Symfoware/RDBのロケール | バージョンレベル | コード系の組合せ | コマンド | RDBNCHARKANAの指定 | |||
---|---|---|---|---|---|---|---|
データベース | 入力データ | 省略またはERROR | NORMAL | NON | |||
ja_JP.eucJP | 8.0.1以前 | シフトJISコード | シフトJISコード | rdbsloader | エラー通知する | エラー通知する | エラー通知しない |
EUCコード | EUCコード | rdbsloader | |||||
6.0.1~8.0.1 | シフトJISコード | UNICODE | rdbsloader | エラー通知しない | |||
ja_JP.UTF-8 | 6.0.1~8.0.1 | シフトJISコード | シフトJISコード | rdbsloader | エラー通知する | ||
シフトJISコード | UNICODE | rdbsloader | エラー通知しない | ||||
8.0.x | EUCコード | EUCコード | rdbsloader(注) | エラー通知する |
注) rdbsloaderコマンドが以下の条件を満たさない場合に該当します。
表のDSIの格納構造がSEQUENTIAL構造である。かつ、
以下の条件を満たす場合。
表にXML構造のインデックスが付加されている。または、
表のレコード長が以下の条件を満たす場合。
ページ内格納域長を超えている。または、
過去に表の定義変更文による列定義の削除を行っており、列定義の削除前にはレコード長がページ内格納域長を超えていた。
参照
レコード長およびページ内格納域長の見積りについては、以下を参照してください。
Symfoware Server 6.0.1以前の場合 : “RDBユーザーズガイド データベース定義編”の“データベーススペースの所要量の見積り”
Symfoware Server 7.0以降の場合: “RDB運用ガイド(データベース定義編)”の“データベーススペースの所要量の見積り”