我有一個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