View previous topic :: View next topic
|
Author |
Message |
rahuindo
New User
Joined: 09 Apr 2008 Posts: 83 Location: Chennai
|
|
|
|
Hi,
We're using DB2 V10. I need to pass the results of my COBOL-DB2 stored procedure as XML. The XML result-set will be a huge document and hence I cannot use VARCHAR variable to return the result. I am using an output parameter in the Stored Procedure to return the XML as CLOB. The XML file is generated using the XML-Generate statement and passing it back as XML through a CLOB variable. The CLOB
I have defined the XML output variable as follows:
Code: |
01 WS-XML-DOC1 USAGE IS SQL TYPE IS XML AS CLOB(1024K).
|
This is my XML GENERATE statement:
Code: |
INITIALIZE WS-XML-DOC1
XML GENERATE WS-XML-DOC1 FROM WS-OUTPUT-LAYOUT
COUNT IN WS-XML-DOC1-LENGTH
ON EXCEPTION
PERFORM P-XML-EXCEPTION THRU P-EXIT
|
However, while compiling the code I am getting the following error:
Code: |
"XML GENERTATE" identifiers "WS-XML-DOC1(GROUP)" and "WS-XML-DOC1-LENGTH (BINARY INTEGER)" had over storage. This statement was discarded.
|
Any idea what is wrong I am doing here? As per the manuals this should be working.[/code] |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
You need to post the full definitions of everything referenced in the statement which caused the error and the full error-message, including message-code. |
|
Back to top |
|
|
rahuindo
New User
Joined: 09 Apr 2008 Posts: 83 Location: Chennai
|
|
|
|
Hi Bill,
Here is the layout of WS-OUTPUT-LAYOUT:
Code: |
01 WS-OUTPUT-LAYOUT.
05 RP-EMPLOYEE-NUM PIC X(6).
05 RP-ADDRS-FIELDS
OCCURS 0 TO 2908 TIMES DEPENDING ON NUMITEMS.
10 RP-ADDR-TYP-CD PIC X(1).
10 RP-PH-AREA-CD PIC X(3).
10 RP-LOC-PH-NUM PIC X(7).
10 RP-LN-1-ADDR PIC X(40).
10 RP-LN-2-ADDR PIC X(40).
10 RP-LN-3-ADDR PIC X(40).
10 RP-CTY-NAME PIC X(20).
10 RP-ST-CD PIC X(2).
10 RP-ZIP-CD PIC X(10).
10 RP-CTRY-CD PIC X(2).
10 RP-CANNOT-LOC-IND PIC X(1).
10 RP-FAX-AREA-CD PIC X(3).
10 RP-FAX-NUM PIC X(7).
|
This is the definition of the XML CLOB variable:
Code: |
01 WS-XML-DOC1 USAGE IS SQL TYPE IS XML AS CLOB(1024K).
|
This is the XML Generate statement
Code: |
XML GENERATE WS-XML-DOC1 FROM WS-OUTPUT-LAYOUT
COUNT IN WS-XML-DOC1-LENGTH
ON EXCEPTION
PERFORM P-XML-EXCEPTION THRU P-EXIT
END-XML
|
We use ChangeMan as a compiler. Here is the compiler error:
Code: |
615 IGYPA3207-E "XML GENERATE" identifiers "WS-XML-DOC1 (GROUP)" and "WS-XML-DOC1-LENGTH (BINARY INTEGER)" had ove
storage. The statement was discarded.
|
Please let me know if you need any additional details. |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Well, you've not shown the definition of WS-XML-DOC1-LENGTH, but the compiler indicates that it is part of WS-XML-DOC1 which is not allowed.
You need to look at the compile listing. If still unclear, post the WS-XML-DOC1 from the compile listing and include WS-XML-DOC1-LENGTH.
ChangeMan is not your compiler. |
|
Back to top |
|
|
rahuindo
New User
Joined: 09 Apr 2008 Posts: 83 Location: Chennai
|
|
|
|
Hi Bill,
Thanks a lot!! I got the answer. The WS-XML-DOC1-LENGTH was created by the DB2 Pre-compiler and I used that during my XML GENERATE statement. I defined a new variable WS-XML-DOC1-LEN and used it for the COUNT.
Thanks a lot, again!! |
|
Back to top |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
Thanks for letting us know. |
|
Back to top |
|
|
Ed Goodman
Active Member
Joined: 08 Jun 2011 Posts: 556 Location: USA
|
|
|
|
I also think you cut off the error message:
I bet the words OVERLAPPING STORAGE are in there. That may have helped understand it. |
|
Back to top |
|
|
|