如何从 Oracle DB 查询波斯语搜索匹配项?

How to query Persian search match from Oracle DB?

我正在使用 Oracle 11g 来根据来自数据库的波斯语搜索匹配结果,但我得到的结果是什么,请你协助我如何搜索字段名称的一部分的结果 "address" 与 "تهران" 相匹配,谢谢

以下查询没有结果!

select t1.pname from tableName t1 where t1.address like '%تهران%'

编辑:

列地址的类型是 varchar2,我的数据库字符集是 AL32UTF8,我在 PL/SQL 开发者 GUI 上,运行 下面的查询给了我 %?????% 作为结果。

select '%تهران%' as a from dual;

我在 SQL*Plus 中尝试了同样的方法,但没有运气,结果还是空的。

所以我发现 Oracle 具有 UNISTR 功能,它...

... takes as its argument a text literal or an expression that resolves to character data and returns it in the national character set. The national character set of the database can be either AL16UTF16 or UTF8. UNISTR provides support for Unicode string literals by letting you specify the Unicode encoding value of characters in the string. ...

并且在提取我应该在 Unicode code converter 中搜索它的关键字编码后,我确实使用了 UNISTR 函数,如下所示:

SELECT t1.pname FROM tableName t1 WHERE t1.address
    LIKE (SELECT UNISTR('%2A47312746%') FROM DUAL);

请注意,上面的 %s 是实际文字 % 添加以匹配关键字,如 '%تهران%' 模式。