PERSIST

Saves information defined in a cursor SELECT statement as XML files.

Syntax:

>>-EXEC SQL--PERSIST cursor_name TO xml_destination->
>-----END-EXEC-----<>

Parameters:

cursor_name A previously declared and opened cursor.
xml_destination An identifier, a host variable, or a literal enclosed in single or double quotes

Comments:

To use PERSIST, you must:
  • Have an XML ODBC driver installed
  • Embed the SET SCROLLOPTION statement and set it to STATIC

If you are using Data Direct Connect ODBC drivers, you must use version 3.70 or later.

Example:

 01  hv  pic x(50).
 procedure-division.

    *> set whenever clause to handle sql errors
    exec sql whenever sqlerror goto sql-error end-exec
    exec sql whenever sqlwarning perform sql-warning end-exec

    *> connect to data source
    exec sql connect to "data source"  end-exec

    *> declare static cursor with column info you want to save to xml file
    exec sql
      declare c static cursor for 
        select * from emp
    end-exec

    *> open cursor
    exec sql open c end-exec 

    *> save data to xml file using double quoted literal
    exec sql 
      persist c to "c:\XML Files\xmltest1.xml" 
    end-exec 

    *> save data to xml file using single quoted literal
    exec sql 
      persist c to 'c:\XML Files\xmltest2.xml'
    end-exec

    *> save data to xml file using a host variable
    move "c:\XML Files\xmltest3.xml" to hv 
    exec sql
      persist c to :hv 
    end-exec 

    *> close the cursor
    exec sql close c end-exec

    *> disconnect from datasource
    exec sql disconnect current end-exec

    goback.