Skip to main content

Posts

Showing posts from 2015

How to override parameter set value for a specific parameter in Datastage via unix command line ?

Sometimes you are running a data fix for production in datastage eg. back loading data and you get lazy to create a monstrous SQL just to replicate what the actual job is doing. You find yourself creating a unix script replicating the sequence call to the jobs that only populates the table you are fixing, of course you do not want other jobs in the sequence to be re-run during the fix which will mess up other tables. An then you come across a parameter set in which you only need specific values of the parameter set to be passed with different values eg. Connection details. Now that's simple if your parameter set is not importing environment variables. As per IBM it should just be : dsjob -run -wait -jobstatus -param " paramset.paramfield"="myvalues" MYDSPROJECT my_sample_ds_job see the following link : https://www-01.ibm.com/support/knowledgecenter/SSZJPZ_11.3.0/com.ibm.swg.im.iis.ds.direct.doc/topics/t_ddesref_running_job_command_line.html Its a di

Where can you find .odbc.ini and tnsnames.ora in Datastage server ?

Open up the director log for any Datastage job, you'll notice that after the logs that says  "Starting job..." "Attached Message Handlers: " "Environment variable settings: " Open Up that Environment variable settings logs and you will find a bunch of ENV variables being set at the start for execution. Just copy and paste that in any text editor and search for the ODBCINI for the .odbc.ini and TNS_ADMIN for the tnsnames.ora. You should see the following in the env variable settings logs, it maybe different but it will look the same : ODBCINI=/app/ibm/InformationServer/Server/DSEngine/.odbc.ini /app/ibm/dba/oracle_<version>/product/<version>/client_1/network/admin eg.  TNS_ADMIN=/app/ibm/dba/oracle_11_2/product/11.2.0/client_1/network/admin

How to pass the output of your execute immediate select list in oracle pl/sql to variables ?

This i how i did the dynamic query and pass the output of a select statement from an execute immediate into variables SET ECHO OFF SET SERVEROUTPUT ON SIZE 1000000  SET FEEDBACK ON SET TIMING ON DECLARE  mysql_statement clob; var_record_count number; var_field1 number; var_field2 varchar2(30 CHAR); Begin for my_list in (  select 1 as record_count, 101 as field1, 'record number 1' as field2 from dual union select 2 as record_count, 102 as field1, 'record number 2' as field2 from dual union select 3 as record_count, 103 as field1, 'record number 3' as field2 from dual ) LOOP /*-- build your dynmic sql and assign to a variable --*/ mysql_statement := 'select '||my_list.record_count||', '||my_list.field1||', '''||my_list.field2||''' from dual'; /*-- display your dynamic sql--*/ DBMS_OUTPUT.PUT_LINE(mysql_statement); /*-- execute whatever you sql is using execute immediate and pass the result for

How to get previous day in oracle pl/sql ?

How to get previous day in oracle pl/sql or "simply how to subtract days in a date in oracle pl/sql"? I'm sure there are plenty of ways and tutorials out there, this is simply just my quick reference cheatsheet : SET ECHO OFF SET SERVEROUTPUT ON SIZE 1000000  SET FEEDBACK ON SET TIMING ON declare  l_current_date date; l_previous_date date; begin   l_current_date := sysdate;   l_previous_date := l_Current_Date - 1;   DBMS_OUTPUT.PUT_LINE('current_date|previous_date');   DBMS_OUTPUT.PUT_LINE(l_current_date||'|'||l_previous_date); END; / show errors; -- results

how to search for jobs with specific status in Datastage via command line?

Datastage deployment can be easy but such a pain when it comes to validation. Remember the times when you deployed hundreds or thousand of jobs an you need to validate whether you left one or two jobs un-compiled?  Developers gets lazy at times and so struggle to find ways to simplify stuff and make his life easier with a few commands. The following comes handy in this case... Login on the datatage unix box and execute the following sequence of commands: 1. cd <DSHOME> 2. . ./<dsenvironment variable file> 3. dsjob -ljobs -status  98  <DS_PROJECT> Supply status  = 98 (“Not Compiled”) and the DS Project. This will show all uncompiled job list in your DS Project environment. bash-4.2$ cd /app/ibm/InformationServer/Server/DSEngine bash-4.2$ . ./dsenv bash-4.2$ dsjob -ljobs -status 98 MY_DS_PROJECT_DEV DUMMY_ACTIVITY DUMMY _MEMBER DUMMY _LEAD DUMMY _OPPORTUNITY DUMMY _HISTORY DUMMY _PRODUCT DUMMY _RECORD DUMMY _USER Status co