General Information
Library Note
Morgan's Library Page Header
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
DRIIXS
DRVLSB
CTX_ANL
DRILIST
DRVMNT
CTX_QUERY
DRIOBJ
DRVRIO
DBMS_ASSERT
DRIOPT
DRVUTL
DBMS_LOB
DRIPARSE
DRVXMD
DBMS_SEARCH
DRIPREF
DRVXTAB
DBMS_SQL
DRISGP
DR_DEF
DBMS_STANDARD
DRISPL
ODCIINDEXINFO
DBMS_UTILITY
DRIUTL
ODCIRIDLIST
DBMS_XDBT
DRIXMD
ODCIVARCHAR2LIST
DRIACC
DRUE
PLITBLM
DRIDML
DRVDDL
PRVT_ORACHAIN
DRIENT
DRVDISP
UTL_FILE
DRIG
DRVDML
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_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_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_PATH (new 23ai)
Adds a new path
ctx_ddl.add_path(
pref_name IN VARCHAR2,
path_type IN VARCHAR2,
path_string IN VARCHAR2);
TBD
ADD_PATH_VECTORIZER (new 23ai)
Undocumented
ctx_ddl.add_path_vectorizer(
pref_name IN VARCHAR2,
path_type IN VARCHAR2,
path_string 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
CLEAR_USER_INDEX_ERRORS (new 23ai)
Undocumented
ctx_ddl.clear_user_index_errors(idx_name 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_PATH_LIST (new 23ai)
Creates a new path list
ctx_ddl.create_path_list(
pref_name IN VARCHAR2,
format IN NUMBER,
behavior 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
DROP_INDEX_SET
Drops an index set
ctx_ddl.drop_index_set(set_name IN VARCHAR2);
TBD
DROP_PATH_LIST (new 23ai)
Drops the named path list
ctx_ddl.drop_path_list(pref_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
LOAD_STOPLIST (new 23ai)
Loads a stop list
ctx_ddl.open_stoplist(
stoplist_name IN VARCHAR2,
stoplist_dir IN VARCHAR2,
stoplist_file IN VARCHAR2,
language IN VARCHAR2,
language_dependent IN BOOLEAN);
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);
exec ctx_ddl.optimize_index ('SRCH_SKILL_INDEX','FAST');
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);
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);
exec ctxsys.ctx_ddl.sync_index ('SRCH_COURSE_CD_INDEX', '20M');
CREATE OR REPLACE PROCEDURE sync_all_ctx_indexes AUTHID DEFINER IS
l_err LONG;
BEGIN
FOR x IN (SELECT u.name idx_owner, idx_name idx_name
FROM sys.user$ u, ctxsys.dr$index i
WHERE i.idx_owner# = u.user#
AND u.name <> 'CTXSYS') LOOP
BEGIN
ctxsys.ctx_ddl.sync_index (x.idx_owner || '.' || x.idx_name);
EXCEPTION
WHEN OTHERS THEN
l_err := l_err || sqlerrm;
END;
END LOOP;
IF (l_err IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20001, 'Errors ' || l_err);
END IF;
END;
/
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);
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