现在遇到一个很奇怪的问题,我的infobase表上的classid字段建了全文索引,我下面的语句查时出现下面的错误:
SQL> Select * From infobase
2 Where Contains(Classid, '(00010002') > 0;
ORA-29902: error in executing ODCIIndexStart() routine
ORA-20000: Oracle Text error:
DRG-50901: text query parser syntax error on line 1, column 18
用下面的语句查就不会有问题,即把'(00010002' 换成'(00010002)'或'00010002'
SQL> Select * From infobase
2 Where Contains(Classid, '(00010002)') > 0;
SQL> Select * From infobase
2 Where Contains(Classid, '00010002)') > 0;
是不是Contains的语法里不能有单个'('的存在呀?
如果我就想查(00010002下面的子类,如:(00010002001) 、(00010002002)
能把'('转译成字符串吗?
注意:我现在是想用全文索引查,不想用like
SQL> select * from tt where name like '%\%7%' escape '\';
NAME COUNT
---------- ----------
aaa%7bbb
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10783447/viewspace-592331/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10783447/viewspace-592331/