Sql 在Oracle函数中使用变量
我有一个变量,希望在fuzzy函数内的查询中使用,但考虑到该变量,它给了我一些语法错误或错误的结果 ORA-20000:Oracle文本错误:Sql 在Oracle函数中使用变量,sql,oracle,full-text-search,oracle-text,Sql,Oracle,Full Text Search,Oracle Text,我有一个变量,希望在fuzzy函数内的查询中使用,但考虑到该变量,它给了我一些语法错误或错误的结果 ORA-20000:Oracle文本错误: DRG-50901:第1行第21列29902上的文本查询解析器语法错误。 00000-“执行ODCIIndexStart()例程时出错” 当我用一些静态字符串替换fuzzy函数中的my_var变量时,它工作得很好,但变量给了我这个错误 我的质询如下: DEFINE my_var = 'Bhularam'; SELECT a.EXTERNALID_EN
DRG-50901:第1行第21列29902上的文本查询解析器语法错误。
00000-“执行ODCIIndexStart()例程时出错” 当我用一些静态字符串替换fuzzy函数中的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
我知道这是一件非常愚蠢的事情,但我无法改变我的想法,也许我是甲骨文的新手。请帮助我。如果使用sqlplus,请验证用于标识替换变量的前缀字符。默认设置为“&”
sqlplus > show define
define "&" (hex 26)
例如,尝试在查询中使用替换变量
sqlplus > define my_var='hello world!'
sqlplus > select '&my_var' from dual;
old 1: select '&my_var' from dual
new 1: select 'hello world!' from dual
'HELLOWORLD!'
--------------------------------
hello world!
对于查询,请尝试(假设define设置为“&”):
您是否尝试过:
'definescore(fuzzy('''myvar''1,6,weight),relevance)
?@hotfix尝试过但没有成功。
'definescore(fuzzy(&my_var, 1, 6, weight),relevance)',1)