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]
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.
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.
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!!