ページの先頭行へ戻る
Symfoware Server V10.0.0 トラブルシューティング集

8.1.2 SQLについて知る

SQLについてよくある質問と、その回答について説明します。

ホスト変数を使用したLIKE述語の記述方法は?

アプリケーションで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インタフェースをサポートしています。