Index Creation [message #388432] |
Tue, 24 February 2009 13:08 ![Go to next message Go to next message](/forum/theme/orafaq/images/down.png) |
prashanthgs
Messages: 89 Registered: May 2005 Location: chennai
|
Member |
|
|
Hi
While trying to create a index I am getting the below error
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10582: column SEARCH_LANG does not exist in table CITI_CMLINK_ATTR
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
I checked the index name in DBA_INDEXES, its created and is in valid state. But while loading the data to this table getting error as
DBD: Exception Message: ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE
What would be issue?
|
|
|
|
Re: Index Creation [message #389341 is a reply to message #388433] |
Sat, 28 February 2009 21:51 ![Go to previous message Go to previous message](/forum/theme/orafaq/images/up.png) |
![](/forum/images/custom_avatars/43710.gif) |
Barbara Boehmer
Messages: 9104 Registered: November 2002 Location: California, USA
|
Senior Member |
|
|
The error message is pretty self-explanatory. The code that was issued to create the index requires a column named search_lang in the CITI_CMLINK_ATTR table, but there isn't one. You are probably attempting to create an index that uses a multi_lexer or some such preference on a multi-language table and you have specified the search_lang column during the index creation, but have not included that column in the table. Please see the example below that first reproduces the error, then corrects it by adding the search_lang column and dropping and recreating the index.
SCOTT@orcl_11g> CREATE TABLE CITI_CMLINK_ATTR
2 (some_column VARCHAR2 (30))
3 /
Table created.
SCOTT@orcl_11g> begin
2 ctx_ddl.create_preference('english_lexer','basic_lexer');
3 ctx_ddl.set_attribute('english_lexer','index_themes','yes');
4 ctx_ddl.set_attribute('english_lexer','theme_language','english');
5 ctx_ddl.create_preference('german_lexer','basic_lexer');
6 ctx_ddl.set_attribute('german_lexer','composite','german');
7 ctx_ddl.set_attribute('german_lexer','mixed_case','yes');
8 ctx_ddl.set_attribute('german_lexer','alternate_spelling','german');
9 ctx_ddl.create_preference('japanese_lexer','japanese_vgram_lexer');
10 ctx_ddl.create_preference('global_lexer', 'multi_lexer');
11 ctx_ddl.add_sub_lexer('global_lexer','default','english_lexer');
12 ctx_ddl.add_sub_lexer('global_lexer','german','german_lexer','ger');
13 ctx_ddl.add_sub_lexer('global_lexer','japanese','japanese_lexer','jpn');
14 end;
15 /
PL/SQL procedure successfully completed.
SCOTT@orcl_11g> CREATE INDEX your_index
2 ON CITI_CMLINK_ATTR (some_column)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 parameters ('lexer global_lexer language column search_lang')
5 /
CREATE INDEX your_index
*
ERROR at line 1:
ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10582: column SEARCH_LANG does not exist in table CITI_CMLINK_ATTR
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 365
SCOTT@orcl_11g> SELECT status
2 FROM dba_indexes
3 WHERE index_name = 'YOUR_INDEX'
4 /
STATUS
--------
VALID
SCOTT@orcl_11g> ALTER TABLE CITI_CMLINK_ATTR ADD (search_lang VARCHAR2 (3))
2 /
Table altered.
SCOTT@orcl_11g> DROP INDEX your_index
2 /
Index dropped.
SCOTT@orcl_11g> CREATE INDEX your_index
2 ON CITI_CMLINK_ATTR (some_column)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 parameters ('lexer global_lexer language column search_lang')
5 /
Index created.
SCOTT@orcl_11g>
|
|
|