1 PACKAGE DBMS_XMLQUERY AUTHID CURRENT_USER AS
2
3 -- types
4 SUBTYPE ctxType IS NUMBER; /* context type */
5 SUBTYPE ctxHandle IS NUMBER;
6
7 DEFAULT_ROWSETTAG CONSTANT VARCHAR2(6) := 'ROWSET'; /* rowsettag */
8 DEFAULT_ERRORTAG CONSTANT VARCHAR2(5) := 'ERROR'; /* error tag */
9 DEFAULT_ROWIDATTR CONSTANT VARCHAR2(3) := 'NUM'; /* Row ID attr */
10 DEFAULT_ROWTAG CONSTANT VARCHAR2(3) := 'ROW'; /* rowtag */
11 DEFAULT_DATE_FORMAT CONSTANT VARCHAR2(21):= 'MM/dd/yyyy HH:mm:ss';
12
13 ALL_ROWS CONSTANT NUMBER := -1; /* NO MAX, render all */
14
15 NONE CONSTANT NUMBER := 0; /* NO META */
16 DTD CONSTANT NUMBER := 1; /* META = DTD */
17 SCHEMA CONSTANT NUMBER := 2; /* META = SCHEMA */
18
19 LOWER_CASE CONSTANT NUMBER := 1; /* LOWER case */
20 UPPER_CASE CONSTANT NUMBER := 2; /* UPPER case */
21
22 -- used to signal that the DB encoding is to be used
23 DB_ENCODING CONSTANT VARCHAR2(1) := '_';
24
25 ----------------------------- misc functions ------------------------------
26 PROCEDURE getVersion;
27
28 -------------------- constructor/destructor functions ---------------------
29 FUNCTION newContext(sqlQuery IN VARCHAR2) RETURN ctxType;
30 FUNCTION newContext(sqlQuery IN CLOB) RETURN ctxType;
31 PROCEDURE closeContext(ctxHdl IN ctxType);
32
33 -------------------- parameters to the XML generation engine ----------------
34 PROCEDURE setRowsetTag(ctxHdl IN ctxType, tag IN VARCHAR2);
35 PROCEDURE setRowTag(ctxHdl IN ctxType, tag IN VARCHAR2);
36 PROCEDURE setErrorTag(ctxHdl IN ctxType, tag IN VARCHAR2);
37
38 PROCEDURE setRowIdAttrName(ctxHdl IN ctxType, attrName IN VARCHAR2);
39 PROCEDURE setRowIdAttrValue(ctxHdl IN ctxType, colName IN VARCHAR2);
40 PROCEDURE setCollIdAttrName(ctxHdl IN ctxType, attrName IN VARCHAR2);
41 PROCEDURE useTypeForCollElemTag(ctxHdl IN ctxType, flag IN BOOLEAN := true);
42 PROCEDURE useNullAttributeIndicator(ctxHdl IN ctxType, flag IN BOOLEAN := true);
43
44 PROCEDURE setSQLToXMLNameEscaping(ctxHdl IN ctxType, flag IN BOOLEAN := true);
45 PROCEDURE setTagCase(ctxHdl IN ctxType, tCase IN NUMBER);
46 PROCEDURE setDateFormat(ctxHdl IN ctxType, mask IN VARCHAR2);
47
48 PROCEDURE setMaxRows (ctxHdl IN ctxType, rows IN NUMBER);
49 PROCEDURE setSkipRows(ctxHdl IN ctxType, rows IN NUMBER);
50
51 PROCEDURE setStylesheetHeader(ctxHdl IN ctxType, uri IN VARCHAR2, type IN VARCHAR2 := 'text/xsl');
52 PROCEDURE setXSLT(ctxHdl IN ctxType,uri IN VARCHAR2,ref IN VARCHAR2 := null);
53 PROCEDURE setXSLT(ctxHdl IN ctxType, stylesheet IN CLOB, ref IN VARCHAR2 := null);
54 PROCEDURE setXSLTParam(ctxHdl IN ctxType,name IN VARCHAR2,value IN VARCHAR2);
55 PROCEDURE removeXSLTParam(ctxHdl IN ctxType, name IN VARCHAR2);
56
57 PROCEDURE setStrictLegalXMLCharCheck(ctxHdl IN ctxType, flag IN BOOLEAN := true);
58
59 PROCEDURE setEncodingTag(ctxHdl IN ctxType, enc IN VARCHAR2 := DB_ENCODING);
60
61 PROCEDURE setBindValue(ctxHdl IN ctxType, bindName IN VARCHAR2, bindValue IN VARCHAR2);
62 PROCEDURE clearBindValues(ctxHdl IN ctxType);
63
64 PROCEDURE setMetaHeader(ctxHdl IN ctxType, header IN CLOB := null);
65 PROCEDURE setDataHeader(ctxHdl IN ctxType, header IN CLOB := null, tag IN VARCHAR2 := null);
66
67 PROCEDURE setRaiseException(ctxHdl IN ctxType, flag IN BOOLEAN := true);
68 PROCEDURE setRaiseNoRowsException(ctxHdl IN ctxType, flag IN BOOLEAN := true);
69 PROCEDURE propagateOriginalException(ctxHdl IN ctxType, flag IN BOOLEAN := true);
70 PROCEDURE getExceptionContent(ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2);
71
72 ------------------- generation ----------------------------------------------
73 FUNCTION getDTD(ctxHdl IN ctxType, withVer IN BOOLEAN := false) RETURN CLOB;
74 PROCEDURE getDTD(ctxHdl IN ctxType, xDoc IN CLOB, withVer IN BOOLEAN := false);
75
76 FUNCTION getXML(ctxHdl IN ctxType, metaType IN NUMBER := NONE) RETURN CLOB;
77 PROCEDURE getXML(ctxHdl IN ctxType, xDoc IN CLOB, metaType IN NUMBER := NONE);
78 FUNCTION getXML(sqlQuery IN VARCHAR2, metaType IN NUMBER := NONE) RETURN CLOB;
79 FUNCTION getXML(sqlQuery IN CLOB, metaType IN NUMBER := NONE) RETURN CLOB;
80
81 PROCEDURE resetResultSet(ctxHdl IN ctxType);
82 FUNCTION getNumRowsProcessed(ctxHdl IN ctxType) RETURN NUMBER;
83
84 -------private method declarations------------------------------------------
85 -- we must do this as a bug workaround; otherwise we get ora-600 [kgmexchi11]
86 PROCEDURE p_useTypeForCollElemTag(ctxHdl IN ctxType, flag IN NUMBER);
87 PROCEDURE p_useNullAttrInd(ctxHdl IN ctxType, flag IN NUMBER);
88 PROCEDURE p_setSQLToXMLNameEsc(ctxHdl IN ctxType, flag IN NUMBER);
89 PROCEDURE p_setStylesheetHeader(ctxHdl IN ctxType, uri IN VARCHAR2, type IN VARCHAR2);
90 PROCEDURE p_setXSLT(ctxHdl IN ctxType, uri IN VARCHAR2, ref IN VARCHAR2);
91 PROCEDURE p_setXSLT(ctxHdl IN ctxType, stylesheet IN CLOB, ref IN VARCHAR2);
92 PROCEDURE p_setStrictLegalXMLCharCheck(ctxHdl IN ctxType, flag IN NUMBER);
93 PROCEDURE p_setEncodingTag(ctxHdl IN ctxType, enc IN VARCHAR2);
94 PROCEDURE p_setMetaHeader(ctxHdl IN ctxType, header IN CLOB);
95 PROCEDURE p_setDataHeader(ctxHdl IN ctxType, header IN CLOB,tag IN VARCHAR2);
96 PROCEDURE p_setRaiseException(ctxHdl IN ctxType, flag IN NUMBER);
97 PROCEDURE p_setRaiseNoRowsExc(ctxHdl IN ctxType, flag IN NUMBER);
98 PROCEDURE p_propOrigExc(ctxHdl IN ctxType, flag IN NUMBER);
99 PROCEDURE p_getDTD(ctxHdl IN ctxType, xDoc IN CLOB, withVer IN NUMBER);
100 PROCEDURE p_getXML(ctxHdl IN ctxType, xDoc IN CLOB, metaType IN NUMBER);
101
102 END dbms_xmlquery;