Thursday, May 10, 2007

ORA-29879: cannot create multiple domain indexes on a column list using same indextype

Sometimes the text of oracle's error messages is quite cryptic, but fortunately it's not the case of this one:
ORA-29879: cannot create multiple domain indexes on a column list using same indextype

As a matter of fact it's fairly easy to see why oracle is complaining about the attempt of creating an domain index on a column that has been already specified in a different index and you can easily find out the "redundant" object by executing a query like this:

select * from ctx_user_indexes
where instr(idx_text_name,'PUT THE COLUMN NAME HERE IN UPPERCASE')>0

As you may already know, you can't have two indexes of the same type on the same column, but you can have a CTXCAT index and a CONTEXT index on the same column at the same time.

This means that the query above might return more than one row.
This is clearly possible because the CONTEXT type is used by queries with the CONTAINS operator, whilst the CTXCAT type is used by queries with the CATSEARCH operator.

In the end there is nothing to worry about, having two indexes of the same type on the same column would just mean a waste of resources and Oracle doesn't allow you to do that.

1 comment:

Anonymous said...

Wouldn't it be less cryptic if the Oracle error message gave the name of the column so you could execute the statement you provided?

yes you can!

Two great ways to help us out with a minimal effort. Click on the Google Plus +1 button above or...
We appreciate your support!

latest articles