Oracle 過濾特殊字元

來源:互聯網
上載者:User

項目中遇到以下問題。頁面傳來一個url地址。根據這個url地址去尋找記錄。

關鍵是url地址含有特殊字元。如單引號',地址符&等。

%和_等符號可以不考慮,因為使用的是=  如果使用的是like,那麼就要對%和_進行轉義了。

以前轉義用下列語句:like '\%ab\_' escape '\'

escape指定\為轉義符號,轉義%,_特殊符號。

試了試,用escape不能在 = '' 形式的語句中轉移。那麼如何處理呢。

v_url := replace(p_url,'''',''''''); -- 將url中包含的每個引號全部替換為2個。

&是個讓人糾結的特殊字元。如果不進行轉義,則在運行中會提示你輸入字元。網上找了下,用如下方法進行轉義:

v_url := replace(v_url,'&','''||chr(38)||''');  -- 即將&替換成chr(38);

那麼一個url   : http://www.baidu.org.tw/ab'cd&ef  經過上述步驟轉化為:

http://www.baidu.org.tw/ab''cd&ef

http://www.baidu.org.tw/ab''cd''||chr(38)||''ef

即可在資料庫中正常查詢了。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.