我有以下 SQL 语句。
select emp_no,dob,dept_no from v_depts
where catsearch (emp_no,'abc',NULL) > 0
or
catsearch (dept_no,'abc',NULL) > 0
哪里v_depts
有风景。
现在我想添加一个或多个表作为连接,以便我可以对列进行文本搜索,例如employee_details
包含员工信息,我可以加入emp_no
我已经在employee_details
表上为emp_name
列创建了索引,但是我无法加入 v_depts 进行搜索,因为我将我的 sql 语句修改为
select a.emp_no,a.dob,a.dept_no from v_depts a left outer join employee_details b
on (a.emp_no = b.emp_no)
where catsearch (a.emp_no,'abc',NULL) > 0
or
catsearch (a.dept_no,'abc',NULL) > 0
or
catsearch (b.emp_name,'abc',NULL) > 0
它给了我错误
ORA-20000: Oracle Text error:
DRG-10849: catsearch does not support functional invocation
DRG-10599: column is not indexed
即使我已经为employee_details
表中的 emp_name 列创建了索引。我怎么解决这个问题?
emp_name 的索引语句
CREATE INDEX IDX_EMP_DETAILS ON EMPLOYEE_DETAILS(EMP_NAME)INDEXTYPE IS CTXSYS.CTXCAT