今天在向Oracle數據庫中插入數據的時候遇到了下面這個錯誤:
經過了一番排查之後,發現彈出這個對話框的原因是我插入的數據中有“&”這個符號,
因爲要插入數據的表中有url這個字段,而上圖中的兩個變量正是url中的變量:
insert into LOT (DATE,SOURCE)
values (to_date('06-08-2017 17:20:00', 'dd-mm-yyyy hh24:mi:ss'),
'http://chart.cp.360.cn/kaijiang?lotId=167&spanType=2&span=');
因此需要對特殊字符“&”進行轉義,方法有兩種:
insert into LOT (DATE,SOURCE)
values (to_date('06-08-2017 17:20:00', 'dd-mm-yyyy hh24:mi:ss'),
'http://chart.cp.360.cn/kaijiang?lotId=167'||'&'||'spanType=2'||'&'||'span=');
insert into LOT (DATE,SOURCE)
values (to_date('06-08-2017 17:20:00', 'dd-mm-yyyy hh24:mi:ss'),
'http://chart.cp.360.cn/kaijiang?lotId=167'||chr(38)||'spanType=2'||chr(38)||'span=');
我們使用了|| 連字符, chr(38)跟ASCII的字符轉碼是一致的。
注:plsql中還可以set define off來關閉特殊字符,還可以用show define來查看有些特殊定義的字符。