Oracle CTX_DDL
Version 21c

General Information
Library Note Morgan's Library Page Header
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 Used to create and manage the preferences, section groups, and stoplists required for Text indexes.
AUTHID CURRENT_USER
Constants
Name Data Type Value
 General
LOCK_WAIT NUMBER 0
LOCK_NOWAIT NUMBER 1
LOCK_NOWAIT_ERROR NUMBER 2
MAXTIME_UNLIMITED NUMBER 2147483647
PREFERENCE_IMPLICIT_COMMIT BOOLEAN TRUE
 Opt Levels
OPTLEVEL_FAST VARCHAR2(4) 'FAST'
OPTLEVEL_FULL VARCHAR2(4) 'FULL'
OPTLEVEL_MERGE VARCHAR2(5) 'MERGE'
OPTLEVEL_REBUILD VARCHAR2(7) 'REBUILD
OPTLEVEL_TOKEN VARCHAR2(5) 'TOKEN'
OPTLEVEL_TOKEN_TYPE VARCHAR2(10) 'TOKEN_TYPE'
Data Types TYPE split_rec IS RECORD(
new_sec VARCHAR2(64)  DEFAULT NULL,
idval   VARCHAR2(100) DEFAULT NULL);

TYPE sec_rec IS RECORD(
secname VARCHAR2(500) DEFAULT NULL,
sectag  VARCHAR2(500) DEFAULT NULL);

TYPE split_tab IS TABLE OF split_rec INDEX BY BINARY_INTEGER;

TYPE sec_tab IS TABLE OF sec_rec INDEX BY BINARY_INTEGER;
Dependencies
ANYDATA DRILIST DRVDML
CTX_ANL DRIMLX DRVLSB
CTX_QUERY DRIOBJ DRVRIO
DBMS_ASSERT DRIOPT DRVUTL
DBMS_LOB DRIPARSE DRVXMD
DBMS_SQL DRIPREF DRVXTAB
DBMS_STANDARD DRISGP DR_DEF
DBMS_XDBT DRISPL ODCIINDEXINFO
DRIACC DRIUTL ODCINUMBERLIST
DRIDML DRIXMD ODCIRIDLIST
DRIENT DRUE ODCIVARCHAR2LIST
DRIG DRVDDL PLITBLM
DRIIXS DRVDISP UTL_RAW
Documented Yes: Packages and Types Reference
Exceptions
Error Code Reason
DRG-10502 index <index_name> does not exist
First Available 11.2
Security Model Owned by CTXSYS with EXECUTE granted to CTXAPP, MDSYS and XDB
Source {ORACLE_HOME}/ctx/admin/dr0ddl.pkh
Subprograms
 
ADD_ATTR_SECTION
Add an attribute section to the group attr sections can be added only to the xml sectioner. They denote attributes whose text should be indexed ctx_ddl.add_attr_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2);
TBD
 
ADD_AUTO_OPTIMIZE
Undocumented ctx_ddl.add_auto_optimize(
idx_name  IN VARCHAR2,
part_name IN VARCHAR2 DEFAULT NULL,
optlevel  IN VARCHAR2 DEFAULT ctx_ddl.optlevel_merge);
TBD
 
ADD_FIELD_SECTION
Creates a filed section and assigns it to the specified section group ctx_ddl.add_field_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2,
visible      IN BOOLEAN DEFAULT FALSE);
TBD
 
ADD_FILTER_SECTION
Undocumented ctx_ddl.add_filter_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2,
data_type    IN VARCHAR2);
TBD
 
ADD_INDEX
Adds an index to a catalog index preference ctx_ddl.add_index(
set_name       IN VARCHAR2,
column_list    IN VARCHAR2,
storage_clause IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_MDATA
Changes the MDATA value of a document

Overload 1
ctx_ddl.add_mdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
mdata_value  IN VARCHAR2,
mdata_rowid  IN ROWID,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
Overload 2 ctx_ddl.add_mdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
mdata_values IN sys.odcivarchar2list,
mdata_rowids IN sys.odciridlist,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_MDATA_COLUMN
Map the specified FILTER BY or ORDER BY column name to an MDATA section ctx_ddl.add_mdata_column(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
column_name  IN VARCHAR2);
TBD
 
ADD_MDATA_SECTION
Adds an MDATA metadata section to a document ctx_ddl.add_mdata_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2);
TBD
 
ADD_MVDATA_SECTION
Add a new MV Section. There is a maximum of 100 sections within a section group. ctx_ddl.add_mvdata_section(
group_name   IN VARCHAR2,  -- section group name, [user.]section_group_name
section_name IN VARCHAR2,
tag          IN VARCHAR2,  -- the unique pattern that marks the start of a section
datatype     IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_NDATA_SECTION
Adds a new NDATA section to a document ctx_ddl.add_ndata_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2);
TBD
 
ADD_SDATA
Change the SDATA value of a document ctx_ddl.add_sdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
sdata_value  IN VARCHAR2,
sdata_rowid  IN ROWID,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_SDATA_COLUMN
Map the specified FILTER BY or ORDER BY column name to an SDATA section ctx_ddl.add_sdata_column(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
column_name  IN VARCHAR2);
TBD
 
ADD_SDATA_SECTION
Adds a new SDATA section to a document ctx_ddl.add_sdata_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2
datatype     IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_SEC_GRP_ATTR_VAL
Add a section group attribute value to the list of values of an already existing section group attribute. Must be called after set_sec_grp_attr. ctx_ddl.add_sec_grp_attr_val(
group_name      IN VARCHAR2,
attribute_name  IN VARCHAR2,
attribute_value IN VARCHAR2);
TBD
 
ADD_SPECIAL_SECTION
Add a special section to the group ctx_ddl.add_special_section(group_name   IN VARCHAR2, section_name IN VARCHAR2);
TBD
 
ADD_STOPCLASS
Add a stopclass to a stoplist ctx_ddl.add_stopclass(
stoplist_name IN VARCHAR2,
stopclass     IN VARCHAR2,
stoppattern   IN VARCHAR2);
TBD
 
ADD_STOPTHEME
Add a stoptheme to a stop list ctx_ddl.add_stoptheme(stoplist_name IN VARCHAR2, stoptheme IN VARCHAR2);
TBD
 
ADD_STOPWORD
Adds a stopword to a stoplist ctx_ddl.add_stopword(
stoplist_name IN VARCHAR2,
stopword      IN VARCHAR2,
language      IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_STOP_SECTION
Add a stop section to the group stop sections can be added only to the auto sectioner. They denote those tags which should not be indexed ctx_ddl.add_stop_section(group_name IN VARCHAR2, tag IN VARCHAR2);
TBD
 
ADD_SUB_LEXER
Adds a sub-lexer to a multi-lexer preference ctx_ddl.add_sub_lexer(
lexer_name IN VARCHAR2,
language   IN VARCHAR2,
sub_lexer  IN VARCHAR2,
alt_value  IN VARCHAR2 DEFAULT NULL);
TBD
 
ADD_ZONE_SECTION
Creates a zone section and adds it to the specified section group ctx_ddl.add_zone_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2,
tag          IN VARCHAR2);
TBD
 
ALTER_INDEX
Undocumented ctx_ddl.alter_index(
idx_name   IN VARCHAR2,
parameters IN VARCHAR2);
TBD
 
COPY_POLICY
Create a policy which is a metadata copy of an existing policy or index ctx_ddl.copy_policy(
source_policy IN VARCHAR2,
policy_name   IN VARCHAR2);
TBD
 
CREATE_INDEX_SET
Creates an index set for CTXCAT index types. Only CTXAPP users and CTXSYS can create an index set. ctx_ddl.create_index_set(set_name IN VARCHAR2);
TBD
 
CREATE_POLICY
Create a policy to use with ORA:CONTAINS() ctx_ddl.create_policy(
policy_name   IN VARCHAR2,
filter        IN VARCHAR2 DEFAULT NULL,
section_group IN VARCHAR2 DEFAULT NULL,
lexer         IN VARCHAR2 DEFAULT NULL,
stoplist      IN VARCHAR2 DEFAULT NULL,
wordlist      IN VARCHAR2 DEFAULT NULL);
TBD
 
CREATE_PREFERENCE
A preference is created to customized a tile (framework object). A preference references a framework object. It describes how a referenced object is to be customized. Validates the preference attribute settings and raise an exception if incorrect attribute settings are found. ctx_ddl.create_preference(
preference_name IN VARCHAR2,
object_name     IN VARCHAR2);
exec ctx_ddl.create_preference('_DATASTORE', 'USER_DATASTORE');
 
CREATE_SECTION_GROUP
Creates a section group in the Text data dictionary ctx_ddl.create_section_group(
group_name IN VARCHAR2,
group_type IN VARCHAR2);
TBD
 
CREATE_SHADOW_INDEX
Undocumented ctx_ddl.create_shadow_index(
idx_name         IN VARCHAR2,
parameter_string IN VARCHAR2 DEFAULT NULL,
parallel_degree  IN NUMBER   DEFAULT 1);
TBD
 
CREATE_STOPLIST
Creates a new stoplist ctx_ddl.create_stoplist(
stoplist_name IN VARCHAR2,
stoplist_type IN VARCHAR2 DEFAULT 'BASIC_STOPLIST');
TBD
 
DELETE_MVDATA_VALUES
Delete mvdata section values ctx_ddl.delete_mvdata_values(
idx_name      IN VARCHAR2 DEFAULT NULL,
section_name  IN VARCHAR2 DEFAULT NULL,
mvdata_values IN sys.odcinumberlist,
mvdata_rowids IN sys.odciridlist,
part_name     IN VARCHAR2 DEFAULT NULL);
TBD
 
DROP_INDEX_SET
Drops an index set ctx_ddl.drop_index_set(set_name IN VARCHAR2);
TBD
 
DROP_POLICY
Drops a policy ctx_ddl.drop_policy(policy_name IN VARCHAR2);
TBD
 
DROP_PREFERENCE
Delete the specified preference from the TexTile dictionary. Raise an exception if the preference is referenced in a policy. ctx_ddl.drop_preference(preference_name IN VARCHAR2);
TBD
 
DROP_SECTION_GROUP
Deletes a section group from the Text data dictionary ctx_ddl.create_section_group(group_name IN VARCHAR2);
TBD
 
DROP_SHADOW_INDEX
Undocumented ctx_ddl.drop_shadow_index(idx_name IN VARCHAR2);
TBD
 
DROP_STOPLIST
Drop a stop list ctx_ddl.drop_stoplist(stoplist_name IN VARCHAR2);
TBD
 
EXCHANGE_SHADOW_INDEX
Undocumented ctx_ddl.exchange_shadow_index(
idx_name         IN VARCHAR2,
parameter_string IN VARCHAR2 DEFAULT NULL);
TBD
 
INSERT_MVDATA_VALUES
Insert mvdata section values in a list of documents ctx_ddl.insert_mvdata_values(
idx_name      IN VARCHAR2 DEFAULT NULL,   -- index name
section_name  IN VARCHAR2 DEFAULT NULL,
mvdata_values IN sys.odcinumberlist,      -- mvdata values
mvdata_rowids IN sys.odciridlist,         -- rowids to be updated
part_name     IN VARCHAR2 DEFAULT NULL);  -- partition name
TBD
 
OPTIMIZE_INDEX
Optimize an index ctx_ddl.optimize_index(
idx_name        IN VARCHAR2,
optlevel        IN VARCHAR2,
maxtime         IN NUMBER   DEFAULT NULL,
token           IN VARCHAR2 DEFAULT NULL,
part_name       IN VARCHAR2 DEFAULT NULL,
token_type      IN NUMBER   DEFAULT NULL,
parallel_degree IN NUMBER   DEFAULT 1,
memory          IN VARCHAR2,
background      IN BOOLEAN);
TBD
 
POPULATE_PENDING
Loads the DML pending queue with all base table rowids intended to be used after a create index ... NOPOPULATE ctx_ddl.populate_pending(
idx_name  IN VARCHAR2,
part_name IN VARCHAR2 DEFAULT NULL);
TBD
 
RECREATE_INDEX_ONLINE
Undocumented ctx_ddl.recreate_index_online(
idx_name         IN VARCHAR2,
parameter_string IN VARCHAR2 DEFAULT NULL,
parallel_degree  IN NUMBER   DEFAULT 1,
partition_name   IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_AUTO_OPTIMIZE
Undocumented ctx_ddl.remove_auto_optimize(
idx_name  IN VARCHAR2,
part_name IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_INDEX
Removes an index from a CTXCAT index preference ctx_ddl.remove_index(
set_name    IN VARCHAR2,
column_list IN VARCHAR2);
TBD
 
REMOVE_MDATA
Removes MDATA values from a document

Overload 1
ctx_ddl.remove_mdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
mdata_value  IN VARCHAR2,
mdata_rowid  IN ROWID,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
Overload 2 ctx_ddl.remove_mdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
mdata_values IN sys.odcivarchar2list,
mdata_rowids IN sys.odciridlist,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_OVERLAP_DOLLARS
Undocumented ctx_ddl.remove_overlap_dollars(
idx_name  IN VARCHAR2,
part_name IN VARCHAR2);
TBD
 
REMOVE_SDATA
Undocumented ctx_ddl.remove_sdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
sdata_value  IN VARCHAR2,
sdata_rowid  IN ROWID,
part_name    IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_SECTION
May be used by CTXAPP and CTXADMIN to drop their own sections

Overload 1
ctx_ddl.remove_section(
group_name   IN VARCHAR2,
section_name IN VARCHAR2);
TBD
Overload 2 ctx_ddl.remove_section(
group_name IN VARCHAR2,
section_id IN NUMBER);
TBD
 
REMOVE_STOPCLASS
Deletes a stopclass from a stoplist ctx_ddl.remove_stopclass(
stoplist_name IN VARCHAR2,
stopclass     IN VARCHAR2);
TBD
 
REMOVE_STOPTHEME
Deletes a stoptheme from a stoplist ctx_ddl.remove_stoptheme(
stoplist_name IN VARCHAR2,
stoptheme     IN VARCHAR2);
TBD
 
REMOVE_STOPWORD
Removes a stopword from a stoplist ctx_ddl.remove_stopword(
stoplist_name IN VARCHAR2,
stopword      IN VARCHAR2,
language      IN VARCHAR2 DEFAULT NULL);
TBD
 
REMOVE_SUB_LEXER
Remove a sub lexer from a multi-lexer preference ctx_ddl.remove_sub_lexer(
lexer_name IN VARCHAR2,
language   IN VARCHAR2);
TBD
 
REM_SEC_GRP_ATTR_VAL
Remove a specific section group attribute value from the list of values of an existing section group attribute ctx_ddl.rem_sec_grp_attr_val(
group_name      IN VARCHAR2,
attribute_name  IN VARCHAR2,
attribute_value IN VARCHAR2);
TBD
 
REPLACE_INDEX_METADATA
Replaces metadata for local domain indexes ctx_ddl.replace_index_metadata(
idx_name         IN VARCHAR2,
parameter_string IN VARCHAR2);
TBD
 
REPOPULATE_DOLLARN
Repopulate $N as opposite of $K ctx_ddl.repopulate_dollarn(
idx_name  IN VARCHAR2,
part_name IN VARCHAR2 DEFAULT NULL);
TBD
 
SET_ATTRIBUTE
Sets an attribute preference ctx_ddl.set_attribute(
preference_name IN VARCHAR2,
attribute_name  IN VARCHAR2,
attribute_value IN VARCHAR2);
BEGIN
  ctx_ddl.set_attribute('_DATASTORE', 'PROCEDURE', 'XDB_DATASTORE_PROC');
  ctx_ddl.set_attribute('_DATASTORE', 'OUTPUT_TYPE', 'CLOB');
END;
/
 
SET_SECTION_ATTRIBUTE
Add a section specific attribute ctx_ddl.set_section_attribute(
group_name      IN VARCHAR2,
section_name    IN VARCHAR2,
attribute_name  IN VARCHAR2,
attribute_value IN VARCHAR2);
TBD
 
SET_SEC_GRP_ATTR
Add a section group attribute (if it does not exist) and set its value and raises an error if the section group attribute already exists ctx_ddl.set_sec_grp_attr(
group_name      IN VARCHAR2,
attribute_name  IN VARCHAR2,
attribute_value IN VARCHAR2);
PRAGMA SUPPLEMENTAL_LOG_DATA(set_sec_grp_attr, AUTO);
TBD
 
SPLIT_DOLLARI
Split the $I table ctx_ddl.split_dollari(
idx_name    IN VARCHAR2,
part_name   IN VARCHAR2,
mapping_tab IN VARCHAR2,  -- mapping table name
name_prefix IN VARCHAR2,  -- the prefix used for naming the output $I tables
tspace      IN VARCHAR2 DEFAULT NULL);
TBD
 
SPLIT_ZONE_TOKENS
Move contents of a zone section to one or more zone sections ctx_ddl.split_zone_tokens(
idx_name       IN VARCHAR2,
part_name      IN VARCHAR2 DEFAULT NULL,
source_section IN VARCHAR2,
split_map      IN split_tab);
TBD
 
SYNC_INDEX
Synchronize index ctx_ddl.sync_index(
idx_name        IN VARCHAR2 DEFAULT NULL,
memory          IN VARCHAR2 DEFAULT NULL,
part_name       IN VARCHAR2 DEFAULT NULL,
parallel_degree IN NUMBER   DEFAULT 1,
maxtime         IN NUMBER   DEFAULT NULL,
locking         IN NUMBER   DEFAULT LOCK_WAIT);
TBD
 
UNSET_ATTRIBUTE
Removes a set attribute from a preference ctx_ddl.unset_attribute(
preference_name IN VARCHAR2,
attribute_name  IN VARCHAR2);
TBD
 
UNSET_SECTION_ATTRIBUTE
Unset an existing section attribute ctx_ddl.unset_section_attribute(
group_name     IN VARCHAR2,
section_name   IN VARCHAR2,
attribute_name IN VARCHAR2);
TBD
 
UNSET_SEC_GRP_ATTR
Remove a section group attribute (and its list of values) ctx_ddl.unset_sec_grp_attr(
group_name     IN VARCHAR2,
attribute_name IN VARCHAR2);
PRAGMA SUPPLEMENTAL_LOG_DATA(unset_sec_grp_attr, AUTO);
TBD
 
UPDATE_MVDATA_SET
Update mvdata section values as a set at document level ctx_ddl.update_mvdata_set(
idx_name      IN VARCHAR2 DEFAULT NULL,
section_name  IN VARCHAR2 DEFAULT NULL,
mvdata_values IN sys.odcinumberlist,     -- mvdata values
mvdata_rowids IN sys.odciridlist,        -- rowids to be updated
part_name     IN VARCHAR2 DEFAULT NULL); -- partition name
TBD
 
UPDATE_POLICY
Updates a policy. Replaces the preferences of the policy. Arguments left NULL are not replaced. ctx_ddl.update_policy(
policy_name   IN VARCHAR2,
filter        IN VARCHAR2 DEFAULT NULL,
section_group IN VARCHAR2 DEFAULT NULL,
lexer         IN VARCHAR2 DEFAULT NULL,
stoplist      IN VARCHAR2 DEFAULT NULL,
wordlist      IN VARCHAR2 DEFAULT NULL);
TBD
 
UPDATE_SDATA
Update sdata section value ctx_ddl.update_sdata(
idx_name     IN VARCHAR2,
section_name IN VARCHAR2,
sdata_value  IN sys.anydata,
sdata_rowid  IN ROWID,
part_name    IN VARCHAR2 default NULL);
TBD
 
UPDATE_SUB_LEXER
Update a sub lexer in a multi-lexer preference ctx_ddl.update_sub_lexer(
lexer_name IN VARCHAR2,
language   IN VARCHAR2,
sub_lexer  IN VARCHAR2);
TBD
 
ZONE_TO_FIELD
Migrate from zone to field sections ctx_ddl.zone_to_field(
dx_name       IN VARCHAR2,
part_name     IN VARCHAR2 DEFAULT NULL,
lex_pref      IN VARCHAR2,
storage_pref  IN VARCHAR2,
attr_val_tab  IN VARCHAR2,
zone_sec_list IN sec_tab,
fld_sec_list  IN sec_tab);
TBD

Related Topics
Context
CTX_ADM
CTX_ANL
CTX_CATSEARCH
CTX_CLS
CTX_CONTAINS
CTX_DOC
CTX_ENTITY
CTX_MATCHES
CTX_OUTPUT
CTX_QUERY
CTX_REPORT
CTX_THES
CTX_TREE
CTX_ULEXER
CTX_XPCONTAINS
What's New In 21c
What's New In 23c

Morgan's Library Page Footer
This site is maintained by Dan Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2023 Daniel A. Morgan All Rights Reserved
  DBSecWorx