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.