在處理sql時,遇到insert 或update 的參數中含有特殊字符“&”,下划線“_”, 單引號" ' "等時,要做轉義處理。
例:插入特殊字元'&'
update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'
兩個辦法:
1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'
2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'
注:其中 || 是連字符, chr(38)跟ASCII的字符轉碼是一致的。
例:搜索以“QA_”開頭的數據 :
select CODE from CNT_CODELIST where code like 'QA_%'
結果為:QA_OFFICER_1,QA_OFFICER_2,QA112
不符合,必須把下划線轉義
select CODE from CNT_CODELIST where code like 'QA/_%'escape '/'
結果為:QA_OFFICER_1,QA_OFFICER_2
轉義字符 % 處理手法如&
轉義字符 ’單引號 在PL/SQL里兩個單引號等於一個單引號
補充:
SQL中escape的用法
使用 ESCAPE 關鍵字定義轉義符。 在模式中,當轉義符置於通配符之前時,該通配符就解釋為普通字符。
例如,要搜索在任意位置包含字符串 5% 的字符串: WHERE ColumnA LIKE '%5/%%' ESCAPE '/'
前后兩個%作為通配符使用,中間的%經過ESCAPE 轉義,作為普通字符使用