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'