Sample TQL application using change data
The following sample application uses OracleReader but the approach is the same for all CDC readers.
CREATE APPLICATION SampleCDCApp; CREATE SOURCE OracleCDCIn USING OracleReader ( Username:'striim', Password:'passwd', ConnectionURL:'203.0.113.49:1521:orcl', Tables:'MYSCHEMA.POSAUTHORIZATIONS', FetchSize:1 ) OUTPUT TO OracleCDCStream; CREATE TYPE PosMeta( tableName String, operationName String, txnID String, timestamp String ); CREATE STREAM PosMetaStream OF PosMeta; CREATE TYPE PosData( businessName String, accountName String, pos String, code String ); CREATE STREAM PosDataStream OF PosData; -- extract the metadata values CREATE CQ OracleToPosMeta INSERT INTO PosMetaStream SELECT META(m,"TableName").toString(), META(m,"OperationName").toString(), META(m,"TxnID").toString(), META(m,"TimeStamp").toString() FROM OracleCDCStream m; -- write the metadata values to SysOut CREATE TARGET Metadump USING SysOut(name:meta) INPUT FROM PosMetaStream; -- extract the data values CREATE CQ OracleToPosData INSERT INTO PosDataStream SELECT CASE WHEN IS_PRESENT(x,data,0)==true THEN data[0].toString() ELSE "NOT_PRESENT" END, CASE WHEN IS_PRESENT(x,data,1)==true THEN data[1].toString() ELSE "NOT_PRESENT" END, CASE WHEN IS_PRESENT(x,data,2)==true THEN data[2].toString() ELSE "NOT_PRESENT" END, CASE WHEN IS_PRESENT(x,data,3)==true THEN data[3].toString() ELSE "NOT_PRESENT" END FROM OracleCDCStream x; -- write dump the data values to SysOut CREATE TARGET Datadump USING SysOut(name:data) INPUT FROM PosDataStream; END APPLICATION SampleCDCApp;
The output for the three operations described in OracleReader example output would be similar to:
meta: PosMeta_1_0{ tableName: "SCOTT.POSAUTHORIZATIONS" operationName: "INSERT" txnID: "4.0.1742" timestamp: "2015-12-11T16:31:30.000-08:00" }; data: PosData_1_0{ businessName: "COMPANY 1" accountName: "D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu" pos: "6705362103919221351" code: "0" }; meta: PosMeta_1_0{ tableName: "SCOTT.POSAUTHORIZATIONS" operationName: "UPDATE" txnID: "4.0.1742" timestamp: "2015-12-11T16:31:30.000-08:00" }; data: PosData_1_0{ businessName: "COMPANY 5A" accountName: "D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu" pos: "6705362103919221351" code: "0" }; meta: PosMeta_1_0{ tableName: "SCOTT.POSAUTHORIZATIONS" operationName: "DELETE" txnID: "4.0.1742" timestamp: "2015-12-11T16:31:30.000-08:00" }; data: PosData_1_0{ businessName: "COMPANY 5A" accountName: "D6RJPwyuLXoLqQRQcOcouJ26KGxJSf6hgbu" pos: "6705362103919221351" code: "0" };