Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / DB2 Topics / June 2007

Tip: Looking for answers? Try searching our database.

DB2 V7 CLP 'Input line too long' problem

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Graham Hobbs - 26 Jun 2007 04:11 GMT
Hello, Help please,

I use a Cobol program, that based on a DCLGEN input, creates a DDL
file to create a test table.
Typically my DCLGEN's are just a few columns each. The Cobol program
generates a file MYDDL.CMD which when run in a DB2 CLP (command line
processor) works OK.

Until I tried a 'big' DCLGEN.

Below is a CMD file that went wrong. The CREATE record below is
wrapped because of Notepad. All the recs are 10K bytes, the CREATE
stmt occupying the first 3426 bytes.

The MYDDL.CMD is:

DB2 CONNECT TO ORG3
DB2 DROP TABLE U.TEMPL
DB2 CREATE TABLE U.TEMPL ( I_EMPL INTEGER NOT NULL, X_ASSGND_CURR
CHAR(20) NOT NULL, X_ASSGND_PRIOR CHAR(20) NOT NULL, D_ASSGND_CURR
INTEGER NOT NULL, I_TLX_CBL CHAR(20) NOT NULL, D_EXEC_SERV INTEGER NOT
NULL, D_INTNL_SERV INTEGER NOT NULL, L_FICA_ELIG CHAR(1) NOT NULL,
C_INTNL_ASSGND CHAR(1) NOT NULL, C_INTNL_GRP CHAR(4) NOT NULL, D_INCR
INTEGER NOT NULL, C_INCR_TYP CHAR(1) NOT NULL, A_INCR DECIMAL(11,02)
NOT NULL, P_INCR DECIMAL(5,02) NOT NULL, L_EMPL_HSHIP CHAR(1) NOT
NULL, I_EMERG INTEGER NOT NULL, D_CORP INTEGER NOT NULL, I_DEPT
DECIMAL(4,00) NOT NULL, C_CLF CHAR(6) NOT NULL, C_EMPL_GR CHAR(2) NOT
NULL, I_GRP CHAR(4) NOT NULL, L_STAT DECIMAL(1,00) NOT NULL,
L_INTNL_STAT DECIMAL(1,00) NOT NULL, A_MNTLY_SAL DECIMAL(11,02) NOT
NULL, I_CORPLOC CHAR(4) NOT NULL, L_MGMT_TRNEE CHAR(1) NOT NULL,
D_CREDTD_SERV INTEGER NOT NULL, D_INACTV_STRT INTEGER NOT NULL,
D_WRKD_LAST INTEGER NOT NULL, A_BASE_RATE DECIMAL(8,02) NOT NULL,
D_PAY_THRU INTEGER NOT NULL, D_SEN INTEGER NOT NULL, Q_VAC_PD
DECIMAL(3,01) NOT NULL, Q_VAC_PD_PREV DECIMAL(3,01) NOT NULL,
C_REHIRE_RECMN CHAR(1) NOT NULL, A_AWD DECIMAL(8,02) NOT NULL, I_CLF
CHAR(6) NOT NULL, C_CLF_SUFF DECIMAL(3,00) NOT NULL, C_TYP CHAR(1) NOT
NULL, D_UPD INTEGER NOT NULL, T_UPD INTEGER NOT NULL, I_LOGON CHAR(7)
NOT NULL, N_CMPTRPGM CHAR(8) NOT NULL, D_HIRE INTEGER NOT NULL,
D_GAIN_SEN INTEGER NOT NULL, C_EMPL_SHFT CHAR(1) NOT NULL,
I_MSTR_CANDN CHAR(5) NOT NULL, C_PHYS_WORK_LOC CHAR(4) NOT NULL,
I_SUPVR_GRP CHAR(3) NOT NULL, C_LVL SMALLINT NOT NULL, I_CIMS CHAR(7)
NOT NULL, D_PHYS_REVW INTEGER NOT NULL, L_I_9 CHAR(1) NOT NULL,
D_PROGN_CALCN INTEGER NOT NULL, I_SKLD_EMPL_RET DECIMAL(4,00) NOT
NULL, I_NSKLD_EMPL_SEN DECIMAL(4,00) NOT NULL, L_PLT_ELECTN_REQD
CHAR(1) NOT NULL, L_PLT_ELECTN_MADE CHAR(1) NOT NULL, I_BADGE CHAR(8)
NOT NULL, D_BADGE INTEGER NOT NULL, C_CLF_PRE CHAR(1) NOT NULL,
C_SEPN_RATNG_ALL CHAR(4) NOT NULL, D_120_DAY INTEGER NOT NULL,
C_AUTH_CLS CHAR(3) NOT NULL, L_TAX_CR CHAR(1) NOT NULL, L_TAX_CR_FLWP
CHAR(1) NOT NULL, L_RED_CRCL CHAR(1) NOT NULL, C_BOND_DENOM CHAR(2)
NOT NULL, A_BOND_DED DECIMAL(7,02) NOT NULL, D_NSKLD_SEN INTEGER NOT
NULL, D_PROGN_1 INTEGER NOT NULL, D_PROGN_2 INTEGER NOT NULL,
D_PROGN_3 INTEGER NOT NULL, D_SKLD_SEN INTEGER NOT NULL, D_ENTRY_UPGRR
INTEGER NOT NULL, D_ENTRY_INDTR INTEGER NOT NULL, D_PARNT_SEN INTEGER
NOT NULL, C_PARNT_CORPLOC CHAR(4) NOT NULL, C_SHFT_PREFD CHAR(1) NOT
NULL, D_SHFT_APPLY INTEGER NOT NULL, D_SHFT_ELIG INTEGER NOT NULL,
C_EMPL_TYP CHAR(1) NOT NULL, I_UNION CHAR(5) NOT NULL, I_UNION_LCL
CHAR(5) NOT NULL, C_PERS_SUFF CHAR(4) NOT NULL, C_PERS CHAR(2) NOT
NULL, D_TRAN_EFFCTV INTEGER NOT NULL, Q_HRS_IN_PGM DECIMAL(4,00) NOT
NULL, X_TAX_CR CHAR(30) NOT NULL, C_CLF_ADDON CHAR(1) NOT NULL,
A_CLF_ADDON DECIMAL(5,02) NOT NULL, C_CLF_RATE_TYP CHAR(2) NOT NULL,
L_ATTDNC_CHRNC CHAR(1) NOT NULL, L_EMPL_SA_CHRNC CHAR(1) NOT NULL,
L_EMPL_AMC_PREV CHAR(1) NOT NULL, C_EMPL_SEPN CHAR(2) NOT NULL,
D_EMPL_SEPN INTEGER NOT NULL, L_EMPL_BADGE_STAT CHAR(1) NOT NULL,
D_EMPL_I_9_EXPRN INTEGER NOT NULL, D_EMPL_I_9_CPLN INTEGER NOT NULL,
D_EMPL_I_9_PURG INTEGER NOT NULL, C_EMPL_INCR_NEXT CHAR(2) NOT NULL,
C_EMPL_OCCPTL_GRP CHAR(2) NOT NULL, I_UNION_LCL_UNIT CHAR(2) NOT NULL,
L_EMPL_PROBTN CHAR(1) NOT NULL, C_LABR_TYP CHAR(1) NOT NULL,
L_JOB_TEMPRY_SEN CHAR(1) NOT NULL, C_STRUC_SAL CHAR(2) NOT NULL,
A_EMPL_AMC_RECVD DECIMAL(7,02) NOT NULL, D_PERSN_RET_ANTCP DATE,
PRIMARY KEY ( C_INTNL_GRP ) )

I get...

  Database Connection Information

Database server        = DB2/NT 7.2.5
SQL authorization ID   = ADMINIST...
Local database alias   = ORG3

DB20000I  The SQL command completed successfully.
The input line is too long.

E:\conrad\demo>

Both CONNECT and DROP seemed to be OK. So I went looking for 'how big
can a CLP SQL stmt be'? Well, I can't get to my DB2 V7 documentation
(dont ask, long ugly story) so I went to DB2 V9 documentation where it
says CLP stmts can now be 2M whereas older DB2's were only 64K.

So, given a record of 10K, 3426 of which is SQL stmt (both numbers
well under 64K), other smaller DCLGEN's work without problem, my
question is why do I get 'The input line is too long'. Something silly
I've missed.

Sorry for length of post, any help please, thanks.
Graham Hobbs

Signature

Posted via a free Usenet account from http://www.teranews.com

Jan M. Nelken - 26 Jun 2007 05:19 GMT
> Until I tried a 'big' DCLGEN.
>
[quoted text clipped - 8 lines]
> DB2 CREATE TABLE U.TEMPL ( I_EMPL INTEGER NOT NULL, X_ASSGND_CURR
> CHAR(20) NOT NULL, X_ASSGND_PRIOR CHAR(20) NOT NULL, D_ASSGND_CURR

Try edit MYDDL>CMD and remove DB2<blank> from beginning of each line
containing it.

Termiante each command line with semicolon (;).

Then run it as DB2 CLP script:

DB2 -tvf MYDDL.CMD -z MYDDL.CMD.OUT

Your MYDDL.CMD should look like this ( I corrected syntax error whereby
there was a comma after last column - D_PERSN_RET_ANTCP - definition):

-------------------------------------------------------------------

CONNECT TO ORG3;
DROP TABLE U.TEMPL;
CREATE TABLE U.TEMPL
   (
   I_EMPL INTEGER NOT NULL,
   X_ASSGND_CURR CHAR(20) NOT NULL,
   X_ASSGND_PRIOR CHAR(20) NOT NULL,
   D_ASSGND_CURR INTEGER NOT NULL,
   I_TLX_CBL CHAR(20) NOT NULL,
   D_EXEC_SERV INTEGER NOT NULL,
   D_INTNL_SERV INTEGER NOT NULL,
   L_FICA_ELIG CHAR(1) NOT NULL,
   C_INTNL_ASSGND CHAR(1) NOT NULL,
   C_INTNL_GRP CHAR(4) NOT NULL,
   D_INCR INTEGER NOT NULL,
   C_INCR_TYP CHAR(1) NOT NULL,
   A_INCR DECIMAL(11,02) NOT NULL,
   P_INCR DECIMAL(5,02) NOT NULL,
   L_EMPL_HSHIP CHAR(1) NOT NULL,
   I_EMERG INTEGER NOT NULL,
   D_CORP INTEGER NOT NULL,
   I_DEPT DECIMAL(4,00) NOT NULL,
   C_CLF CHAR(6) NOT NULL,
   C_EMPL_GR CHAR(2) NOT NULL,
   I_GRP CHAR(4) NOT NULL,
   L_STAT DECIMAL(1,00) NOT NULL,
   L_INTNL_STAT DECIMAL(1,00) NOT NULL,
   A_MNTLY_SAL DECIMAL(11,02) NOT NULL,
   I_CORPLOC CHAR(4) NOT NULL,
   L_MGMT_TRNEE CHAR(1) NOT NULL,
   D_CREDTD_SERV INTEGER NOT NULL,
   D_INACTV_STRT INTEGER NOT NULL,
   D_WRKD_LAST INTEGER NOT NULL,
   A_BASE_RATE DECIMAL(8,02) NOT NULL,
   D_PAY_THRU INTEGER NOT NULL,
   D_SEN INTEGER NOT NULL,
   Q_VAC_PD DECIMAL(3,01) NOT NULL,
   Q_VAC_PD_PREV DECIMAL(3,01) NOT NULL,
   C_REHIRE_RECMN CHAR(1) NOT NULL,
   A_AWD DECIMAL(8,02) NOT NULL,
   I_CLF CHAR(6) NOT NULL,
   C_CLF_SUFF DECIMAL(3,00) NOT NULL,
   C_TYP CHAR(1) NOT NULL,
   D_UPD INTEGER NOT NULL,
   T_UPD INTEGER NOT NULL,
   I_LOGON CHAR(7) NOT NULL,
   N_CMPTRPGM CHAR(8) NOT NULL,
   D_HIRE INTEGER NOT NULL,
   D_GAIN_SEN INTEGER NOT NULL,
   C_EMPL_SHFT CHAR(1) NOT NULL,
   I_MSTR_CANDN CHAR(5) NOT NULL,
   C_PHYS_WORK_LOC CHAR(4) NOT NULL,
   I_SUPVR_GRP CHAR(3) NOT NULL,
   C_LVL SMALLINT NOT NULL,
   I_CIMS CHAR(7) NOT NULL,
   D_PHYS_REVW INTEGER NOT NULL,
   L_I_9 CHAR(1) NOT NULL,
   D_PROGN_CALCN INTEGER NOT NULL,
   I_SKLD_EMPL_RET DECIMAL(4,00) NOT NULL,
   I_NSKLD_EMPL_SEN DECIMAL(4,00) NOT NULL,
   L_PLT_ELECTN_REQD CHAR(1) NOT NULL,
   L_PLT_ELECTN_MADE CHAR(1) NOT NULL,
   I_BADGE CHAR(8) NOT NULL,
   D_BADGE INTEGER NOT NULL,
   C_CLF_PRE CHAR(1) NOT NULL,
   C_SEPN_RATNG_ALL CHAR(4) NOT NULL,
   D_120_DAY INTEGER NOT NULL,
   C_AUTH_CLS CHAR(3) NOT NULL,
   L_TAX_CR CHAR(1) NOT NULL,
   L_TAX_CR_FLWP CHAR(1) NOT NULL,
   L_RED_CRCL CHAR(1) NOT NULL,
   C_BOND_DENOM CHAR(2) NOT NULL,
   A_BOND_DED DECIMAL(7,02) NOT NULL,
   D_NSKLD_SEN INTEGER NOT NULL,
   D_PROGN_1 INTEGER NOT NULL,
   D_PROGN_2 INTEGER NOT NULL,
   D_PROGN_3 INTEGER NOT NULL,
   D_SKLD_SEN INTEGER NOT NULL,
   D_ENTRY_UPGRR INTEGER NOT NULL,
   D_ENTRY_INDTR INTEGER NOT NULL,
   D_PARNT_SEN INTEGER NOT NULL,
   C_PARNT_CORPLOC CHAR(4) NOT NULL,
   C_SHFT_PREFD CHAR(1) NOT NULL,
   D_SHFT_APPLY INTEGER NOT NULL,
   D_SHFT_ELIG INTEGER NOT NULL,
   C_EMPL_TYP CHAR(1) NOT NULL,
   I_UNION CHAR(5) NOT NULL,
   I_UNION_LCL CHAR(5) NOT NULL,
   C_PERS_SUFF CHAR(4) NOT NULL,
   C_PERS CHAR(2) NOT NULL,
   D_TRAN_EFFCTV INTEGER NOT NULL,
   Q_HRS_IN_PGM DECIMAL(4,00) NOT NULL,
   X_TAX_CR CHAR(30) NOT NULL,
   C_CLF_ADDON CHAR(1) NOT NULL,
   A_CLF_ADDON DECIMAL(5,02) NOT NULL,
   C_CLF_RATE_TYP CHAR(2) NOT NULL,
   L_ATTDNC_CHRNC CHAR(1) NOT NULL,
   L_EMPL_SA_CHRNC CHAR(1) NOT NULL,
   L_EMPL_AMC_PREV CHAR(1) NOT NULL,
   C_EMPL_SEPN CHAR(2) NOT NULL,
   D_EMPL_SEPN INTEGER NOT NULL,
   L_EMPL_BADGE_STAT CHAR(1) NOT NULL,
   D_EMPL_I_9_EXPRN INTEGER NOT NULL,
   D_EMPL_I_9_CPLN INTEGER NOT NULL,
   D_EMPL_I_9_PURG INTEGER NOT NULL,
   C_EMPL_INCR_NEXT CHAR(2) NOT NULL,
   C_EMPL_OCCPTL_GRP CHAR(2) NOT NULL,
   I_UNION_LCL_UNIT CHAR(2) NOT NULL,
   L_EMPL_PROBTN CHAR(1) NOT NULL,
   C_LABR_TYP CHAR(1) NOT NULL,
   L_JOB_TEMPRY_SEN CHAR(1) NOT NULL,
   C_STRUC_SAL CHAR(2) NOT NULL,
   A_EMPL_AMC_RECVD DECIMAL(7,02) NOT NULL,
   D_PERSN_RET_ANTCP DATE
   PRIMARY KEY
      (
      C_INTNL_GRP
      )
   );
-------------------------------------------------------------------
Graham Hobbs - 28 Jun 2007 00:28 GMT
Jan
Thanks for the sample - is good.
Usually when I start a DB2 CLP I issue a 'quit' so then I'm with a DOS
prompt, thus my CMD needs the DB2<space>. You're way never crossed my
mind:-(
Was still wondering about the 64000 question? Manual says that.
Graham
PS.
this worked with a comma before the PRIMARY
DB2 CONNECT TO WCB3
DB2 DROP TABLE SMALL1
DB2 CREATE TABLE SMALL1 ( ABIGINT BIGINT NOT NULL,
KYA1 CHAR (4) NOT NULL, KYA2 CHAR (5) NOT NULL,
KYB1 CHAR (6) NOT NULL, ATIME TIME NOT NULL WITH DEFAULT,
ATIMESTAMP TIMESTAMP WITH DEFAULT, PRIMARY KEY ( KYA1, KYA2 ) )
might a different DB2 version do that.


>> Until I tried a 'big' DCLGEN.
>>
[quoted text clipped - 143 lines]
>    );
>-------------------------------------------------------------------

Signature

Posted via a free Usenet account from http://www.teranews.com

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.