【发布时间】:2019-08-15 00:44:46
【问题描述】:
我有一个变量,想在模糊函数内的查询中使用,但考虑到 var,它给了我一些语法错误或错误结果。
ORA-20000:Oracle 文本错误:
DRG-50901:第 1 行第 21 列 29902 上的文本查询解析器语法错误。
00000 - “执行 ODCIIndexStart() 例程时出错”
当我用一些静态字符串替换模糊函数中的 my_var 变量时,它可以正常工作,但使用变量时它会给我这个错误。
我的查询如下:
DEFINE my_var = 'Bhularam';
SELECT a.EXTERNALID_ENC,
a.EXTERNALID,
a.TELNUMBER,
a.TELAREACODE,
a.DQ_ENGLISH_NAME,
a.DQ_ARABIC_NAME,
a.NAMEFIELD_1,
a.USAGETYPE,
a.MANUAL_UPDATE_FLAG,
a.RULE_UPDATE_FLAG,
a.BUSINESS_UPDATE_FLAG,
a.EXCEL_UPDATE_FLAG
FROM (
SELECT * FROM (
SELECT dqlist.*,
score(1) AS rank
FROM dq_list_hash_full dqlist
WHERE contains(dqlist.dq_english_name
,'definescore(fuzzy(my_var, 1, 6, weight),relevance)',1) > 0
UNION
SELECT
dqlist.*,
score(1) AS rank
FROM
dq_list_hash_full dqlist
WHERE
contains(dqlist.dq_english_name,'!Bhularam',1) > 0
)
ORDER BY
rank DESC
) a
我知道这很愚蠢,但我无法理解它,可能我是甲骨文的新手。请帮帮我。
【问题讨论】:
-
你试过了吗:
'definescore(fuzzy('''||myvar||''', 1, 6, weight),relevance)'? -
@hotfix 试过但没有成功。
标签: sql oracle full-text-search oracle-text