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

Single row update in DB2 Z/OS using an array as host variabl


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
jdeeponline

New User


Joined: 08 Sep 2009
Posts: 27
Location: Charlotte

PostPosted: Mon Mar 18, 2013 2:45 pm
Reply with quote

We are trying to introduce multi-row Inserts in our COBOL DB2 modules, replacing the existing single row inserts. While introducing this, we want to retain the existing Single row INSERT and UPDATE queries in the program , so that anyone who desires to could use this.

The single row insert works just fine even while providing an array as host variable, by passing the values only to the first row of array before inserting. We are not sure if the performance will be impacted by this.

However, while trying to keep the Update statement, the recompile of the program failed.

Any thoughts on that above will be appreciated.
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Mon Mar 18, 2013 4:00 pm
Reply with quote

My thought is that you need to provide more detail.
Back to top
View user's profile Send private message
jdeeponline

New User


Joined: 08 Sep 2009
Posts: 27
Location: Charlotte

PostPosted: Mon Mar 18, 2013 4:59 pm
Reply with quote

In the COBOL module, we will have 2 queries on either sides of an IF statement. First, to insert one row of input at a time with an INSERT statement, and the next to be able to INSERT multiple rows. While running the program, we can pass a parameter in the JCL to control which of the options would be used.

Now, I can't declare the table twice in the program (one for each query) to be able to use a DCLGEN. So I declare it once, defining the the cobol variables as an array. I want to be able to use this same COBOL variable as a host variable, and use them for my Multi-Insert, single row Insert and run an UPDATE query as well on the table, based on the PARM passed in the JCL. When I attempt this, the compiler gives me an error in Changeman (for the UPDATE SQL).
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Mon Mar 18, 2013 9:13 pm
Reply with quote

Possibly, create an DCLGEN equivalent COPYBOOK having :TAG: in it. Later in program in IF/ELSE statement replace :TAG: with appropriate variable names, e.g.:
Code:
COPY copybook REPLACING ==:TAG:== BY ==snglrow==.
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 -> DB2

 


Similar Topics
Topic Forum Replies
No new posts How to append a PS file into multiple... JCL & VSAM 3
No new posts Submit multiple jobs from a library t... JCL & VSAM 14
No new posts Convert single row multi cols to sing... DFSORT/ICETOOL 6
No new posts access the last host command CLIST & REXX 2
No new posts COBOL Ascending and descending sort n... COBOL Programming 5
Search our Forums:

Back to Top