View previous topic :: View next topic
|
Author |
Message |
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
Is there any utilty to mock the word-wrap functionality in mainframe?
I have queries that if uploaded into a PS file will have an LRECL of > 100.
Now i use the IKJEFT01 utility to load the data into the tables.however this utilty will take a ps of LRECL 80 at max.
So i need to convert the PS file of LRECL > 100 into one of LRECL 80 by doing a sort of word wrap.
Is there something that can help me? i prefer not using a macro for this . |
|
Back to top |
|
|
shobhit.baijal
New User
Joined: 27 Mar 2009 Posts: 6 Location: Chennai
|
|
|
|
Quote: |
I have queries that if uploaded into a PS file will have an LRECL of > 100. |
Why don't you perform the word wrap before uploading?
Are you uploading from a text file or somewhere else? |
|
Back to top |
|
|
guptae
Moderator
Joined: 14 Oct 2005 Posts: 1208 Location: Bangalore,India
|
|
|
|
Hello pvivekkrishnan,
Would you please rephase your problem? If I understand correctly you want to load db2 table using PS file but no sure what problem you are getting. It will be helpful if you provide Code as well . |
|
Back to top |
|
|
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
No that does not work as a word-wrap does not change the contents of the word/text doc. it merely formats and presents it in a different way. and were you to upload it after word-wrap, it still remains the same. |
|
Back to top |
|
|
guptae
Moderator
Joined: 14 Oct 2005 Posts: 1208 Location: Bangalore,India
|
|
|
|
Still No luck ... Could you provide an example what you want to achieve? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
it might help if instead of a generic description
You would post a sample of the input and the expected output! |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
I'm afraid that your problem is far from clear.
I have used IKJEFT01 to process records in excess of 100 bytes many times.
Perhaps if you gave us some useful information such as a detailed description of what you want to achieve, the code that you are using and the output from the failed runs would be a good start. Unfortunately psychic day was Monday this week. |
|
Back to top |
|
|
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
oK here is a sample:
I have a looong simple query that is
insert into abcdef.xyz (FFF_FF_FF_FF,FFF_FFFCGFGF_HHD,JJJJHHFJJEE_TKHKYP_IKHD,
FKJJKJEE_JKJRT_EJX_GHDHG,FEJHJHJHE_HJHJH_EKHX_DLHJHJHJY_RHJHT,
FEKHKKE_RT_EXHJHJH_CRJHJHJT_DT,FEHJHJHJHJE_RT_EX_CMHHJNHJHC_DT,
FEHJHJE_RHJHJT_DDDEX_SHHHHTO_DHT,FEHJHJHE_RTJHHJH_EX_DHJHJC,
LJHJHST_UPDHJHT_TS,LST_UPDT_USR_ID) VALUES(93232,11222,1,0.233335,3.15068493150685E-05,
'2220-12-23','2220-12-23',NULL,NULL,current timestamp,122);
Please copy paste this stuff in notepad/textpad without word wrap. and once you turn on word wrap that is how i want it to look. |
|
Back to top |
|
|
guptae
Moderator
Joined: 14 Oct 2005 Posts: 1208 Location: Bangalore,India
|
|
|
|
Hello pvivekkrishnan,
So you are trying to run insert rather than Load . Suggest you to provide exact samle i/p file record length & format . Will be able to provid eyou sort card ...the output of which an be directly apply with Dsntiaul /dsnstep2 |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
expat wrote: |
Perhaps if you gave us some useful information such as a detailed description of what you want to achieve, the code that you are using and the output from the failed runs would be a good start. |
Please reread the extract from my original post above.
Please read it very very carefully.
Then take a look at what you have posted.
Where in my post was there a request for the input file.
Where is your post of the required information.
You state that you use IKJEFT01. Well that's really useful isn't it. I use it every single day at work but I bet that you have absolutely no ideas about what I do with it, do you ? .... Well maybe if you saw the code that is being executed it may give you a clue.
So far we know that you upload a file from a PC or server or somewhere. We also know that the LRECL is greater than 100, but you want it to be 80.
This is the sum of information that you think is required to help resolve your problem. Think again !!
Why must it be 80 bytes long.
What does IKJEFT01 do with the data.
What errors do you receive when processing.
Unless you bother to give us what we need to help, please do not expect any help.
I am sorry if I offend you, but IMHO this appears as yet another poorly thought out process with a set solution in mind that can not be deviated from. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
since this is a MAINFRAME oriented forum,
wordpad/textpad are considered foul language
if You speak in TSO terms and wrap the sample with the Code tags
Your benevolence factor will raise a bit and You will get better help!
anyway the reformatting of the long string depends on the utility You will use to load the data
and eventually You will have to write a small REXX script to reformat properly
read the utility documentation about the rules for continuation statements
and have the script take that into account |
|
Back to top |
|
|
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
This is the jcl snippet i use
//JS0010 EXEC PGM=IKJEFT01,DYNAMNBR=20,
// REGION=4M
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=SNOBSI.NDFOR.UMFCK.OFF
//SYSTSIN DD *
DSN SYSTEM(XXXXX)
RUN PROGRAM(XXXXX) PLAN(XXXXX)
/*
and the data set info for the file is SNOBSI.NDFOR.UMFCK.OFF
Data class . . . . . : STANDARD
Organization . . . : PS
Record format . . . : FB
Record length . . . : 150
Block size . . . . : 6150
1st extent blocks . : 8
and when the jcl is run it won't take anything beyond the 80th column and that's why i have my query and if it is a matter of using a macro then thanks for the useless bit of info.
Please help if you real can |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10888 Location: italy
|
|
|
|
Quote: |
and if it is a matter of using a macro then thanks for the useless bit of info. |
You asked for a solution, we are telling You that there is none and You are on Your own
Your <derogatory adjective> remark just means that we wasted our time trying to help You
when somebody asks what program are You using, it is because we willing to help You to find a solution
and expects to be told the program name , not a xxxxx stupidity
looks like that You do not deserve to be helped after all |
|
Back to top |
|
|
CICS Guy
Senior Member
Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
pvivekkrishnan wrote: |
oK here is a sample: |
Quote: |
I have a looong simple query that is |
Word wrap works mostly on spaces and the commas....
If you need to split a long line, YOU need to address the "continuation" rules for the commands you are trying to split....
Does this make sense to you? |
|
Back to top |
|
|
Craq Giegerich
Senior Member
Joined: 19 May 2007 Posts: 1512 Location: Virginia, USA
|
|
|
|
I regularly update MAINFRAME db2 tables using statements created on a toy windows machine on my desktop. I just create a TXT file with each record being a complete SQL statement with the terminating ";". I then define a file on the mainframe with RECFM=FB,LRECL=72 and then use FTP to transfer my TXT file from this toy computer to the real computer to the predefined file. I then define another file with RECFM=FB,LRECL=80 and copy the 72 byte file to the 80 byte file. The 80 byte file now contains sql statements in positions 1 - 72 and 73 - 80 which are not used are blank. I use the 80 byte file as input to "IKJEFT01". |
|
Back to top |
|
|
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
Craq Giegerich & CICS Guy
Thanks,
This is what i was looking for and i am able to do it albeit with a little tweaks on the LRECL for aligning along the commas.
Anway will be able to work forward from here. |
|
Back to top |
|
|
Craq Giegerich
Senior Member
Joined: 19 May 2007 Posts: 1512 Location: Virginia, USA
|
|
|
|
pvivekkrishnan wrote: |
Craq Giegerich & CICS Guy
Thanks,
This is what i was looking for and i am able to do it albeit with a little tweaks on the LRECL for aligning along the commas.
Anway will be able to work forward from here. |
Why? This works just fine!
Code: |
INSERT INTO DB2TST1.XXXTABL2 (DUE_DATE, EXTRACT_DATE, BEGIN_DATE, END_DA
E, ADDED_USERID, ADDED_TS, ADDED_PROGRAM) VALUES ( '08/17/2009', '07/01/
2009', '08/01/2009', '08/07/2009', USER, CURRENT TIMESTAMP, 'SPUFI');
INSERT INTO DB2TST1.XXXTABL2 (DUE_DATE, EXTRACT_DATE, BEGIN_DATE, END_DA
E, ADDED_USERID, ADDED_TS, ADDED_PROGRAM) VALUES ( '08/24/2009', '07/01/
2009', '08/08/2009', '08/17/2009', USER, CURRENT TIMESTAMP, 'SPUFI');
|
|
|
Back to top |
|
|
pvivekkrishnan
New User
Joined: 24 Feb 2010 Posts: 6 Location: coimbatore
|
|
|
|
wow , i got this error on trying
insert into E34343.xxxxx_xXX_Xxxx (xxx_xx_xxxxx,xxx_xxxx_xx,y
yy_yyy_yy,zzz_zz_zz_zzzz_zz,aaaaaa_aa_aaa_aa,bbb_bb_bb_bbb_b
b,ccc_cc_cc_cccc_cc,dd_dd_dd_dddd_dd,eee_ee_Ee_eeee,LST_UPD
T_TS,LST_UPDT_USR_ID) VALUES(9884,17007,1,0.005,1.3698630136
9863E-05,'2010-01-25','2010-01-25',NULL,NULL,current timesta
mp,16);
QLERROR ON insert COMMAND, PREPARE FUNCTION
RESULT OF SQL STATEMENT:
DSNT408I SQLCODE = -104, ERROR: ILLEGAL SYMBOL "yy_yyy_yy". SOME SYMBOLS THAT
DSNT418I SQLSTATE = 42601 SQLSTATE RETURN CODE
DSNT415I SQLERRP = DSNHPARS SQL PROCEDURE DETECTING ERROR
What am i doing wrong here??
also can one avoid the auto update feature of IKJEFT01 |
|
Back to top |
|
|
|