Striim 3.9.7 documentation

IS_PRESENT()

IS_PRESENT (<stream name>, [ before | data ], <field number>)

For each event, returns true or false depending on whether the before or data array has a value for the specified field. For example, if you performed the following update on an Oracle table:

UPDATE POSAUTHORIZATIONS SET BUSINESS_NAME = 'COMPANY 5A' where pos=0;

The WAEvent for that update would look something like this:

data: ["COMPANY 5A","D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu","6705362103919221351",
 "0","20130309113025","0916","USD","2.2","5150279519809946","41363","Quicksand"]
before: ["COMPANY 1",null,null,null,null,null,null,null,null,null,null]

You could use the following code to return values for the updated data fields and NOT_UPDATED for the other fields:

SELECT
  CASE WHEN IS_PRESENT(OracleCDCStream,before,0)==true THEN data[0].toString()
    ELSE "NOT_UPDATED"
  END,
  CASE WHEN IS_PRESENT(OracleCDCStream,before,1)==true THEN data[1].toString()
    ELSE "NOT_UPDATED"
  END ...