在 Oracle Apex SQL 命令中将 RTL 与 SQL 语句一起使用
Using RTL with SQL statement in Oracle Apex SQL Commands
尝试在 Oracle Apex 中写入 WHERE CONTAINS 时 SQL 命令:
WHERE CONTAINS (CAR, 'السيارة البيضاء OR السيارة السوداء', 1) > 0;
我收到以下错误:
Error at line 26/33: ORA-00904: "السيارة البيضاء OR السيارة السوداء": invalid identifier
如果不使用 RTL,它将如下所示并且有效:
WHERE CONTAINS (CAR, 'WHITE CARE OR BLACK CAR', 1) > 0;
感谢您的帮助
您可以使用:
SELECT *
FROM cars
WHERE CONTAINS (CAR, 'السيارة البيضاء OR السيارة السوداء', 1) > 0;
注意:这是 WHERE CONTAINS(car, 'text1 OR text2', 1) > 0
格式,但 RTL 格式使它看起来格式不正确。
其中,对于示例数据:
CREATE TABLE cars ( car ) AS
SELECT 'abc السيارة البيضاء def' FROM DUAL UNION ALL
SELECT 'ghi السيارة السوداء jkl' FROM DUAL UNION ALL
SELECT 'mno pqr' FROM DUAL;
CREATE INDEX cars__car__textidx ON cars(car) INDEXTYPE IS CTXSYS.CONTEXT;
输出:
CAR
abc السيارة البيضاء def
ghi السيارة السوداء jkl
db<>fiddle here
尝试在 Oracle Apex 中写入 WHERE CONTAINS 时 SQL 命令:
WHERE CONTAINS (CAR, 'السيارة البيضاء OR السيارة السوداء', 1) > 0;
我收到以下错误:
Error at line 26/33: ORA-00904: "السيارة البيضاء OR السيارة السوداء": invalid identifier
如果不使用 RTL,它将如下所示并且有效:
WHERE CONTAINS (CAR, 'WHITE CARE OR BLACK CAR', 1) > 0;
感谢您的帮助
您可以使用:
SELECT *
FROM cars
WHERE CONTAINS (CAR, 'السيارة البيضاء OR السيارة السوداء', 1) > 0;
注意:这是 WHERE CONTAINS(car, 'text1 OR text2', 1) > 0
格式,但 RTL 格式使它看起来格式不正确。
其中,对于示例数据:
CREATE TABLE cars ( car ) AS
SELECT 'abc السيارة البيضاء def' FROM DUAL UNION ALL
SELECT 'ghi السيارة السوداء jkl' FROM DUAL UNION ALL
SELECT 'mno pqr' FROM DUAL;
CREATE INDEX cars__car__textidx ON cars(car) INDEXTYPE IS CTXSYS.CONTEXT;
输出:
CAR abc السيارة البيضاء def ghi السيارة السوداء jkl
db<>fiddle here