Datamaker: Test Matching Condition getting cut off and causing ORA-0907 error at runtime

Document ID : KB000004481
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

In the data painter screen of Datamaker we have a case statement written for a Test Matching condition. During validating, the statement is getting cut off after first quoted string. 

This is causing an "ORA-0907:missing right parenthesis" error at run-time.

For example, the statement used is:

@case(~Var1~='ValueA', usecase_col_val in ('ABC','PQR','XYZ'),~Var1~='ValueB',usecase_col_val in ('DEF'))@ 

With this statement, during validation in data painter, the statement is getting cut off after 'ABC'.

Environment:
Datamaker 3.2.2 and later
Cause:

The issue is caused due to a limitation of Powerbuilder, the platform on which Datamaker is written.

Resolution:

We need to apply a workaround of enclosing the entire value component used in the case statement within double-quotes if there are multiple single-quoted values used in the expression.

So in the example above, we would need to put double-quotes around:

usecase_col_val in ('ABC','PQR','XYZ')

 

The entire statement would then have to be written as:

@case(~Var1~='ValueA', "usecase_col_val in ('ABC','PQR','XYZ')",~Var1~='ValueB',usecase_col_val in ('DEF'))@ 

 

Note that you do not need to use double quotes around: usecase_col_val in ('DEF'). This is because only one single-quoted value is referenced here, and the workaround needs to be applied only when multiple single-quoted values are used.

Additional Information:

This issue is has been fixed in the TDM Web Portal, and no workaround needs to be applied.