在撰寫 SQL 語句時,若遇到無法直接處理的特殊符號(如 &、單引號等),最有效的方法是利用其 ASCII 碼值配合 CHR() 函數進行拼接。這不僅能避免語法錯誤,還能確保字串在不同環境下的相容性。
ASCII() 函數取得。SELECT ASCII('&') FROM dual; 回傳 38。CHR(),再用串聯運算子(||)組合。SELECT 'Alibaba' || CHR(38) || 'Taobao' FROM dual; 產生 Alibaba&Taobao。在 UPDATE 或 INSERT 含查詢參數的 URL 時,常需插入 & 分隔參數。直接寫入會導致解析錯誤,改用 CHR(38) 即可繞過:
UPDATE url_table
SET url = 'action.do?name=a' || CHR(38) || 'pwd=abc';
-- 實際寫入:action.do?name=a&pwd=abc
ASCII/CHR 的資料庫。小提醒:若資料庫支援 QUOTE_LITERAL 或參數化查詢,優先考慮更安全的參數綁定寫法。