MAINFRAME - TIP OF THE DAY :
Q. If there is a situation, where we need to code more than 255 steps in a JOB?
A. We need to split jcl into two jcls , at the end of the first jcl check the condition code and initiate the second jcl.
Programmers Voted for below topics. Please Vote for good Posts.
Thank You! for your feedback. Connecting to the server. Please Wait...
Posted: Wed Mar 21, 2007 5:02 pm Post subject: What is the diff between declaring a cursor in WSS or PD?
Please answer me the most important question in the interviews, What is the difference between declaring the cursor in Working storage section and Procedure division? _________________ Kumar
If u can dream it, U can do it.
Joined: 23 Nov 2006 Posts: 8 Location: Bangalore,India
Posted: Thu Mar 22, 2007 10:46 am Post subject:
A static cursor needs to be declared before it is opened. The DB2 preprocesser needs to see it before it generates the code for accessing it. .........the declaration generates no executable code in itself so it is usually placed in the data division, that helps keep the procedure division cleaner and easier to see the logic flow.
I am not 100 sure if there is any big difference in terms of effective processing or cost-optimisation,
You can declare the cursor anywhere but if yoy declare in the working storage it will reduce the precompiler's work but it will not make any difference for the precompiler in terms of compilation process.Actual CUSROR processing is done by DB2 sybsystem when the CURSOR will be referenced first time in the PROCEDURE DIVISION.
Assumption: If u declare the cursor in PROCEDURE DIVISION may we one more extra call is being made to DB2 subsytem which can be avoided by declaring it in working storage section.
Just as Info : Not pertinent to ur question
Long back there was some discussion on CURSOR declaration before or after INCLUDE statements (INCLUDE -> I mean Table declaraion i.e.. DCLGEN statements and other DB2 includes) when the compilation process was TOP-DOWN approach but now its no longer valid i blive...not sure on this part...if we run a simple test shd be able to figure out..
I have always coded the DECLARE immediately before the OPEN (same paragraph), the FETCH and CLOSE were always in there own paragraphs. The DECLARE was in the OPEN paragraph for documentation purposes and ease of maintenance (the FETCH was always the next SECTION - i never use paragraphs) - or simply a page down in the listing when columns were to be added or removed.
If anything, the DECLARE probably has to come (physically within the source file) before the OPEN; but as veera said, that was before, no telling what you can do in DB2 V9.
the only significant thing i ever noticed about putting the DECLARE in the procedure division was that i had to continually remove the SQL code check (after the DECLARE) that the Rookies would code. _________________ Dick Brenholtz
JCL, SQL and code in programs have an irritating habit of doing what you say,
not what you meant.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum