在Oracle DB中有大量数据。为了搜索数据,我们创建了WPF应用程序。当用户键入符号如A%时,查询应同时搜索拉丁文和西里尔文。符号已在数据库中以西里尔文记录。列类型varchar2(20字节),不能更改类型。我试着询问,
Select * from Table1 where symbol=N'A'; // A - Latin symbol
但没有结果。我在查询我把西里尔符号有结果。怎么做?
1cklez4t1#
如果你只有有限的字符数,那么你可以使用TRANSLATE将西里尔字符替换为ASCII字符:
TRANSLATE
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
1条答案
按热度按时间1cklez4t1#
如果你只有有限的字符数,那么你可以使用
TRANSLATE
将西里尔字符替换为ASCII字符:其中,对于样本数据:
输出:
| 符号|
| - -----|
| 一个|
| А|
fiddle