Hi EGL professionals,
I'm trying to update and XML type column from EGL on Mainframe and DB2 11. I'm using an UPDATE SQL with XMLMODIFY which is working well from SQL script (QMF, DataStudio)
UPDATE LOGT SET LOGXML = XMLMODIFY('insert node $log/text as last into /nlslog', XMLPARSE(DOCUMENT '<text>my log 1</text>') as "log")WHERE ID=75;
I tried to implement it in EGL, like this (and many other ways)
function LOGTEXT(LOGTEXT string) LOGXMLSTR String; LOGXMLSTR = "UPDATE LOGT"; LOGXMLSTR = LOGXMLSTR + " SET LOGXML ="; LOGXMLSTR = LOGXMLSTR + " XMLMODIFY('insert node $log/text as last into /nlslog', XMLPARSE(DOCUMENT '<text>my log 1</text>') as \"log\"),"; LOGXMLSTR = LOGXMLSTR + " RUNID = '0002'"; LOGXMLSTR = LOGXMLSTR + " WHERE ID = ?"; try prepare MYSQLSTATEMENT from LOGXMLSTR; execute MYSQLSTATEMENT using LOGT.ID; // execute #sql{// UPDATE LOGT// SET LOGXML =// XMLMODIFY('insert node $log as last into /nlslog', XMLPARSE(DOCUMENT '<text>my log 1</text>') as "log")// WHERE ID = :LOGT.ID// }// for NLSLOGT; onException LOGERROR(); end end
I also tried the query several ways in SQL it's working, but not in EGL:
XMLMODIFY('insert node $log as last into /nlslog', XMLPARSE(DOCUMENT '<logg><text>my log 1</text></logg>') as "log")
XMLMODIFY('insert node $log/text as last into /nlslog', XMLPARSE(DOCUMENT '<?xml version=\"1.0\" encoding=\"IBM037\"?><logg><text>my log 1</text></logg>') as "log")
Unfortunatelly we are not able to run Stored Procedures
Please help!
SzabóZoltán