我试图理解为什么在oracle sql语句中的字符串中,我有这样的东西“%abc(Weiter%”我得不到结果,而如果我使用这个字符串“< em>%abc(%“我确实得到了结果。从我能看到的是”(W“是这里的问题。(存在”Weiter“的元素) 有谁知道接下来怎么办? 谢谢你的时间。
我不能给出确切的sql,但这是它的一部分:
// this brings nothing:
SELECT * FROM tabel_name where name = N'Sunny / Day (Weather)'
// this brings 1 result expected with column value "Sunny / Day (Weather)":
SELECT name FROM tabel_name where id = 3456
// this brings 1 result with column value "Sunny / Day (Weather)":
SELECT * FROM tabel_name where name like N'%Sunny / Day (%'
// this does not bring any result:
SELECT * FROM tabel_name where name like N'%Sunny / Day (W%'
答案 0 :(得分:4)
以下是我尝试重现您的问题时发生的事情。我在这里使用Oracle 11g XE beta:
SQL> create table ntest (name nvarchar2(2000)); Table created. SQL> insert into ntest (name) values (N'Sunny / Day (Weather)'); 1 row created. SQL> commit; Commit complete. SQL> select name from ntest where name like N'%Sunny / Day (%'; NAME -------------------------------------------------------------------------------- Sunny / Day (Weather) SQL> select name from ntest where name like N'%Sunny / Day (W%'; NAME -------------------------------------------------------------------------------- Sunny / Day (Weather)
我不禁得出结论,问题出在您的数据上。也许它中有一些有趣的人物,例如(
和W
之间的zero-width space或soft hyphen?