hi,

I've a 'create index' problem ...
I need to create an index on VARCHAR2(4000) col. but something is wrong ??

this is what I've done (815):

1. create table tst (a varchar2(4000));
2. create index tst_idx on tst(a);

message:

ERROR at line 1:
ORA-01450: maximum key length (...) exceeded


I've tried on 2 differents db :

-with 8k block:

ERROR at line 1:
ORA-01450: maximum key length (3218) exceeded

-with 2k block:

ERROR at line 1:
ORA-01450: maximum key length (758) exceeded

Same results , what a pity! :(

I've found in the doc. :

'ORA-01450 maximum key length (string) exceeded

Cause:
The combined length of all the columns specified in a CREATE INDEX statement exceeded the maximum index length. The maximum index length varies by operating system. The total index length is computed as the sum of the width of all indexed columns plus the number of indexed columns. Date fields have a length of 7, character fields have their defined length, and numeric fields have a length of 22. Numeric length = (precision/2) + 1. If negative, add +1.

Action: Select columns to be indexed so the total index length does not exceed the maximum index length for the operating system. See also your operating system-specific Oracle documentation.'


But what this exactly means ?

1.what's the 'maximum index length' on NT and on SUN SOLARIS (I use both) in my sample ?

2.My 'maximum index length' is it : 4000(=all indexed columns) + 1(=number of indexed columns) ?

I don't understand what 'maximum index length' is ? :(((

3.And, of course, what can I do to create my index on my varchar2(4000) col. ?
I suppose I can create an index on a varchar2(4000) col, isn't it ?


thanks in advance