1 PACKAGE DBMS_XMLSAVE AUTHID CURRENT_USER AS
2
3 SUBTYPE ctxType IS NUMBER; /* context type */
4
5 DEFAULT_ROWTAG CONSTANT VARCHAR2(3) := 'ROW'; /* rowtag */
6 DEFAULT_DATE_FORMAT CONSTANT VARCHAR2(21):= 'YYYY-MM-DD HH24:MI:SS';
7
8 MATCH_CASE CONSTANT NUMBER := 0; /* match case */
9 IGNORE_CASE CONSTANT NUMBER := 1; /* ignore case */
10
11
12 -------------------- constructor/destructor functions ---------------------
13 FUNCTION newContext(targetTable IN VARCHAR2) RETURN ctxType;
14 PROCEDURE closeContext(ctxHdl IN ctxType);
15
16 -------------------- parameters to the save (XMLtoDB) engine ----------------
17 PROCEDURE setXSLT(ctxHdl IN ctxType,uri IN VARCHAR2,ref IN VARCHAR2 := null);
18 PROCEDURE setXSLT(ctxHdl IN ctxType, stylesheet IN CLOB, ref IN VARCHAR2 := null);
19 PROCEDURE setXSLTParam(ctxHdl IN ctxType,name IN VARCHAR2,value IN VARCHAR2);
20 PROCEDURE removeXSLTParam(ctxHdl IN ctxType, name IN VARCHAR2);
21
22 PROCEDURE setRowTag(ctxHdl IN ctxType, tag IN VARCHAR2);
23 PROCEDURE setSQLToXMLNameEscaping(ctxHdl IN ctxType, flag IN BOOLEAN := true);
24 PROCEDURE setPreserveWhitespace(ctxHdl IN ctxType, flag IN BOOLEAN := true);
25 PROCEDURE setIgnoreCase(ctxHdl IN ctxType, flag IN NUMBER);
26
27 PROCEDURE setDateFormat(ctxHdl IN ctxType, mask IN VARCHAR2);
28
29 PROCEDURE setBatchSize(ctxHdl IN ctxType, batchSize IN NUMBER);
30 PROCEDURE setCommitBatch(ctxHdl IN ctxType, batchSize IN NUMBER);
31
32 -- set the columns to update. Relevant for insert and update routines..
33 PROCEDURE setUpdateColumn(ctxHdl IN ctxType, colName IN VARCHAR2);
34 PROCEDURE clearUpdateColumnList(ctxHdl IN ctxType);
35
36 -- set the key column name to be used for updates and deletes.
37 PROCEDURE setKeyColumn(ctxHdl IN ctxType, colName IN VARCHAR2);
38 PROCEDURE clearKeyColumnList(ctxHdl IN ctxType);
39
40 ------------------- save ----------------------------------------------------
41 -- insertXML
42 FUNCTION insertXML(ctxHdl IN ctxType, xDoc IN VARCHAR2) RETURN NUMBER;
43 FUNCTION insertXML(ctxHdl IN ctxType, xDoc IN CLOB) RETURN NUMBER;
44 -- updateXML
45 FUNCTION updateXML(ctxHdl IN ctxType, xDoc IN VARCHAR2) RETURN NUMBER;
46 FUNCTION updateXML(ctxHdl IN ctxType, xDoc IN CLOB) RETURN NUMBER;
47 -- deleteXML
48 FUNCTION deleteXML(ctxHdl IN ctxType, xDoc IN VARCHAR2) RETURN NUMBER;
49 FUNCTION deleteXML(ctxHdl IN ctxType, xDoc IN CLOB) RETURN NUMBER;
50
51 ------------------- misc ----------------------------------------------------
52 PROCEDURE propagateOriginalException(ctxHdl IN ctxType, flag IN BOOLEAN);
53 PROCEDURE getExceptionContent(ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2);
54 PROCEDURE useDBDates(ctxHdl IN ctxType, flag IN BOOLEAN := true);
55
56 -------private method declarations------------------------------------------
57 -- we must do this as a bug workaround; otherwise we get ora-600 [kgmexchi11]
58 PROCEDURE p_useDBDates(ctxHdl IN ctxType, flag IN NUMBER);
59 PROCEDURE p_setXSLT(ctxHdl IN ctxType, uri IN VARCHAR2, ref IN VARCHAR2);
60 PROCEDURE p_setXSLT(ctxHdl IN ctxType, stylesheet CLOB, ref IN VARCHAR2);
61 PROCEDURE p_propagateOriginalException(ctxHdl IN ctxType, flag IN NUMBER);
62 PROCEDURE p_setSQLToXMLNameEsc(ctxHdl IN ctxType, flag IN NUMBER);
63 PROCEDURE p_setPreserveWhitespace(ctxHdl IN ctxType, flag IN NUMBER);
64
65 END dbms_xmlsave;