Re: Function Based Index and java.lang.String

From: Jim Kennedy <kennedy-downwithspammersfamily_at_attbi.net>
Date: Tue, 22 Jun 2004 04:29:56 GMT
Message-ID: <8BOBc.92502$0y.55645_at_attbi_s03>


"Min-Koo Seo" <pool0078_at_hanmail.net> wrote in message news:4c458db8.0406210740.561bf50c_at_posting.google.com...
> Hi.
>
> I have a java stored procedure whose spec is as follows:
>
> CREATE OR REPLACE FUNCTION DECODE_SEQUENCE(SEQUENCE VARCHAR2) RETURN
> VARCHAR2
> DETERMINISTIC
> AS LANGUAGE JAVA
> NAME
'kr.ac.dke.protein.compression.SequenceCompressor.decode(java.lang.String)
> return java.lang.String';
> /
>
> AND I want to make an index like below:
>
> CREATE INDEX K0_IDX ON K0(DECODE_SEQUENCE(TYPESTR), TYPELEN)
> NOLOGGING
> COMPRESS 2
> /
>
> However, above statement raises an error, saying that 'Maximum size of
> index field is excceded.' Hence, I've changed the index creation
> statement.
>
> CREATE INDEX K0_IDX ON K0(SUBSTR(DECODE_SEQUENCE(TYPESTR),1,1),
> TYPELEN)
> NOLOGGING
> COMPRESS 2
> /
>
> This works.
>
> Here's the question. Can't I create an index on java.lang.String
> without using SUBSTR function?
>
> Regards,
> Minkoo Seo

It doesn't know how large a key is and a key cannot be larger than half a db block. But with substring the key cannot exceed half a database block. Jim Received on Tue Jun 22 2004 - 06:29:56 CEST

Original text of this message