wrong number of parameters

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
dsdevper
Premium Member
Premium Member
Posts: 86
Joined: Tue Aug 19, 2008 9:31 am

wrong number of parameters

Post by dsdevper »

Hi I am using lookup stage in which i have to use user generated sql consisting of one environmental variable and job paramater.
i am getting an error :

T_DISTRICT,0: Fatal Error: Fatal: [IBM][CLI Driver] CLI0100E Wrong number of parameters. SQLSTATE=07001
DSTAGE-DB2CLI-0027`:`SQLExecDirect: Error executing statement 'SELECT TA2008.T_DISTRICT.I_DISTRICT,TA2008.T_DISTRICT.C_STATUS_DIST,TA2008.T_DISTRICT.D_STATUS_DIST,TA2008.T_DISTRICT.C_TYPE_DIST,TA2008.T_DISTRICT.C_DIST_CHART_TYPE,TA2008.T_DISTRICT.C_STATUS_FSP,TA2008.T_DISTRICT.I_REGION,TA2008.T_DISTRICT.PEIMS_ESC,TA2008.T_DISTRICT.I_GEO_REGION,TA2008.T_DISTRICT.N_DISTRICT,TA2008.T_DISTRICT.I_COUNTY FROM TA2008.T_DISTRICT WHERE TA2008.T_DISTRICT.I_DISTRICT=? AND I_DISTRICT = '255000''. See following DB2 message for details.


query i am using is:

SELECT #$SN##year#.T_DISTRICT.I_DISTRICT,#$SN##year#.T_DISTRICT.C_STATUS_DIST,#$SN##year#.T_DISTRICT.D_STATUS_DIST,#$SN##year#.T_DISTRICT.C_TYPE_DIST,#$SN##year#.T_DISTRICT.C_DIST_CHART_TYPE,#$SN##year#.T_DISTRICT.C_STATUS_FSP,#$SN##year#.T_DISTRICT.I_REGION,#$SN##year#.T_DISTRICT.PEIMS_ESC,#$SN##year#.T_DISTRICT.I_GEO_REGION,#$SN##year#.T_DISTRICT.N_DISTRICT,#$SN##year#.T_DISTRICT.I_COUNTY FROM #$SN##year#.T_DISTRICT WHERE #$SN##year#.T_DISTRICT.I_DISTRICT=? AND I_DISTRICT = '255000';

$SN is environmental varible TA.
year is job parameter 2008.

To be strange when i am using SQL generated by coloumn list it is running correctly:

SELECT TA2008.T_DISTRICT.I_DISTRICT,TA2008.T_DISTRICT.C_STATUS_DIST,TA2008.T_DISTRICT.D_STATUS_DIST,TA2008.T_DISTRICT.C_TYPE_DIST,TA2008.T_DISTRICT.C_DIST_CHART_TYPE,TA2008.T_DISTRICT.C_STATUS_FSP,TA2008.T_DISTRICT.I_REGION,TA2008.T_DISTRICT.PEIMS_ESC,TA2008.T_DISTRICT.I_GEO_REGION,TA2008.T_DISTRICT.N_DISTRICT,TA2008.T_DISTRICT.I_COUNTY FROM TA2008.T_DISTRICT WHERE TA2008.T_DISTRICT.I_DISTRICT=? AND I_DISTRICT = '255000';

Please help.

Thanks
dsdevper
Premium Member
Premium Member
Posts: 86
Joined: Tue Aug 19, 2008 9:31 am

Post by dsdevper »

In the above post i am using DB2 stage for lookup.

my source and target are also DB2 stages
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Look in the job log to verify that the job parameters are all being resolved correctly and, indeed, that the correct number of parameter markers (corresponding to the column names on the link) are being supplied. It is in the latter area that the fault most probably lies.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
dsdevper
Premium Member
Premium Member
Posts: 86
Joined: Tue Aug 19, 2008 9:31 am

Post by dsdevper »

Hi Ray
Ihave changed gnerated sql query by coloumns "SELECT TA2008.T_DISTRICT.I_DISTRICT,TA2008.T_DISTRICT.C_STATUS_DIST,TA2008.T_DISTRICT.D_STATUS_DIST,TA2008.T_DISTRICT.C_TYPE_DIST,TA2008.T_DISTRICT.C_DIST_CHART_TYPE,TA2008.T_DISTRICT.C_STATUS_FSP,TA2008.T_DISTRICT.I_REGION,TA2008.T_DISTRICT.PEIMS_ESC,TA2008.T_DISTRICT.I_GEO_REGION,TA2008.T_DISTRICT.N_DISTRICT,TA2008.T_DISTRICT.I_COUNTY FROM TA2008.T_DISTRICT WHERE TA2008.T_DISTRICT.I_DISTRICT=? AND I_DISTRICT = '255000'; " to Enter custom sql query and removed TA2008.T_DISTRICT.I_DISTRICT=? from the above query in the lookup DB2 stage..

Then it worked.

But i am not sure this is the correct way or not.

Please let me know.

Thanks
Suman.
dsdevper
Premium Member
Premium Member
Posts: 86
Joined: Tue Aug 19, 2008 9:31 am

Post by dsdevper »

Hi Ray
Ihave changed gnerated sql query by coloumns "SELECT TA2008.T_DISTRICT.I_DISTRICT,TA2008.T_DISTRICT.C_STATUS_DIST,TA2008.T_DISTRICT.D_STATUS_DIST,TA2008.T_DISTRICT.C_TYPE_DIST,TA2008.T_DISTRICT.C_DIST_CHART_TYPE,TA2008.T_DISTRICT.C_STATUS_FSP,TA2008.T_DISTRICT.I_REGION,TA2008.T_DISTRICT.PEIMS_ESC,TA2008.T_DISTRICT.I_GEO_REGION,TA2008.T_DISTRICT.N_DISTRICT,TA2008.T_DISTRICT.I_COUNTY FROM TA2008.T_DISTRICT WHERE TA2008.T_DISTRICT.I_DISTRICT=? AND I_DISTRICT = '255000'; " to Enter custom sql query and removed TA2008.T_DISTRICT.I_DISTRICT=? from the above query in the lookup DB2 stage..

Then it worked.

But i am not sure this is the correct way or not.

Please let me know.

Thanks
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

At one level it's correct because it works. However you have not ascertained why what you tried earlier does not work. Knowing this would perhaps allow you to create more efficient jobs in future.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
dongyingying
Participant
Posts: 35
Joined: Tue Feb 07, 2012 2:28 am
Location: China BeiJing

Post by dongyingying »

Hi ,dsdevper

Did you get the answer about issue?Today I met one .
Dong Ying Ying Come on.
BI-RMA
Premium Member
Premium Member
Posts: 463
Joined: Sun Nov 01, 2009 3:55 pm
Location: Hamburg

Post by BI-RMA »

The original SQL-Statement looks a bit strange to me because the same column in the queried table is referenced twice in the where-clause - once fully qualified and once only by column-name. Looks to me like DB2 does not like this construct. Just a guess. I did not test that.
"It is not the lucky ones are grateful.
There are the grateful those are happy." Francis Bacon
Post Reply