The bit test statement is a type of IF, SELECT, or IGNORE statement that allows you to test individual bits in a flag field. The flag fields for the products are described in the data definition tables.

The syntax is as follows:

IF [NOT] fldname HAS {ANY|ALL} BITS {ON|OFF} mask.
  • NOT
    Reverses the result of the bit test statement.
  • fldname
    Specifies the name of the field to be tested. Only the first byte is tested. The field must have a data type of BIT or A/N.
  • ALL BITS ON
    Specifies that all of the bits shown as 1 (on) in the mask are 1 in the field. ALL BITS ON is the negation of ANY BITS OFF.
  • ALL BITS OFF
    Specifies that all of the bits shown as 1 (on) in the mask are 0 (off) in the field. ALL BITS OFF is the negation of ANY BITS ON.
  • ANY BITS ON
    Specifies that at least one of the bits shown as 1 (on) in the mask has a corresponding bit on in the field.
  • ANY BITS OFF
    Specifies that at least one of the bits shown as 1 (on) in the mask has a corresponding bit off in the field.
  • mask
    Specifies a mask made up of two hexadecimal digits (0-9 or A-F). You can use 'ab' format or X'ab' format, where 'ab' are hexadecimal digits.

Examples

 

  • To test the value of the FLAG1 field, add the bit test statement:

    IF FLAG1 HAS ALL BITS OFF '04'.
    

    The test is successful only if all of the bits in the flag are 0 (off).

  • To test if either the first or last bit in the FLAG1 field is a 1 (on):

    SELECT IF FLAG1 HAS ANY BITS ON X'81'.