Oracle9i XML API Reference - XDK and Oracle XML DB Release 2 (9.2) Part Number A96616-01 |
|
XML SQL Utility (XSU) for PL/SQL consists of two packages:
This API provides DB_to_XML type functionality.
Type | Description |
---|---|
ctxType |
The type of the query context handle. This is the return type of newContext() |
Creates a query context and it returns the context handle. The options are described in the following table.
Parameter | IN / OUT | Description |
---|---|---|
sqlQuery |
(IN) |
SQL query, the results of which to convert to XML. |
Closes/deallocates a particular query context
PROCEDURE closeContext( ctxHdl IN ctxType);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Sets the tag to be used to enclose the XML dataset.
PROCEDURE setRowsetTag(ctxHdl IN ctxType, tag IN VARCHAR2)
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tag |
(IN) |
Tag name. |
Sets the tag to be used to enclose the XML element corresponding to a db. record.
PROCEDURE setRowTag(ctxHdl IN ctxType, tag IN VARCHAR2)
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tag |
(IN) |
Tag name. |
Sets the tag to be used to enclose the XML error docs.
PROCEDURE setErrorTag( ctxHdl IN ctxType, tag IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tag |
(IN) |
Tag name. |
Sets the name of the id attribute of the row enclosing tag. Passing null or an empty string for the tag results the row id attribute to be omitted.
PROCEDURE setRowIdAttrName( ctxHdl IN ctxType, attrName IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tag |
(IN) |
Tag name. |
Specifies the scalar column whose value is to be assigned to the id attribute of the row enclosing tag. Passing null or an empty string for the colName results the row id attribute being assigned the row count value (that is, 0, 1, 2 and so on).
PROCEDURE setRowIdAttrValue( ctxHdl IN ctxType, colName IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
colName |
(IN) |
Column whose value is to be assigned to the row id attribute. |
Sets the name of the id attribute of the collection element's separator tag.
PROCEDURE setCollIdAttrName( ctxHdl IN ctxType, attrName IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
attrName |
(IN) |
AttributeName. |
Specified weather to use an XML attribute to indicate NULLness, or to do it by omitting the inclusion of the particular entity in the XML document.
PROCEDURE useNullAttributeIndicator( ctxHdl IN ctxType, flag IN BOOLEAN);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Use attribute to indicate |
By default the tag name for elements of a collection is the collection's tag name followed by "_item". This method, when called with argument of TRUE
, tells the XSU to use the collection element's type name as the collection element tag name.
PROCEDURE useTypeForCollElemTag( ctxHdl IN ctxType, flag IN BOOLEAN := true);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
colName |
(IN) |
Turn on use of the type name?. |
Specified the case of the generated XML tags.
PROCEDURE setTagCase( ctxHdl IN ctxType, tCase IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tCase |
(IN) |
The tag's case; 0=asAre, 1=lower, 2=upper. |
Sets the format of the generated dates in the XML doc. The syntax of the date format pattern (that is, the date mask), should conform to the requirements of the java.text.SimpleDateFormat class. Setting the mask to null or an empty string, results the use of the default mask -- DEFAULT_DATE_FORMAT.
PROCEDURE setDateFormat( ctxHdl IN ctxType, mask IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
mask |
(IN) |
The date mask. |
Sets the max number of rows to be converted to XML. By default there is no max set.
PROCEDURE setMaxRows ( ctxHdl IN ctxType, rows IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
rows |
(IN) |
Maximum number of rows to generate. |
Sets the number of rows to skip. By default 0 rows are skipped.
PROCEDURE setSkipRows( ctxHdl IN ctxType, rows IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
rows |
(IN) |
Maximum number of rows to skip. |
Sets the stylesheet header (that is, stylesheet processing instructions) in the generated XML doc. Note: Passing null for the uri argument will unset the stylesheet header and the stylesheet type.
PROCEDURE setStylesheetHeader( ctxHdl IN ctxType, uri IN VARCHAR2, type IN VARCHAR2 := 'text/xsl');
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
uri |
(IN) |
Stylesheet URI. |
type |
(IN) |
Stylesheet type; defaults to " |
Registers a stylesheet to be applied to generated XML. If a stylesheet was already registered, it gets replaced by the new one. The options are described in the following table.
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
uri |
(IN) |
Stylesheet URI. |
stylesheet |
(IN) |
Stylesheet. |
ref |
(IN) |
URL to include, import and external entities. |
Sets the value of a top-level stylesheet parameter. The parameter value is expected to be a valid XPath expression (note that string literal values would therefore have to be explicitly quoted). NOTE: if no stylesheet is registered, this method is a no op.
PROCEDURE setXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2, value IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
name |
(IN) |
Name of the top level stylesheet parameter. |
value |
(IN) |
Value to be assigned to the stylesheet parameter. |
Removes the value of a top-level stylesheet parameter. NOTE: if no stylesheet is registered, this method is a no op.
PROCEDURE removeXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
name |
(IN) |
Name of the top level stylesheet parameter. |
Sets a value for a particular bind name.
PROCEDURE setBindValue( ctxHdl IN ctxType, bindName IN VARCHAR2, bindValue IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
bindName |
(IN) |
Bind name. |
bindValue |
(IN) |
Bind value. |
Sets the XML meta header. When set, the header is inserted at the beginning of the metadata part (DTD or XMLSchema) of each XML document generated by this object. Note that the last meta header specified is the one that is used; furthermore, passing in null for the header, parameter unsets the meta header.
PROCEDURE setMetaHeader( ctxHdl IN ctxType, header IN CLOB := null);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Header |
(IN) |
Header. |
Sets the XML data header. The data header is an XML entity which is appended at the beginning of the query-generated XML entity, the rowset. The two entities are enclosed by the tag specified through the docTag argument. Note that the last data header specified is the one that is used; furthermore, passing in null for the header, parameter unsets the data header.
PROCEDURE setDataHeader( ctxHdl IN ctxType, header IN CLOB := null, tag IN VARCHAR2 := null);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
header |
(IN) |
Header. |
tag |
(IN) |
Tag used to enclose the data header and the rowset. |
Sets the encoding processing instruction in the XML document.
PROCEDURE setEncodingTag( ctxHdl IN ctxType, enc IN VARCHAR2 := DB_ENCODING);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
enc |
(IN) |
The encoding to use. |
Tells the XSU to throw the raised exceptions. If this call isn't made or if false is passed to the flag argument, the XSU catches the SQL exceptions and generates an XML doc out of the exception's message.
PROCEDURE setRaiseException( ctxHdl IN ctxType, flag IN BOOLEAN);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Throw raised exceptions? |
Tells the XSU whether to throw an OracleXMLNoRowsException in the case when for one reason or another, the XML doc generated is empty. By default, the exception is not thrown.
PROCEDURE setRaiseNoRowsException( ctxHdl IN ctxType, flag IN BOOLEAN);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Throw OracleXMLNoRowsException if no data? |
This turns on or off escaping of XML tags in the case that the SQL object name, which is mapped to a XML identifier, is not a valid XML identifier.
PROCEDURE setSQLToXMLNameEscaping( ctxHdl IN ctxType, flag IN BOOLEAN := true);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Turn on escaping? |
Tells the XSU that if an exception is raised, and is being thrown, the XSU should throw the very exception raised; rather then, wrapping it with an OracleXMLSQLException.
PROCEDURE propagateOriginalException( c txHdl IN ctxType, flag IN BOOLEAN);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Propagate original exception? |
Returns the thrown exception's error code and error message through its arguments (that is, SQL error code). This is to get around the fact that the JVM throws an exception on top of whatever exception was raised; thus, rendering PL/SQL unable to access the original exception.
PROCEDURE getExceptionContent( ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
errNo |
(IN) |
Error number. |
errMsg |
(IN |
Error message. |
Generates and returns the DTD based on the SQL query used to initialize the context. The options are described in the following table.
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
withVer |
(IN) |
Generate the version info? |
|
(IN) |
Clob into which to write the generated XML doc. |
Return the number of rows processed for the query.
FUNCTION getNumRowsProcessed( ctx IN ctxType) RETURN NUMBER;
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Prints the version of the XSU in use.
PROCEDURE getVersion();
Creates the new context, executes the query, gets the XML back and closes the context. This is a convenience function. The context doesn't have to be explicitly opened or closed. The options are described in the following table.
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
sqlQuery |
(IN) |
SQLQuery. |
metaType |
(IN) |
XML metadata type (NONE, DTD, or SCHEMA). |
|
(IN) |
Clob into which to write the generated XML doc. |
This API provides XML_to_DB type functionality.
Type | Description |
---|---|
ctxType |
The type of the query context handle. The type of the query context handle. This the return type of newContext(). |
Creates a save context, and returns the context handle.
FUNCTION newContext(t argetTable IN VARCHAR2) RETURN ctxType;
Parameter | IN / OUT | Description |
---|---|---|
targetTable |
(IN) |
The target table into which to load the XML doc. |
Closes/deallocates a particular save context
PROCEDURE closeContext(ctxHdl IN ctxType);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Names the tag used in the XML doc., to enclose the XML elements corresponding to db. records.
PROCEDURE setRowTag( ctxHdl IN ctxType, tag IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
tag |
(IN) |
Tag name. |
The XSU does mapping of XML elements to db columns/attributes based on the element names (XML tags). This function tells the XSU to do this match case insensitive.
PROCEDURE setIgnoreCase( ctxHdl IN ctxType, flag IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Ignore tag case in the XML doc? 0=FALSE, 1=TRUE. |
Describes to the XSU the format of the dates in the XML document. The syntax of the date format pattern (that is, the date mask), should conform to the requirements of the java.text.SimpleDateFormat class. Setting the mask to null or an empty string, results the use of the default mask -- OracleXMLCore.DATE_FORMAT.
PROCEDURE setDateFormat( ctxHdl IN ctxType, mask IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
mask |
(IN) |
The date mask. |
Changes the batch size used during DML operations. When performing inserts, updates or deletes, it is better to batch the operations so that they get executed in one shot rather than as separate statements. The flip side is that more memory is needed to buffer all the bind values. Note that when batching is used, a commit occurs only after a batch is executed. So if one of the statement inside a batch fails, the whole batch is rolled back. This is a small price to pay considering the performance gain; nevertheless, if this behavior is unacceptable, then set the batch size to 1.
PROCEDURE setBatchSize( ctxHdl IN ctxType, batchSize IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
batchSize |
(IN) |
Batch size. |
Sets the commit batch size. The commit batch size refers to the number or records inserted after which a commit should follow. Note that if commitBatch is < 1 or the session is in "auto-commit" mode then the XSU does not make any explicit commit's. By default the commit-batch size is 0.
PROCEDURE setCommitBatch( ctxHdl IN ctxType, batchSize IN NUMBER);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
batchSize |
(IN) |
Commit batch size. |
Turns on or off escaping of XML tags in the case that the SQL object name, which is mapped to a XML identifier, is not a valid XML identifier.
PROCEDURE setSQLToXMLNameEscaping( ctxHdl IN ctxType, flag IN BOOLEAN := true);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Turn on escaping? |
Adds a column to the "update column list". In case of insert, the default is to insert values to all the columns in the table; on the other hand, in case of updates, the default is to only update the columns corresponding to the tags present in the ROW element of the XML document. When the update column list is specified, the columns making up this list alone will get updated or inserted into.
PROCEDURE setUpdateColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
colName |
(IN) |
Column to be added to the update column list. |
Clears the update column list.
PROCEDURE clearUpdateColumnList( ctxHdl IN ctxType);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Tells the XSU whether or not to preserve whitespace.
PROCEDURE setPreserveWhitespace( ctxHdl IN ctxType, flag IN BOOLEAN := true);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Should XSU preserve whitespace? |
This methods adds a column to the "key column list". In case of update or delete, it is the columns in the key column list that make up the where clause of the update/delete statement. The key columns list must be specified before updates can be done; yet, it is only optional for delete operations.
PROCEDURE setKeyColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
colName |
(IN) |
Column to be added to the key column list. |
Clears the key column list.
PROCEDURE clearKeyColumnList( ctxHdl IN ctxType);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
Registers an XSL transform to be applied to the XML to be saved. If a stylesheet was already registered, it gets replaced by the new one. To un-register the stylesheet, pass in null for the URI. The options are described in the following table.
Syntax | Description |
---|---|
ref IN VARCHAR2 := null); |
Passes in the stylesheet through a URI. |
ref IN VARCHAR2 := null); |
Passes in the stylesheet through a CLOB. |
Sets the value of a top-level stylesheet parameter. The parameter is expected to be a valid XPath expression (not that string literal values would therefore have to be explicitly quoted).
PROCEDURE setXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2, value IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
name |
(IN) |
Parameter name. |
value |
(IN) |
Parameter value as an XPath expression |
Removes the value of a top-level stylesheet parameter.
PROCEDURE removeXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
name |
(IN) |
Parameter name. |
Inserts the XML document into the table specified at the context creation time, and returns the number of rows inserted. The options are described in the following table.
Syntax | Description |
---|---|
RETURN NUMBER; |
Passes in the |
RETURN NUMBER; |
Passes in the |
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
xDoc |
(IN) |
String containing the XML document. |
Updates the table specified at the context creation time with data from the XML document, and returns the number of rows updated. The options are described in the following table.
Syntax | Description |
---|---|
RETURN NUMBER; |
Passes in the |
RETURN NUMBER; |
Passes in the |
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
xDoc |
(IN) |
String containing the XML document. |
Deletes records specified by data from the XML document from the table specified at the context creation time, and returns the number of rows deleted. The options are described in the following table.
Syntax | Description |
---|---|
RETURN NUMBER; |
Uses a VARCHAR2 type for the |
RETURN NUMBER; |
Uses a CLOB type for the |
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
xDoc |
(IN) |
String containing the XML document. |
Tells the XSU that if an exception is raised, and is being thrown, the XSU should throw the very exception raised; rather then, wrapping it with an OracleXMLSQLException.
PROCEDURE propagateOriginalException( ctxHdl IN ctxType, flag IN BOOLEAN);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
flag |
(IN) |
Propagate the original exception? 0=FALSE, 1=TRUE. |
Through its arguments, this method returns the thrown exception's error code and error message (that is, SQL error code) This is to get around the fact that the JVM throws an exception on top of whatever exception was raised; thus, rendering PL/SQL unable to access the original exception.
PROCEDURE getExceptionContent( ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2);
Parameter | IN / OUT | Description |
---|---|---|
ctxHdl |
(IN) |
Context handle. |
errNo |
(IN) |
Error number. |
errMsg |
(IN) |
Error message. |
|
Copyright © 2001, 2002 Oracle Corporation. All Rights Reserved. |
|