Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: DRG-50901 and escape characters
On Sep 21, 12:34 pm, "neo" <nelsounet_NO_SP..._at_free.fr_NO_SPAM> wrote:
> Hi everyone,
>
> I would like to make this work and I don't understand why it throws an
> DRG-50901 error ( wildcard query expansion resulted in too many terms )
>
> The select is this one :
>
> SELECT COL1 FROM TABLE1 WHERE (CONTAINS(COL1, 'someting\(%)' ) > 0)
>
> The goal is to search "something)*"
>
> the "\" should escape the ")" only..
>
> SELECT COL1 FROM TABLE1 WHERE (CONTAINS(COL1, 'someting%)' ) > 0)
> works fine
> and
>
> SELECT COL1 FROM TABLE1 WHERE (CONTAINS(COL1, 'someting\(' ) > 0)
> works too.
>
> Then What is wrong and how to make this working ?
>
> Thank you for your answer !
Are those the actual input you were testing? The lonesome right parenthesis in examples 1 and 2 look suspicious. Which version?
On 10.2.0.1 :
SQL> select * from t where contains(x,'printf\(%)')>0;
select * from t where contains(x,'printf\(%)')>0
*
ERREUR Ó la ligne 1 :
ORA-29902: erreur d'exÚcution de la routine ODCIIndexStart() ORA-20000: Oracle Text error: DRG-50901: erreur de syntaxe de l'analyseur d'interrogation textuelleÓ la
SQL> select * from t where contains(x,'printf%)')>0;
select * from t where contains(x,'printf%)')>0
*
ERREUR Ó la ligne 1 :
ORA-29902: erreur d'exÚcution de la routine ODCIIndexStart() ORA-20000: Oracle Text error: DRG-50901: erreur de syntaxe de l'analyseur d'interrogation textuelleÓ la
SQL> select * from t where contains(x,'printf\(')>0;
X
then printf($foo);
These results make perfect sense. Don't you get similar ones?
Jerome Received on Fri Sep 21 2007 - 07:42:14 CDT