Oracle Text + NLS_* parameters = hell

If you need to do some kind of “full-text”, fuzzy text search and you use Oracle, you will probably end up using Oracle Text because ,well, truckloads of money have already been spent on the Oracle database itself, right?🙂

You may have reached this page after much hair-pulling because of the following error when using something like “CONTAINS(no_nome,’?eracles or ?diego’)>0 “:


09:50:03,519 ERROR [JDBCExceptionReporter] ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
DRG-00100: internal error, arguments : [50935],[drpn.c],[992],[],[]
DRG-00100: internal error, arguments : [50935],[drpnw.c],[604],[],[]
DRG-00100: internal error, arguments : [51002],[drwa.c],[576],[],[]
DRG-00100: internal error, arguments : [51028],[drwaf.c],[809],[204],[ERACLES]
DRG-00100: internal error, arguments : [50401],[dreb.c],[1040],[],[]
ORA-00600: internal error code, arguments: [qernsRowP], [1], [], [], [], [], [], []

I’ve lost some hair trying to figure out this obscure error, and I finally found the offending code:


HibernateUtil.getInstance().getSession().connection().prepareStatement("alter session set nls_sort=Latin_AI").executeUpdate();
HibernateUtil.getInstance().getSession().connection().prepareStatement("alter session set nls_comp=linguistic").executeUpdate();

This was used to set up case-insensitive searches, but when I removed those lines the error was gone! If you have similar statements executed before the SELECT, try to remove them and see how it works. I guess Oracle Text is not compatible with some of the nls_* parameters.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: