我有一个VARCHAR2(255)列,我想储存像一个字符串:商店“大于或等于”在Oracle的VARCHAR2列符号
1 ≤ 2
然而,当我运行下面的SQL ≤符号变成了“=”。
update my_table set my_column = '1 ≤ 2';
这导致我的表以下值:
1 = 2
如何将存储在数据库中≤或≥?
我有一个VARCHAR2(255)列,我想储存像一个字符串:商店“大于或等于”在Oracle的VARCHAR2列符号
1 ≤ 2
然而,当我运行下面的SQL ≤符号变成了“=”。
update my_table set my_column = '1 ≤ 2';
这导致我的表以下值:
1 = 2
如何将存储在数据库中≤或≥?
使用unistr
来存储UTF8数据。它不像普通字符串那么方便,但它避免了客户端没有正确解释UTF8导致的错误。
--≥
select unistr('1 \2265 2') from dual;
--≤
select unistr('1 \2264 2') from dual;
不错的解决方案。但是,OP的要求首先是渲染问题,而不是数据库之一。为什么使用特殊字符,因为它们在字符集中不是常量。 – 2014-10-08 19:36:29
@LalitKumarB很难确切知道字符串乱码的位置。它可以在更新或选择上。某些客户端(如PL/SQL Developer)将始终正确显示和检索UTF8,但不会将其正确发送到服务器。 [这些代码](http://www.fileformat.info/info/unicode/char/2264/index.htm)应该适用于UTF8或UTF16。如果他们使用ASCII7,嗯,他们应该有问题。 :) – 2014-10-08 19:49:58
你使用什么字符集? http://docs.oracle.com/cd/B10501_01/server.920/a96529/ch2.htm#101203 – Donal 2014-10-08 19:00:43
我正在使用AL32UTF8 – spots 2014-10-08 19:03:32
不要说,显示它。请执行以下操作,'select * from table where column ='1≤2''并将结果复制粘贴到此处。编辑您的帖子并添加结果。 – 2014-10-08 19:12:27