oracle 将西里尔文转换为拉丁文或拉丁文转换为西里尔文

qnzebej0  于 2023-06-22  发布在  Oracle
关注(0)|答案(1)|浏览(144)

在Oracle DB中有大量数据。为了搜索数据,我们创建了WPF应用程序。当用户键入符号如A%时,查询应同时搜索拉丁文和西里尔文。符号已在数据库中以西里尔文记录。列类型varchar2(20字节),不能更改类型。我试着询问,

Select *
from Table1
where symbol=N'A'; // A - Latin symbol

但没有结果。我在查询我把西里尔符号有结果。
怎么做?

1cklez4t

1cklez4t1#

如果你只有有限的字符数,那么你可以使用TRANSLATE将西里尔字符替换为ASCII字符:

SELECT *
FROM   Table1
WHERE  TRANSLATE(symbol, UNISTR('\0410'), 'A') = 'A';

其中,对于样本数据:

CREATE TABLE table1 (symbol VARCHAR2(10));
INSERT INTO table1 (symbol) VALUES ('A');
INSERT INTO table1 (symbol) VALUES (UNISTR('\0410'));

输出:
| 符号|
| - -----|
| 一个|
| А|
fiddle

相关问题