While working with a client’s 9.1 DataStage version, I ran into a situation where they wanted to parameterize SQL where clause lists in an Oracle Connector stage, which honestly was not very straight forward to figure out. First, if the APT_OSL_PARAM_ESC_SQUOTE is not set and single quotes are used in the parameter, the job creates unquoted invalid SQL when the parameter is populated. Second, I found much of the information confusing and/or incomplete in its explanation. After some research and some trial and error, here is how I resolved the issue. I’ll endeavor to be concise, but holistic in my explanation.
When this Variable applies
This where I know this process applies, there may be other circumstances to which is this applicable, but I’m listing the ones here with which I have recent experience.
Infosphere Information Server Datastage
- Versions 91, 11.3, and 11.5
Oracle RDBMS
- Versions 11g and 12c
Configurations process
Here is a brief explanation of the steps I used to implement the where clause as a parameter. Please note that in this example, I am using a job parameter to populate on a portion of the where clause, you can certainly pass the entire where clause as a parameter, if it is not too long.
Configure Project Variable in Administrator
- Add APT_OSL_PARAM_ESC_SQUOTE to project in Administrator
- Populate the APT_OSL_PARAM_ESC_SQUOTE Variable
Create job parameter
Following your project name convention or standard practice, if you customer and/or project do not have established naming conventions, create the job parameter in the job. See jp_ItemSource parameter in the image below.
Add job parameter to Custom SQL in Select Oracle Connector Stage
On the Job parameter has been created, add the job parameter to the SQL statement of the job.
Perfect. It helped me a lot. Thanks