Table values
Hi all,
I am trying to write java code for tJAVAROW in Talend where i would like to form a statement like “select * from ABC where DIFFERENT CONDITIONS”
- If there are DATE_START & DATE_END it should have SYNTAX DATE between ‘0’ & ‘99210331’
- e.g.DATE between ‘0’ & ‘99210331’
- If there are TIME_START & TIME_END it should have SYNTAX TIME between ‘0’ & ‘220000’
- e.g.TIME between ‘0’ & ‘220000’
- If there is no PREFIX _START & _END it should have SYNTAX YEAR IN ‘2015’
- e.g.YEAR IN ‘2015’
Below is the code i wrote, basically it works when i intentionally hardcode variables and pass values , but wont work if i want to read and pass DYNAMICALLY
CharSequence searchString = "DATE_START";
CharSequence searchString2 = "DATE_END";
CharSequence searchString3 = "TIME_START";
CharSequence searchString4 = "TIME_END";
CharSequence searchString5 = "END";
CharSequence searchString6 = "START";
String param_name2 = String.valueOf( input_row.param_name );
String param_value2 = String.valueOf( input_row.param_value );
if (param_name2.contains(searchString))
{
globalMap.put("DATE_START",param_value2 );
System.out.println( "StartDate: " + globalMap.get("DATE_START"));
}
if (param_name2.contains(searchString2))
{
globalMap.put("DATE_END",param_value2);
System.out.println( "DATE_END: " + globalMap.get("DATE_END"));
}
if (param_name2.contains(searchString3))
{
globalMap.put("TIME_START",param_value2);
System.out.println( "TIMEStart: " + globalMap.get("TIME_START"));
}
if (param_name2.contains(searchString4))
{
globalMap.put("TIME_END",param_value2);
System.out.println( "TIME_END: " + globalMap.get("TIME_END"));
}
if (!(param_name2.contains(searchString5)) && !(param_name2.contains(searchString6)) )
{
globalMap.put("ALL",param_value2);
System.out.println( "ALL: " + globalMap.get("ALL"));
globalMap.put("REST",param_name2);
System.out.println( "REST: " + globalMap.get("REST"));
}
if (!(param_name2.contains(searchString5)) && !(param_name2.contains(searchString6)) )
{
context.FINALQuery = context.query+ " where DATE BETWEEN '" +globalMap.get("DATE_START")+ "' and '" +globalMap.get("DATE_END")+ "' AND TIME BETWEEN '" +globalMap.get("TIME_START")+ "' and '" +globalMap.get("TIME_END")+ "' and " +globalMap.get("REST")+ " IN '" +globalMap.get("ALL")+ "';";
}
}
Any suggestions how to write java code to pass values dynamically.
e.g.
- it wont work when we have 2 YEAR1 & YEAR2 as it is hardcoded
- it wont work when we DONT have YEAR1 & YEAR2, ACDAT_START & ACDAT_END as it is hardcoded