0

いくつかのオプション フィールドを受け入れる COBOL DB2 で SQL ステートメントを作成しようとしています。

これまでのところ、次のコードを使用して、VALID-FROM-DATE と VALID-TO-DATE および SYSTEM-ID をオプションにすることができました。

MOVE A-CURRENT-TIMESTAMP(1:10)
  TO A-VALID-FROM-DATE        
MOVE A-CURRENT-TIMESTAMP(1:10)
  TO A-VALID-TO-DATE          

MOVE 0               
  TO A-SYSTEM-ID-FROM
MOVE 999             
  TO A-SYSTEM-ID-TO  

しかし今、私は 4 番目のフィールドをオプションにし、それを char フィールドにしたいと考えています。

私は次のことを試しました-SQLウィザードでは機能しますが、プログラムを実行すると機能しません:

MOVE '%'    
  TO A-NAME

次の DB2 SQL ステートメントでは、次のようになります。

 SELECT                                      
       COALESCE(NAME,' ')                   
      ,SYSTEM_ID                             
      ,COALESCE(VALUE_DATE,'0001-01-01')     
 FROM TABLE                                
WHERE                                        
      NAME          LIKE :A-NAME            
  AND SYSTEM_ID  BETWEEN :A-SYSTEM-ID-FROM   
                     AND :A-SYSTEM-ID-TO     
  AND VALUE_DATE BETWEEN :A-VALID-FROM-DATE  
                     AND :A-VALID-TO-DATE    
 ORDER BY VALUE_DATE                         

何か案は?

4

1 に答える 1

1

解決策はかなり単純でした。それ以外の

MOVE '%'    
  TO A-NAME

に変更しました

MOVE '%%%%%%%'    
  TO A-NAME

A-NAMEはX(7)フィールドであるため。

于 2012-08-02T12:35:51.473 に答える