Oracle DBMS_XQUERY
Version 11.2.0.2
 
General Information
Source {ORACLE_HOME}/rdbms/admin/initxqry.sql
Source Code CREATE OR REPLACE PACKAGE dbms_xquery AUTHID CURRENT_USER IS
 FUNCTION eval(xqry IN VARCHAR2) RETURN XMLTYPE;
END;
/

CREATE OR REPLACE PACKAGE BODY dbms_xquery AS
  FUNCTION eval(xqry varchar2) RETURN XMLTYPE IS
   PRAGMA AUTONOMOUS_TRANSACTION;
   rval XMLTYPE := NULL;
  BEGIN
    EXECUTE IMMEDIATE 'SELECT xmlquery(:1 returning content) FROM dual'
    INTO rval
    USING xqry;

    COMMIT;     -- I'd love to know why anyone at Oracle thinks a commit has value here

    RETURN rval;
  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK; -- or a rollback has anything to roll back
      RAISE;
  END;
END;
/
First Available 11.2
Dependencies
XMLTYPE
Security Model Execute is granted to PUBLIC
 
EVAL
Undocumented dbms_xquery.eval(xqry IN VARCHAR2) RETURN XMLTYPE;
set serveroutput on

DECLARE
 inval VARCHAR2(200) := '''FOR $i IN /PDRecord where $i /PDName = "Daniel Morgan" ORDER BY  $i/PDName return $i/PDName'' PASSING BY VALUE person_data';
 retval XMLTYPE;
BEGIN
  retval := dbms_xquery.eval(inval);
END;
/

DECLARE
 inval VARCHAR2(200) := 'FOR $i IN /PDRecord where $i /PDName = "Daniel Morgan" ORDER BY  $i/PDName return $i/PDName';
 retval XMLTYPE;
BEGIN
  retval := dbms_xquery.eval(inval);
END;
/
 
Related Topics
XMLQUERY
 
Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: © 2012 Daniel A. Morgan All Rights Reserved