IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

About the limitation in Substring comparison test operand SS


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
feng hao

New User


Joined: 26 Mar 2008
Posts: 44
Location: China

PostPosted: Tue Aug 10, 2010 12:47 pm
Reply with quote

Occasionally, I needed to make a records selection using substring comparison method, and, there were about 50+ substrings needed to be listed.

However, if failed with 'ICE113A E COMPARISON FIELD ERROR'.

After that, I tried again and again~and have got the limitaition info that the largest number of substring is 28!!

But, I didn't find any notices in the reference "z/OS DFSORT Application Programming Guide".

Anybody could have a test like me and tell me ur result?
Back to top
View user's profile Send private message
feng hao

New User


Joined: 26 Mar 2008
Posts: 44
Location: China

PostPosted: Tue Aug 10, 2010 1:00 pm
Reply with quote

I would add my function level of DFSORT and the code as below.

The function level in my site is 'z/OS DFSORT V1R5 PTF UK51706'.

The code:
Code:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
  INCLUDE COND=((1,4,CH,EQ,C'GOOD'),AND,                               
           (9,6,SS,EQ,C'AAAAA1,AAAAA2,AAAAA3,AAAAA4,AAAAA5,AAAAA6,     -
                        BBBBB1,BBBBB2,BBBBB3,BBBBB4,BBBBB5,BBBBB6,     -
                        CCCCC1,CCCCC2,CCCCC3,CCCCC4,CCCCC5,CCCCC6,     -
                        DDDDD1,DDDDD2,DDDDD3,DDDDD4,DDDDD5,DDDDD6,     -
                        EEEEE1,EEEEE2,EEEEE3,EEEEE4,EEEEE5'))           
Back to top
View user's profile Send private message
smijoss

Active User


Joined: 30 Aug 2007
Posts: 114
Location: pune

PostPosted: Tue Aug 10, 2010 2:12 pm
Reply with quote

could you please paste the entire trace
Back to top
View user's profile Send private message
smijoss

Active User


Joined: 30 Aug 2007
Posts: 114
Location: pune

PostPosted: Tue Aug 10, 2010 2:18 pm
Reply with quote

try this

split you SS search into 4 parts


INCLUDE COND=(1,4,CH,EQ,C'GOOD',AND,
((9,6,SS,EQ,C'AAAAA1,AAAAA2,AAAAA3,AAAAA4,AAAAA5,AAAAA6'),OR,
(9,6,SS,EQ,C'BBBBB1,BBBBB2,BBBBB3,BBBBB4,BBBBB5,BBBBB6'),OR,
(9,6,SS,EQ,C'CCCCC1,CCCCC2,CCCCC3,CCCCC4,CCCCC5,CCCCC6'),OR,
(9,6,SS,EQ,C'DDDDD1,DDDDD2,DDDDD3,DDDDD4,DDDDD5,DDDDD6'),OR,
(9,6,SS,EQ,C'EEEEE1,EEEEE2,EEEEE3,EEEEE4,EEEEE5'))
Back to top
View user's profile Send private message
feng hao

New User


Joined: 26 Mar 2008
Posts: 44
Location: China

PostPosted: Tue Aug 10, 2010 2:28 pm
Reply with quote

Hi, smijoss, thanks very much for ur suggestion and we have made the same solution.

However, the aim that I posted this topic is to check it out that whether this phenomenon existes in ur or other people's site/shop, if so, I think the limitation notice should be added to the reference in the future.
Back to top
View user's profile Send private message
smijoss

Active User


Joined: 30 Aug 2007
Posts: 114
Location: pune

PostPosted: Tue Aug 10, 2010 2:44 pm
Reply with quote

check the page 86 "Continuation Lines" topic in "DFSORT Application Programming Guide" (ice1ca40.pdf)


you can do it but i didnt want to play around with colum positons so gave simpler solution
Back to top
View user's profile Send private message
feng hao

New User


Joined: 26 Mar 2008
Posts: 44
Location: China

PostPosted: Tue Aug 10, 2010 3:15 pm
Reply with quote

Well, I don't think this topic has anything related to "line continuation", does it???

It is about the limitation of total number of substring which can be listed in a DFSORT statement, just like the code I pasted.

And so far, I found that the peak is 28 substrings.
Back to top
View user's profile Send private message
smijoss

Active User


Joined: 30 Aug 2007
Posts: 114
Location: pune

PostPosted: Tue Aug 10, 2010 3:22 pm
Reply with quote

well you should wait for frank to reply.....

i thot to give a quick solution so that ur work doesnt get stuck ..
Back to top
View user's profile Send private message
smijoss

Active User


Joined: 30 Aug 2007
Posts: 114
Location: pune

PostPosted: Tue Aug 10, 2010 3:51 pm
Reply with quote

This worked absolutely fine for me !!!!!!!!!!!!!

i think you need to relook at your understanding of substring


Code:
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
000023 //*                                                                     00350001
000024 //SYSIN    DD *                                                         00360001
000025   OPTION COPY                                                                   
000026   INCLUDE COND=((1,4,CH,EQ,C'GOOD'),AND,                                       
000027          (9,6,SS,EQ,C'AAAAA1,AAAAA2,AAAAA3,AAAAA4,AAAAA5,AAAAA6,BBBBB1,*       
000028         BBBBB2,BBBBB3,BBBBB4,BBBBB5,BBBBB6,CCCCC1,CCCCC2,CCCCC3,CCCCC4,*       
000029         CCCCC5,CCCCC6,DDDDD1,DDDDD2,DDDDD3,DDDDD4,DDDDD5,DDDDD6,EEEEE1,*       
000030         EEEEE2,EEEEE3,EEEEE4,EEEEE5,FFFFF1,FFFFF2,FFFFF3,FFFFF4'))             




Code:
ICE143I 0 BLOCKSET     COPY  TECHNIQUE SELECTED                                               
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE       
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R10 - 06:16 ON TUE AUG 10, 2010 - 
            OPTION COPY                                                                       
            INCLUDE COND=((1,4,CH,EQ,C'GOOD'),AND,                                           
                   (9,6,SS,EQ,C'AAAAA1,AAAAA2,AAAAA3,AAAAA4,AAAAA5,AAAAA6,BBBBB1,*           
                  BBBBB2,BBBBB3,BBBBB4,BBBBB5,BBBBB6,CCCCC1,CCCCC2,CCCCC3,CCCCC4,*           
                  CCCCC5,CCCCC6,DDDDD1,DDDDD2,DDDDD3,DDDDD4,DDDDD5,DDDDD6,EEEEE1,*           
                  EEEEE2,EEEEE3,EEEEE4,EEEEE5,FFFFF1,FFFFF2,FFFFF3,FFFFF4'))                 
ICE201I G RECORD TYPE IS F - DATA STARTS IN POSITION 1                                       
ICE751I 0 C5-K51707 C6-K51707 C7-K54603 C8-K51707 E9-K51707 C9-BASE   E5-K55337 E7-K51707     
ICE193I 0 ICEAM1 INVOCATION ENVIRONMENT IN EFFECT - ICEAM1 ENVIRONMENT SELECTED               
ICE252I 1 PARMLIB OPTIONS WERE MERGED WITH INSTALLATION MODULE DEFAULTS                       
ICE088I 0 T842SOR2.JS001   .        , INPUT LRECL = 80, BLKSIZE = 80, TYPE = FB               
ICE092I 0 MAIN STORAGE = (16777216,16777216,16764756)                                         
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Tue Aug 10, 2010 10:17 pm
Reply with quote

Feng hao,

Code:

 INCLUDE COND=((1,4,CH,EQ,C'GOOD'),AND,
           (9,6,SS,EQ,C'AAAAA1,AAAAA2,AAAAA3,AAAAA4,AAAAA5,AAAAA6,
                        BBBBB1,BBBBB2,BBBBB3,BBBBB4,BBBBB5,BBBBB6,     -
                        CCCCC1,CCCCC2,CCCCC3,CCCCC4,CCCCC5,CCCCC6,     -
                        DDDDD1,DDDDD2,DDDDD3,DDDDD4,DDDDD5,DDDDD6,     -
                        EEEEE1,EEEEE2,EEEEE3,EEEEE4,EEEEE5'))


C'string' specifies a single string and can be a maximum of 256 characters.

Your syntax is embedding blanks in the string. It's not giving you the string you think it is. See "z/OS DFSORT Application Programming Guide" for the correct way to code a continued string.
Back to top
View user's profile Send private message
feng hao

New User


Joined: 26 Mar 2008
Posts: 44
Location: China

PostPosted: Wed Aug 11, 2010 10:37 am
Reply with quote

Hi, Frank, you are always makeing the point!

Quote:
C'string' specifies a single string and can be a maximum of 256 characters.


Yes, that is the problem which I didn't realize before. It is that the max length of a string rather than the total number of substring which can be listed after the'SS'.

I was misunderstanding the problem until yesterday.Thanks very much for your accurate explanation!

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

Hi, smijoss,

Thank you very much for your comments and good suggestions.
I didn't get the message when you suggested to me that I should check the section of 'Line continuation', otherwise, maybe I could get the point earlier. Thank you all the same!!

Have a nice day~!
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Substring number between 2 characters... DFSORT/ICETOOL 2
No new posts Zunit Test case editor error Testing & Performance 4
No new posts I need a 4 lines block where substrin... DFSORT/ICETOOL 12
No new posts Search substring in internal table of... COBOL Programming 2
Search our Forums:

Back to Top