SQLについてよくある質問と、その回答について説明します。
アプリケーションでWHERE句にLIKE述語を使用し、パターンをホスト変数で指定した場合、ホスト変数(固定長文字型変数)の内容すべてをパターンとして判定します。
表定義 CREATE TABLE SCH1.TBL1(CLM1 CHAR(12)) 表中のデータ 'Symfoware ' ※最後の3バイトは半角空白 アプリケーション(COBOL) 01 H1 PIC X(12). 01 H2 PIC X(12). EXEC SQL DECLARE CU1 CURSOR FOR SELECT CLM1 FROM SCH1.TBL1 WHERE CLM1 LIKE :H1 END-EXEC. MOVE 'Symfo%' TO H1. EXEC SQL OPEN CU1 END-EXEC. EXEC SQL FETCH CU1 INTO :H2 END-EXEC. 上記の場合、MOVE命令によりホスト変数H1の内容は次のようになり、 'Symfo% ' ※最後の6バイトは半角空白 次のデータに対する判定結果は以下のようになります。 'Symfoware ' -> 偽 'Symfo ' -> 真 'Symfo1 ' -> 真
LIKE述語のパターンをホスト変数で指定する場合は、後方空白を考慮してください。パターンの指定を可変長文字型変数を使用することにより、'Symfo%'までを有効データとする指定が可能です。
READ/WRITEのインタフェースはあるか?
READ/WRITEのインタフェースはありません。
Symfoware Serverは、SQLインタフェースをサポートしています。