【发布时间】:2017-12-01 14:04:34
【问题描述】:
我遇到了一些麻烦,在线搜索时找不到直接的答案。 我正在使用 oracle apex 5.1.3,我为带有全文搜索的报告编写了一些 plsql,但似乎无法对其应用分数,我知道我犯了一个金发错误,但我知道基本查询有效。
这是我原来的查询
SELECT VENUE_NAME, CITY, POSTCODE, score(1) + score(2) as score
FROM GAMEVENUE
WHERE
(
CONTAINS(VENUE_NAME, '$FUZZY(plymouth)', 1) > 0
OR CONTAINS(CITY, '$FUZZY(plymouth)', 2) > 0
OR CONTAINS(POSTCODE, 'plymouth') > 0
)
ORDER BY score DESC;
这就是问题所在,任何帮助都会很棒。
解析返回的查询结果为“ORA-06550:第 9 行,第 11 列:ORA-29908:缺少辅助运算符的主要调用”。如果您认为您的查询在语法上是正确的,请选中下面的“使用通用列名”复选框以继续而不进行解析。
DECLARE
l_query VARCHAR2 (4096);
BEGIN
l_query := '
select
"VENUE_ID",
"VENUE_NAME",
"CITY",
"VENUE_NO",
"POSTCODE",
dbms_lob.getlength("THUMBNAIL") "THUMBNAIL",
score(1) + score(2) as score
FROM "GAMEVENUE" i';
IF v('P2_REPORT_SEARCH') IS NOT NULL THEN
l_query := l_query||' '||'
where
(
contains(VENUE_NAME, ''$fuzzy('|| v('P2_REPORT_SEARCH') ||'), 1'') > 0 or
contains(CITY, ''$fuzzy('|| v('P2_REPORT_SEARCH') ||'), 2'') > 0 or
contains(POSTCODE, '''|| v('P2_REPORT_SEARCH') ||''') > 0
)
ORDER BY score DESC';
END IF;
RETURN l_query;
END;
【问题讨论】:
标签: sql plsql full-text-search oracle-apex