Oracle更新表字段或者查詢表字段時內容中含有特殊字符&的解決方法
現象
解決方式
1. 字符串拼接
UPDATE T_MENU_INFO SET menu_code='/ABeptjk/gakfzx/abczscsppz', menu_name='平台監控-客服中心-操作手冊'||'&'||'視頻配置' WHERE menu_id='40019';
2. set define off;
-- set define off; 在(PL/SQL的)SQL窗口中執行是無效的, 需要在(PL/SQL的)命令窗口中執行
SQL> set define off; SQL> select * from T_MENU_INFO t where t.menu_name like '%平台監控-客服中心-操作手冊&視頻配置%';
3. chr(38)
-- 在SQL語句中將'&'替換成chr(38),因為chr(38)是'&'的ASCII碼 SQL> Select 'Tom' || chr(38) || 'Jerry' from dual;
( 轉 ) oracle 特殊符號 oracle通配符,運算符的使用 用於where比較條件的有: 等於:=、<、<=、>、>=、<> 包含:in、not in exists、not exists 范圍:between...and、not between....and 匹配測試:like、not like Null測試:is null、is not null 布爾鏈接:and、or、not 通配符: 在where子句中,通配符可與like條件一起使用。在Oracle中: %(百分號): 用來表示任意數量的字符,或者可能根本沒有字符。 _(下划線): 表示確切的未知字符。 ?(問號): 用來表示確切的未知字符。 #(井號): 用來表示確切的阿拉伯數字,0到9。 [a-d](方括號):用來表示字符范圍,在這里是從a到d。 單引號('):在Oracle中,應該只使用單引號將文本和字符和日期括起來,不能使用引號(包括單雙引號)將數字括起來。 雙引號("):在Oracle中,單雙引號含義不同。雙引號被用來將包含特定字符或者空格的列別名括起來。雙引號還被用來將文本放入日期格式。 撇號('):在Oracle中,撇號也可以寫成彼此相鄰的兩個單引號。為了在供應商名字中間查找所有帶撇號的供應商名字,可以這樣編寫代碼: select * from l_suppliers where supplier_name like '%''%' &符號:在Oracle中,&符號常用來指出一個變量。例如,&fox是一個變量,稍微有點不同的一種&& fox。每當&fox出現在Oracle腳本中時,都會要求您為它提供一個值。而使用&&fox,您只需要在& &fox第一次出現時為它提供變量值。如果想將&符號作為普通的符號使用,則應該關閉這個特性。要想關閉這個特性,可以運行以下的命令: set define off ,這是一個SQLplus命令,不是一個SQL命令。SQLplus設置了SQL在Oracle中運行的環境。 雙豎線(||):Oracle使用雙豎線表示字符串連接函數。 星號(*):select *意味着選擇所有的列,count(*)意味着計算所有的行,表示通配符時,表示0個或任意多個字符。 正斜杠(/):在Oracle中,用來終止SQL語句。更准確的說,是表示了“運行現在位於緩沖區的SQL代碼”。正斜杠也用作分隔項。 多行注釋:/*......*/。 不等於:有多種表達方式:!=、^=、<>、not xxx=yyy、not(xxx=yyy)