Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle函数中使用变量_Sql_Oracle_Full Text Search_Oracle Text - Fatal编程技术网

Sql 在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

我有一个变量,希望在fuzzy函数内的查询中使用,但考虑到该变量,它给了我一些语法错误或错误的结果

ORA-20000:Oracle文本错误:
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)