convprm
ツールの概要
次に、convprm
ツールについて説明します。
-
手動で実行することも、スクリプト化することも可能なコマンドライン・プログラムです。
-
文字列リテラルを、二重引用符で囲まれたキャラクタ文字列から、一重引用符で囲まれたキャラクタ文字列に変換しますが、二重引用符で囲まれたオブジェクト名はそのまま残ります。どちらも、二重引用符で区切られた連続する文字列として表されている場合でも、オブジェクト名と文字列リテラルが区別されます。
-
引用符がエスケープされます。文字列の区切りに使用される文字列が、リテラル文字列自体に含まれる場合は、引用符をエスケープする必要があります。たとえば、"This character "" is a double quote"という文では、引用符がエスケープされています。'This character '' is a single quote'という文では、一重引用符がエスケープされています。二重引用符から一重引用符に変換する際は、
convprm
により、繰り返されている二重引用符の1つがエスケープされている二重引用符から削除され、文字列シーケンスに埋め込まれている一重引用符がエスケープされます。 -
GLOBALS
ファイルにNOUSEANSISQLQUOTES
が指定されている場合は、警告のメッセージが発行されます。メッセージの内容は、変換されたパラメータ・ファイルにはNOUSEANSISQLQUOTES
との互換性がないが、パラメータ・ファイルの更新は行われたというものです。 -
OBEY
またはINCLUDE
パラメータを使用して、含まれるファイルを繰り返し変換できます。 -
元のファイルと同じディレクトリに、初期パラメータ・ファイルのバックアップが作成されます。バックアップには、元のファイル名に
.bck
という接尾辞が付きます。バックアップ・ファイルの作成は、convprm
ツールの実行時に無効化できます。 -
文字セットが変換されます。新しいパラメータ・ファイルの文字セットは、元のパラメータ・ファイルの
CHARSET
パラメータから取得されます。そのパラメータがない場合、文字セットは、GLOBALS
ファイルのCHARSET
パラメータから取得されます。GLOBALS
パラメータがない場合、新しいパラメータ・ファイルは、ローカル・オペレーティング・システムの文字セットで記述されます。
表-1に、変換結果の例を示します。
表-1 [NO]USEANSISQLQUOTESの入力要件の比較
入力変数 | 古い構文の文字列リテラル | 新しい構文の文字列リテラル |
---|---|---|
古い構文では、二重引用符がエスケープされていますが、新しい構文ではエスケープされていません。 |
"abc""def" |
'abc"def' |
新しい構文では、一重引用符がエスケープされていますが、古い構文ではエスケープされていません。 |
"abc'def" |
'abc''def' |