ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
The basic XMLIndex is maintained on every DML operation. However, given the computing costs, in many cases the availability of stale result is adequate.
In such situations, it is desirable to defer index updates to a convenient time, for example to a time when the load on the database is low. Thus a mechanism for asynchronous index maintenance is provided.
Creates a secondary index for number values in the VALUE column of a PATH TABLE which is the storage table of an XMLIndex
dbms_xmlindex.createNumberIndex(
xml_index_schema IN VARCHAR2 := USER,
xml_index_name IN VARCHAR2,
num_index_name IN VARCHAR2 := NULL,
num_index_clause IN VARCHAR2 := NULL,
xmltypename IN VARCHAR2 := NULL,
column_name IN VARCHAR2 := NULL);
Executes DMLs required to complete a NONBLOCKING alter index add_group/add_column operation
dbms_xmlindex.process_pending(
xml_index_schema IN VARCHAR2,
xml_index_name IN VARCHAR2,
pending_row_count OUT BINARY_INTEGER,
error_row_count OUT BINARY_INTEGER);
PRAGMA SUPPLEMENTAL_LOG_DATA(process_pending, AUTO_WITH_COMMIT);
DECLARE
num_errored NUMBER := 0;
num_pending NUMBER := 0;
BEGIN
dbms_xmlindex.process_pending('oe', 'po_struct', num_pending, num_errored);
dbms_output.put_line('Number of rows still pending = ' || num_pending);
dbms_output.put_line('Number of rows with errors = ' || num_errored);
END;
/
Number of rows still pending = 0
Number of rows with errors = 0
dbms_xmlindex.syncIndex(
xml_index_schema IN VARCHAR2 DEFAULT USER,
xml_index_name IN VARCHAR2,
partition_name IN VARCHAR2 DEFAULT NULL,
reindex IN BOOLEAN DEFAULT FALSE);
SELECT dbms_metadata.get_ddl('INDEX','XDB$ACL_XIDX','XDB') FROM dual;
DBMS_METADATA.GET_DDL('INDEX','XDB$ACL_XIDX','XDB')
--------------------------------------------------------------------------------
CREATE INDEX "XDB"."XDB$ACL_XIDX" ON "XDB"."XDB$ACL" (OBJECT_VALUE)
INDEXTYPE IS "XDB"."XMLINDEX" PARAMETERS ('PATH TABLE XDBACL_PATH_TAB VALUE
INDEX XDBACL_PATH_TAB_VALUE_IDX')
SELECT c.INDEX_NAME, c.COLUMN_NAME, c.COLUMN_POSITION, e.COLUMN_EXPRESSION
FROM USER_IND_COLUMNS c LEFT OUTER JOIN USER_IND_EXPRESSIONS e
ON (c.INDEX_NAME = e.INDEX_NAME)
WHERE c.TABLE_NAME IN (SELECT PATH_TABLE_NAME FROM USER_XML_INDEXES
WHERE INDEX_NAME = 'PO_XMLINDEX_IX')
ORDER BY c.INDEX_NAME, c.COLUMN_NAME;