Would Oracle Text do it for you?
http://download.oracle.com/docs/cd/B10500_01/text.920/a96517/cdefault.htm


On Fri, Jun 10, 2011 at 9:08 PM, gayathri Dev <gd0...@gmail.com> wrote:

> Thanks for the solution David.
>
> But this query is a part of Dynamic SQL that gets generated by PL/SQL
> block.
> and the string can be any thing else. ABC was just an example i gave.
>
> Please suggest.
>
>
> Regards,
> G.
>
>
>
>
> On Fri, Jun 10, 2011 at 4:50 PM, ddf <orat...@msn.com> wrote:
>
>>
>>
>> On Jun 10, 4:28 pm, gayathri Dev <gd0...@gmail.com> wrote:
>> > Hi All,
>> >
>> > I have following query :
>> >
>> > SELECT  EMP_NAME FROM  EMP
>> > WHERE  UPPER(EMP_NAME) LIKE '%ABC%';
>> >
>> > CREATE  INDEX IX_NAME ON
>> > emp(UPPER(EMP_NAME));
>> > Looks like using the meta character (%) both leading and trailing would
>> not
>> > use the index and go for Full table scan.
>> >
>> > Pls advise how can i optimize above query.
>> >
>> > Thanks in advance,
>> > G
>>
>>
>> SQL> create index ix_name on
>>  2  emp(instr(ename, 'ABC'));
>>
>> Index created.
>>
>> SQL> select * from emp
>>  2  where instr(ename, 'ABC') > 0
>>  3  /
>>
>>     EMPNO ENAME      JOB              MGR HIREDATE         SAL
>> COMM     DEPTNO
>> ---------- ---------- --------- ---------- --------- ----------
>> ---------- ----------
>>      7783 BLABCO     MANAGER         7839 09-JUN-81
>> 2450                    10
>>
>>
>> Execution Plan
>> ----------------------------------------------------------
>> Plan hash value: 3587740764
>>
>>
>> ---------------------------------------------------------------------------------------
>> | Id  | Operation                   | Name    | Rows  | Bytes | Cost
>> (%CPU)| Time     |
>>
>> ---------------------------------------------------------------------------------------
>> |   0 | SELECT STATEMENT            |         |     1 |    87 |
>> 2   (0)| 00:00:01 |
>> |   1 |  TABLE ACCESS BY INDEX ROWID| EMP     |     1 |    87 |
>> 2   (0)| 00:00:01 |
>> |*  2 |   INDEX RANGE SCAN          | IX_NAME |     1 |       |
>> 1   (0)| 00:00:01 |
>>
>> ---------------------------------------------------------------------------------------
>>
>> Predicate Information (identified by operation id):
>> ---------------------------------------------------
>>
>>   2 - access(INSTR("ENAME",'ABC')>0)
>>
>> Note
>> -----
>>   - dynamic sampling used for this statement
>>
>>
>> Statistics
>> ----------------------------------------------------------
>>          0  recursive calls
>>          0  db block gets
>>          2  consistent gets
>>          0  physical reads
>>          0  redo size
>>        826  bytes sent via SQL*Net to client
>>        385  bytes received via SQL*Net from client
>>          2  SQL*Net roundtrips to/from client
>>          0  sorts (memory)
>>          0  sorts (disk)
>>          1  rows processed
>>
>> SQL>
>>
>>
>> David Fitzjarrell
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Oracle PL/SQL" group.
>> To post to this group, send email to Oracle-PLSQL@googlegroups.com
>> To unsubscribe from this group, send email to
>> oracle-plsql-unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/Oracle-PLSQL?hl=en
>>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Oracle PL/SQL" group.
> To post to this group, send email to Oracle-PLSQL@googlegroups.com
> To unsubscribe from this group, send email to
> oracle-plsql-unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/Oracle-PLSQL?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Oracle PL/SQL" group.
To post to this group, send email to Oracle-PLSQL@googlegroups.com
To unsubscribe from this group, send email to
oracle-plsql-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/Oracle-PLSQL?hl=en

Reply via email to