1 PACKAGE BODY DBMS_XMLQUERY AS
2
3 procedure getVersion IS
4 begin
5 DBMS_OUTPUT.PUT_LINE(CHR(0));
6 DBMS_OUTPUT.PUT_LINE(CHR(0));
7 DBMS_OUTPUT.PUT_LINE('XSU Version ' ||
8 'Owner Timestamp');
9 DBMS_OUTPUT.PUT_LINE('-------------------------- ' ||
10 '------------- ----------------');
11
12 FOR i IN (select object_name, owner, timestamp
13 from all_objects
14 where object_name like '%XSU%VERSION%')
15 LOOP
16 DBMS_OUTPUT.PUT_LINE(RPAD(i.object_name,27) ||
17 RPAD(i.owner,14) || SUBSTR(i.timestamp,1,16));
18 END LOOP;
19 DBMS_OUTPUT.NEW_LINE;
20 end getVersion;
21
22 FUNCTION newContext(sqlQuery IN VARCHAR2) return ctxType
23 as LANGUAGE JAVA NAME
24 'oracle.xml.sql.query.OracleXMLStaticQuery.newContext(java.lang.String) return int';
25
26 FUNCTION newContext(sqlQuery IN CLOB) return ctxType
27 as LANGUAGE JAVA NAME
28 'oracle.xml.sql.query.OracleXMLStaticQuery.newContext(oracle.sql.CLOB) return int';
29
30 PROCEDURE closeContext(ctxHdl IN ctxType)
31 as LANGUAGE JAVA NAME
32 'oracle.xml.sql.query.OracleXMLStaticQuery.closeContext(int)';
33
34 PROCEDURE setRowsetTag(ctxHdl IN ctxType, tag IN VARCHAR2)
35 as LANGUAGE JAVA NAME
36 'oracle.xml.sql.query.OracleXMLStaticQuery.setRowsetTag(int, java.lang.String)';
37
38 PROCEDURE setRowTag(ctxHdl IN ctxType, tag IN VARCHAR2)
39 as LANGUAGE JAVA NAME
40 'oracle.xml.sql.query.OracleXMLStaticQuery.setRowTag(int, java.lang.String)';
41
42 PROCEDURE setErrorTag(ctxHdl IN ctxType, tag IN VARCHAR2)
43 as LANGUAGE JAVA NAME
44 'oracle.xml.sql.query.OracleXMLStaticQuery.setErrorTag(int, java.lang.String)';
45
46 PROCEDURE setRowIdAttrName(ctxHdl IN ctxType, attrName IN VARCHAR2)
47 as LANGUAGE JAVA NAME
48 'oracle.xml.sql.query.OracleXMLStaticQuery.setRowIdAttrName(int, java.lang.String)';
49
50 PROCEDURE setRowIdAttrValue(ctxHdl IN ctxType, colName IN VARCHAR2)
51 as LANGUAGE JAVA NAME
52 'oracle.xml.sql.query.OracleXMLStaticQuery.setRowIdAttrValue(int, java.lang.String)';
53
54
55 PROCEDURE setCollIdAttrName(ctxHdl IN ctxType, attrName IN VARCHAR2)
56 as LANGUAGE JAVA NAME
57 'oracle.xml.sql.query.OracleXMLStaticQuery.setCollIdAttrName(int, java.lang.String)';
58
59
60 PROCEDURE p_useTypeForCollElemTag(ctxHdl IN ctxType, flag IN NUMBER)
61 as LANGUAGE JAVA NAME
62 'oracle.xml.sql.query.OracleXMLStaticQuery.useTypeForCollElemTag(int,byte)';
63
64 PROCEDURE useTypeForCollElemTag(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
65 begin
66 if flag = true then
67 p_useTypeForCollElemTag(ctxHdl, 1);
68 else
69 p_useTypeForCollElemTag(ctxHdl, 0);
70 end if;
71 end useTypeForCollElemTag;
72
73
74 PROCEDURE p_useNullAttrInd(ctxHdl IN ctxType, flag IN NUMBER)
75 as LANGUAGE JAVA NAME
76 'oracle.xml.sql.query.OracleXMLStaticQuery.useNullAttributeIndicator(int, byte)';
77
78 PROCEDURE useNullAttributeIndicator(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
79 begin
80 if flag = true then
81 p_useNullAttrInd(ctxHdl, 1);
82 else
83 p_useNullAttrInd(ctxHdl, 0);
84 end if;
85 end useNullAttributeIndicator;
86
87 PROCEDURE p_setSQLToXMLNameEsc(ctxHdl IN ctxType, flag IN NUMBER)
88 as LANGUAGE JAVA NAME
89 'oracle.xml.sql.query.OracleXMLStaticQuery.setSQLToXMLNameEscaping(int, byte)';
90
91 PROCEDURE setSQLToXMLNameEscaping(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
92 begin
93 if flag = true then
94 p_setSQLToXMLNameEsc(ctxHdl, 1);
95 else
96 p_setSQLToXMLNameEsc(ctxHdl, 0);
97 end if;
98 end setSQLToXMLNameEscaping;
99
100 PROCEDURE setTagCase(ctxHdl IN ctxType, tCase IN NUMBER)
101 as LANGUAGE JAVA NAME
102 'oracle.xml.sql.query.OracleXMLStaticQuery.setTagCase(int, byte)';
103
104
105 PROCEDURE setDateFormat(ctxHdl IN ctxType, mask IN VARCHAR2)
106 as LANGUAGE JAVA NAME
107 'oracle.xml.sql.query.OracleXMLStaticQuery.setDateFormat(int, java.lang.String)';
108
109
110 PROCEDURE setMaxRows (ctxHdl IN ctxType, rows IN NUMBER)
111 as LANGUAGE JAVA NAME
112 'oracle.xml.sql.query.OracleXMLStaticQuery.setMaxRows(int, int)';
113
114
115 PROCEDURE setSkipRows(ctxHdl IN ctxType, rows IN NUMBER)
116 as LANGUAGE JAVA NAME
117 'oracle.xml.sql.query.OracleXMLStaticQuery.setSkipRows(int, int)';
118
119
120 PROCEDURE p_setStylesheetHeader(ctxHdl IN ctxType, uri IN VARCHAR2, type IN VARCHAR2)
121 as LANGUAGE JAVA NAME
122 'oracle.xml.sql.query.OracleXMLStaticQuery.setStylesheetHeader(int, java.lang.String, java.lang.String)';
123
124 PROCEDURE setStylesheetHeader(ctxHdl IN ctxType, uri IN VARCHAR2, type IN VARCHAR2 := 'text/xsl') is
125 begin
126 p_setStylesheetHeader(ctxHdl, uri, type);
127 end setStylesheetHeader;
128
129
130 PROCEDURE p_setXSLT(ctxHdl IN ctxType, uri IN VARCHAR2, ref IN VARCHAR2)
131 as LANGUAGE JAVA NAME
132 'oracle.xml.sql.query.OracleXMLStaticQuery.setXSLT(int, java.lang.String, java.lang.String)';
133
134 PROCEDURE setXSLT(ctxHdl IN ctxType, uri IN VARCHAR2, ref IN VARCHAR2 := null) IS
135 begin
136 p_setXSLT(ctxHdl, uri, ref);
137 end setXSLT;
138
139 PROCEDURE p_setXSLT(ctxHdl IN ctxType, stylesheet IN CLOB, ref IN VARCHAR2)
140 as LANGUAGE JAVA NAME
141 'oracle.xml.sql.query.OracleXMLStaticQuery.setXSLT(int, oracle.sql.CLOB, java.lang.String)';
142
143 PROCEDURE setXSLT(ctxHdl IN ctxType, stylesheet IN CLOB, ref IN VARCHAR2 := null) IS
144 begin
145 p_setXSLT(ctxHdl, stylesheet, ref);
146 end setXSLT;
147
148 PROCEDURE setXSLTParam(ctxHdl IN ctxType, name IN VARCHAR2,value IN VARCHAR2)
149 as LANGUAGE JAVA NAME
150 'oracle.xml.sql.query.OracleXMLStaticQuery.setXSLTParam(int, java.lang.String, java.lang.String)';
151
152 PROCEDURE removeXSLTParam(ctxHdl IN ctxType, name IN VARCHAR2)
153 as LANGUAGE JAVA NAME
154 'oracle.xml.sql.query.OracleXMLStaticQuery.removeXSLTParam(int, java.lang.String)';
155
156 PROCEDURE p_setEncodingTag(ctxHdl IN ctxType, enc IN VARCHAR2)
157 as LANGUAGE JAVA NAME
158 'oracle.xml.sql.query.OracleXMLStaticQuery.setEncodingTag(int, java.lang.String)';
159
160 PROCEDURE setEncodingTag(ctxHdl IN ctxType,enc IN VARCHAR2 := DB_ENCODING) is
161 begin
162 p_setEncodingTag(ctxHdl, enc);
163 end setEncodingTag;
164
165 PROCEDURE setBindValue(ctxHdl IN ctxType, bindName IN VARCHAR2, bindValue IN VARCHAR2)
166 as LANGUAGE JAVA NAME
167 'oracle.xml.sql.query.OracleXMLStaticQuery.setBindValue(int, java.lang.String, java.lang.String)';
168
169
170 PROCEDURE clearBindValues(ctxHdl IN ctxType)
171 as LANGUAGE JAVA NAME
172 'oracle.xml.sql.query.OracleXMLStaticQuery.clearBindValues(int)';
173
174 PROCEDURE p_setMetaHeader(ctxHdl IN ctxType, header IN CLOB)
175 as LANGUAGE JAVA NAME
176 'oracle.xml.sql.query.OracleXMLStaticQuery.setMetaHeader(int, oracle.sql.CLOB)';
177
178 PROCEDURE setMetaHeader(ctxHdl IN ctxType, header IN CLOB := null) IS
179 begin
180 p_setMetaHeader(ctxHdl, header);
181 end setMetaHeader;
182
183 PROCEDURE p_setDataHeader(ctxHdl IN ctxType, header IN CLOB, tag IN VARCHAR2)
184 as LANGUAGE JAVA NAME
185 'oracle.xml.sql.query.OracleXMLStaticQuery.setDataHeader(int, oracle.sql.CLOB, java.lang.String)';
186
187 PROCEDURE setDataHeader(ctxHdl IN ctxType, header IN CLOB := null, tag IN VARCHAR2 := null) is
188 begin
189 p_setDataHeader(ctxHdl, header, tag);
190 end setDataHeader;
191
192
193 PROCEDURE p_setRaiseException(ctxHdl IN ctxType, flag IN NUMBER)
194 as LANGUAGE JAVA NAME
195 'oracle.xml.sql.query.OracleXMLStaticQuery.setRaiseException(int, byte)';
196
197 PROCEDURE setRaiseException(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
198 begin
199 if flag = true then
200 p_setRaiseException(ctxHdl, 1);
201 else
202 p_setRaiseException(ctxHdl, 0);
203 end if;
204 end setRaiseException;
205
206 PROCEDURE p_setRaiseNoRowsExc(ctxHdl IN ctxType, flag IN NUMBER)
207 as LANGUAGE JAVA NAME
208 'oracle.xml.sql.query.OracleXMLStaticQuery.setRaiseNoRowsException(int, byte)';
209
210 PROCEDURE setRaiseNoRowsException(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
211 begin
212 if flag = true then
213 p_setRaiseNoRowsExc(ctxHdl, 1);
214 else
215 p_setRaiseNoRowsExc(ctxHdl, 0);
216 end if;
217 end setRaiseNoRowsException;
218
219 PROCEDURE p_propOrigExc(ctxHdl IN ctxType, flag IN NUMBER)
220 as LANGUAGE JAVA NAME
221 'oracle.xml.sql.query.OracleXMLStaticQuery.propagateOriginalException(int, byte)';
222
223 PROCEDURE propagateOriginalException(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
224 begin
225 if flag = true then
226 p_propOrigExc(ctxHdl, 1);
227 else
228 p_propOrigExc(ctxHdl, 0);
229 end if;
230 end propagateOriginalException;
231
232 PROCEDURE getExceptionContent(ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2)
233 as LANGUAGE JAVA NAME
234 'oracle.xml.sql.query.OracleXMLStaticQuery.getExceptionContent(int, int[], java.lang.String[])';
235
236 PROCEDURE p_setStrictLegalXMLCharCheck(ctxHdl IN ctxType, flag IN NUMBER)
237 as LANGUAGE JAVA NAME
238 'oracle.xml.sql.query.OracleXMLStaticQuery.setStrictLegalXMLCharCheck(int, byte)';
239
240 PROCEDURE setStrictLegalXMLCharCheck(ctxHdl IN ctxType, flag IN BOOLEAN := true) is
241 begin
242 if flag = true then
243 p_setStrictLegalXMLCharCheck(ctxHdl, 1);
244 else
245 p_setStrictLegalXMLCharCheck(ctxHdl, 0);
246 end if;
247 end setStrictLegalXMLCharCheck;
248
249 ------------------- generation ----------------------------------------------
250 FUNCTION getDTD(ctxHdl IN ctxType, withVer IN BOOLEAN := false) RETURN CLOB IS
251 clb CLOB;
252 begin
253 dbms_lob.createtemporary(clb, true, DBMS_LOB.SESSION);
254 getDTD(ctxHdl, clb, withVer);
255 return clb;
256 end getDTD;
257
258 PROCEDURE p_getDTD(ctxHdl IN ctxType, xDoc IN CLOB, withVer IN NUMBER)
259 as LANGUAGE JAVA NAME
260 'oracle.xml.sql.query.OracleXMLStaticQuery.getDTD(int, oracle.sql.CLOB, byte)';
261
262 PROCEDURE getDTD(ctxHdl IN ctxType, xDoc IN CLOB, withVer IN BOOLEAN := false) IS
263 begin
264 if withVer = true then
265 p_getDTD(ctxHdl, xDoc, 1);
266 else
267 p_getDTD(ctxHdl, xDoc, 0);
268 end if;
269 end getDTD;
270
271
272 FUNCTION getXML(ctxHdl IN ctxType, metaType IN NUMBER := NONE) RETURN CLOB IS
273 clb CLOB;
274 begin
275 dbms_lob.createtemporary(clb, true, DBMS_LOB.SESSION);
276 getXML(ctxHdl, clb, metaType);
277 return clb;
278 end getXML;
279
280 PROCEDURE p_getXML(ctxHdl IN ctxType, xDoc IN CLOB, metaType IN NUMBER)
281 as LANGUAGE JAVA NAME
282 'oracle.xml.sql.query.OracleXMLStaticQuery.getXML(int, oracle.sql.CLOB, byte)';
283
284 PROCEDURE getXML(ctxHdl IN ctxType, xDoc IN CLOB, metaType IN NUMBER := NONE) IS
285 begin
286 p_getXML(ctxHdl, xDoc, metaType);
287 end getXML;
288
289 FUNCTION getXML(sqlQuery IN VARCHAR2, metaType IN NUMBER := NONE) RETURN CLOB IS
293 ctx := newContext(sqlQuery);
290 ctx ctxType;
291 clb CLOB;
292 begin
294 clb := getXML(ctx, metaType);
295 closeContext(ctx);
296 return clb;
297 end getXML;
298
299 FUNCTION getXML(sqlQuery IN CLOB, metaType IN NUMBER := NONE) RETURN CLOB IS
300 ctx ctxType;
301 clb CLOB;
302 begin
303 ctx := newContext(sqlQuery);
304 clb := getXML(ctx, metaType);
305 closeContext(ctx);
306 return clb;
307 end getXML;
308
309
310 PROCEDURE resetResultSet(ctxHdl IN ctxType)
311 as LANGUAGE JAVA NAME
312 'oracle.xml.sql.query.OracleXMLStaticQuery.resetResultSet(int)';
313
314
315 FUNCTION getNumRowsProcessed(ctxHdl IN ctxType) RETURN NUMBER
316 as LANGUAGE JAVA NAME
317 'oracle.xml.sql.query.OracleXMLStaticQuery.getNumRowsProcessed(int) return long';
318
319
320 END DBMS_XMLQUERY;