dbTalk Databases Forums  

HELP !!!

comp.databases.ibm-db2 comp.databases.ibm-db2


Discuss HELP !!! in the comp.databases.ibm-db2 forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
eap90210
 
Posts: n/a

Default HELP !!! - 05-22-2006 , 11:13 AM






Hi to all ng

(sorry for my bad english)

I have a problem. in a "c" progam I write an dynamic sql that in run-time
give me an error sqlcode = -104 SQLSTATE[42601].
I read in a document (Message Reference ) that come to aid that read a
sqllerm. Infact the sqlerrm told you at what point the token should be ok.
So I modify my program but the print out of sqlerrm does not help me.
Probably I don't keep the right piece, because i don't know the struct of
sqlca.
So I try to print-out an sql in a log file, and I execute directly in clp.
in thi s case work!!
so the sql is here
"insert into inventari_det (
NVD_NVT_NUMERO_DOCUMENTO , NVD_NUMERO_RIGA ,
NVD_UBI_LOC_LOCALITA_1 , NVD_UBI_UBICAZIONE_1 ,
NVD_PRIMO_LIVELLO_1 , NVD_SECONDO_LIVELLO_1 ,
NVD_TERZO_LIVELLO_1 , NVD_QUARTO_LIVELLO_1 ,
NVD_ANA_TIPO_ANAGRAFICA , NVD_ANA_CODICE_SAP ,
NVD_STATO_MATERIALE , NVD_TIPO_MATERIALE ,
NVD_TRZ_TIPO_TERZO , NVD_TRZ_CODICE_TERZO ,
NVD_RDA , NVD_SERIAL_NUMBER_1 ,
NVD_QUANTITA_1 , NVD_GST_PROGRESSIVO_INTERNO ,
NVD_ORDINE_USCITA_1 , NVD_RIGA_ORDINE_USCITA_1 ,
NVD_ETICHETTA_1 , NVD_GERARCHIA ,
NVD_GST_GST_PROGRESSIVO_INT, NVD_DATA_CREAZIONE ,
NVD_UTENTE_CREAZIONE
) select 65 , row_number() over() ,
DWH_MAG_UBI_LOC_LOCALITA , DWH_MAG_UBI_UBICAZIONE ,
DWH_MAG_PRIMO_LIVELLO , DWH_MAG_SECONDO_LIVELLO,
DWH_MAG_TERZO_LIVELLO , DWH_MAG_QUARTO_LIVELLO ,
DWH_ANA_TIPO_ANAGRAFICA , DWH_ANA_CODICE_SAP ,
DWH_STATO_PALLET , DWH_TIPO_STOCK ,
DWH_TRZ_TIPO_TERZO , DWH_TRZ_CODICE_TERZO ,
DWH_RIFERIMENTO_RDA , DWH_SERIAL_NUMBER ,
DWH_QUANTITA , DWH_PROGRESSIVO_INTERNO,
DWH_NUMERO_ORDINE , DWH_NUMERO_RIGA ,
DWH_NUMERO_ETICHETTA , DWH_GERARCHIA ,
DWH_GST_PROGRESSIVO_INTERNO, current date ,
'InvCreaDet'
from dwh_stock x
where DWH_ANA_TIPO_ANAGRAFICA in ( substr( 'F' , posstr( 'F' , '-' ) +
1 ) , substr( 'F' , posstr( 'F' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_LOC_LOCALITA in ( substr( 'WF1' , posstr( 'WF1' , '-' ) + 1 )
, substr( 'WF1' , posstr( 'WF1' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_UBICAZIONE in ( substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' ,
'-' ) + 1 ) , substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' , '-' ) + 1 ) )
AND
DWH_NVT_NUMERO_DOCUMENTO is null
AND DWH_DATA_REGISTRAZIONE <= date('05/22/2006')
and DWH_DATA_REGISTRAZIONE = ( select max(a.DWH_DATA_REGISTRAZIONE)
from dwh_stock a where a.DWH_DATA_REGISTRAZIONE <=
date('05/22/2006')
and x.DWH_PROGRESSIVO_INTERNO = a.DWH_PROGRESSIVO_INTERNO)
"

SOMEONE SEE the error ??? Suggest me another way to solve this problem I
pray you !!!

thaks in advance

regards
sergio



Reply With Quote
  #2  
Old   
Serge Rielau
 
Posts: n/a

Default Re: HELP !!! - 05-22-2006 , 05:37 PM






eap90210 wrote:
Quote:
Hi to all ng

(sorry for my bad english)

I have a problem. in a "c" progam I write an dynamic sql that in run-time
give me an error sqlcode = -104 SQLSTATE[42601].
I read in a document (Message Reference ) that come to aid that read a
sqllerm. Infact the sqlerrm told you at what point the token should be ok.
So I modify my program but the print out of sqlerrm does not help me.
Probably I don't keep the right piece, because i don't know the struct of
sqlca.
So I try to print-out an sql in a log file, and I execute directly in clp.
in thi s case work!!
so the sql is here
"insert into inventari_det (
NVD_NVT_NUMERO_DOCUMENTO , NVD_NUMERO_RIGA ,
NVD_UBI_LOC_LOCALITA_1 , NVD_UBI_UBICAZIONE_1 ,
NVD_PRIMO_LIVELLO_1 , NVD_SECONDO_LIVELLO_1 ,
NVD_TERZO_LIVELLO_1 , NVD_QUARTO_LIVELLO_1 ,
NVD_ANA_TIPO_ANAGRAFICA , NVD_ANA_CODICE_SAP ,
NVD_STATO_MATERIALE , NVD_TIPO_MATERIALE ,
NVD_TRZ_TIPO_TERZO , NVD_TRZ_CODICE_TERZO ,
NVD_RDA , NVD_SERIAL_NUMBER_1 ,
NVD_QUANTITA_1 , NVD_GST_PROGRESSIVO_INTERNO ,
NVD_ORDINE_USCITA_1 , NVD_RIGA_ORDINE_USCITA_1 ,
NVD_ETICHETTA_1 , NVD_GERARCHIA ,
NVD_GST_GST_PROGRESSIVO_INT, NVD_DATA_CREAZIONE ,
NVD_UTENTE_CREAZIONE
) select 65 , row_number() over() ,
DWH_MAG_UBI_LOC_LOCALITA , DWH_MAG_UBI_UBICAZIONE ,
DWH_MAG_PRIMO_LIVELLO , DWH_MAG_SECONDO_LIVELLO,
DWH_MAG_TERZO_LIVELLO , DWH_MAG_QUARTO_LIVELLO ,
DWH_ANA_TIPO_ANAGRAFICA , DWH_ANA_CODICE_SAP ,
DWH_STATO_PALLET , DWH_TIPO_STOCK ,
DWH_TRZ_TIPO_TERZO , DWH_TRZ_CODICE_TERZO ,
DWH_RIFERIMENTO_RDA , DWH_SERIAL_NUMBER ,
DWH_QUANTITA , DWH_PROGRESSIVO_INTERNO,
DWH_NUMERO_ORDINE , DWH_NUMERO_RIGA ,
DWH_NUMERO_ETICHETTA , DWH_GERARCHIA ,
DWH_GST_PROGRESSIVO_INTERNO, current date ,
'InvCreaDet'
from dwh_stock x
where DWH_ANA_TIPO_ANAGRAFICA in ( substr( 'F' , posstr( 'F' , '-' ) +
1 ) , substr( 'F' , posstr( 'F' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_LOC_LOCALITA in ( substr( 'WF1' , posstr( 'WF1' , '-' ) + 1 )
, substr( 'WF1' , posstr( 'WF1' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_UBICAZIONE in ( substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' ,
'-' ) + 1 ) , substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' , '-' ) + 1 ) )
AND
DWH_NVT_NUMERO_DOCUMENTO is null
AND DWH_DATA_REGISTRAZIONE <= date('05/22/2006')
and DWH_DATA_REGISTRAZIONE = ( select max(a.DWH_DATA_REGISTRAZIONE)
from dwh_stock a where a.DWH_DATA_REGISTRAZIONE <=
date('05/22/2006')
and x.DWH_PROGRESSIVO_INTERNO = a.DWH_PROGRESSIVO_INTERNO)
"

SOMEONE SEE the error ??? Suggest me another way to solve this problem I
pray you !!!
Just run the statement from the command line or the GUI to get the token.
You got yourself a syntax error. Probably a missing bracket or so...
If all fails: Divide and conquer...
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab


Reply With Quote
  #3  
Old   
eap90210
 
Posts: n/a

Default Re: HELP !!! - 05-23-2006 , 04:08 AM



Best thanks for answer me.

I try to execute the insert but I have not error. For exeute this insert I
write in a file mm.sql and I issue by (db server platform is unix aix)
$ db2 -f mm.sql -t

Any error !! I don't understand !!

Is possible that the dynamic sql that is long major tha 2000 char have a
problem ?
Other thing what does it mean conquer ?

Best regards
sergio

"Serge Rielau" <srielau (AT) ca (DOT) ibm.com> ha scritto nel messaggio
news:4desooF19e624U1 (AT) individual (DOT) net...
Quote:
eap90210 wrote:
Hi to all ng

(sorry for my bad english)

I have a problem. in a "c" progam I write an dynamic sql that in run-time
give me an error sqlcode = -104 SQLSTATE[42601].
I read in a document (Message Reference ) that come to aid that read a
sqllerm. Infact the sqlerrm told you at what point the token should be
ok.
So I modify my program but the print out of sqlerrm does not help me.
Probably I don't keep the right piece, because i don't know the struct of
sqlca.
So I try to print-out an sql in a log file, and I execute directly in
clp. in thi s case work!!
so the sql is here
"insert into inventari_det (
NVD_NVT_NUMERO_DOCUMENTO , NVD_NUMERO_RIGA ,
NVD_UBI_LOC_LOCALITA_1 , NVD_UBI_UBICAZIONE_1 ,
NVD_PRIMO_LIVELLO_1 , NVD_SECONDO_LIVELLO_1 ,
NVD_TERZO_LIVELLO_1 , NVD_QUARTO_LIVELLO_1 ,
NVD_ANA_TIPO_ANAGRAFICA , NVD_ANA_CODICE_SAP ,
NVD_STATO_MATERIALE , NVD_TIPO_MATERIALE ,
NVD_TRZ_TIPO_TERZO , NVD_TRZ_CODICE_TERZO ,
NVD_RDA , NVD_SERIAL_NUMBER_1 ,
NVD_QUANTITA_1 , NVD_GST_PROGRESSIVO_INTERNO ,
NVD_ORDINE_USCITA_1 , NVD_RIGA_ORDINE_USCITA_1 ,
NVD_ETICHETTA_1 , NVD_GERARCHIA ,
NVD_GST_GST_PROGRESSIVO_INT, NVD_DATA_CREAZIONE ,
NVD_UTENTE_CREAZIONE
) select 65 , row_number() over() ,
DWH_MAG_UBI_LOC_LOCALITA , DWH_MAG_UBI_UBICAZIONE ,
DWH_MAG_PRIMO_LIVELLO , DWH_MAG_SECONDO_LIVELLO,
DWH_MAG_TERZO_LIVELLO , DWH_MAG_QUARTO_LIVELLO ,
DWH_ANA_TIPO_ANAGRAFICA , DWH_ANA_CODICE_SAP ,
DWH_STATO_PALLET , DWH_TIPO_STOCK ,
DWH_TRZ_TIPO_TERZO , DWH_TRZ_CODICE_TERZO ,
DWH_RIFERIMENTO_RDA , DWH_SERIAL_NUMBER ,
DWH_QUANTITA , DWH_PROGRESSIVO_INTERNO,
DWH_NUMERO_ORDINE , DWH_NUMERO_RIGA ,
DWH_NUMERO_ETICHETTA , DWH_GERARCHIA ,
DWH_GST_PROGRESSIVO_INTERNO, current date ,
'InvCreaDet'
from dwh_stock x
where DWH_ANA_TIPO_ANAGRAFICA in ( substr( 'F' , posstr( 'F' , '-' )
+ 1 ) , substr( 'F' , posstr( 'F' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_LOC_LOCALITA in ( substr( 'WF1' , posstr( 'WF1' , '-' ) +
) , substr( 'WF1' , posstr( 'WF1' , '-' ) + 1 ) ) AND
DWH_MAG_UBI_UBICAZIONE in ( substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' ,
'-' ) + 1 ) , substr( 'WF1-SAM1' , posstr( 'WF1-SAM1' , '-' ) +
1 ) ) AND
DWH_NVT_NUMERO_DOCUMENTO is null
AND DWH_DATA_REGISTRAZIONE <= date('05/22/2006')
and DWH_DATA_REGISTRAZIONE = ( select max(a.DWH_DATA_REGISTRAZIONE)
from dwh_stock a where a.DWH_DATA_REGISTRAZIONE <=
date('05/22/2006')
and x.DWH_PROGRESSIVO_INTERNO =
a.DWH_PROGRESSIVO_INTERNO)
"

SOMEONE SEE the error ??? Suggest me another way to solve this problem I
pray you !!!
Just run the statement from the command line or the GUI to get the token.
You got yourself a syntax error. Probably a missing bracket or so...
If all fails: Divide and conquer...
Cheers
Serge
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.