SQL 中的特殊字符&處理
update userinfo set pageurl = 'myjsp page=1&pagesize=10' where id = 'test';
怎么處理上例中的特殊字符?
/**兩個辦法,其中 || 是連字符, chr(38)跟ASCII的字符轉碼是一致的。*/ update userinfo set pageurl = 'myjsp page=1' || '&' || 'pagesize=10' where id = 'test'; update userinfo set pageurl = 'myjsp page=1' || chr(38) || 'pagesize=10' where id = 'test';
如果是在SQL*PLUS中,注意是命令行的那種:還可以set define off 來關閉特殊字符,還可以用show define來查看有些特殊定義的字符。
例如:
(方法一) insert into t(col) values(chr(ascii('&'))) ; SQL> SHOW DEFINE define "&" (hex 26) <--- DEFINE的default值是 ‘&’ SQL> SET DEFINE OFF SQL> SHOW DEFINE define OFF SQL> INSERT INTO <table_name> VALUES ('AT&T'); / 1 row created
(方法二) SQL> SHOW ESCAPE escape OFF <--- ESCAPE的default值是 OFF SQL> SET ESCAPE ON SQL> SHOW ESCAPE escape "\" (hex 5c) SQL> INSERT INTO temp_table VALUES ('select * from emp where ename = \&1'); 1 row created.
如何轉義 下划線 _
select ... from ... where ... like '/_%' escape '/';
轉義字符 % 處理手法如&
轉義字符 ’單引號 在PL/SQL里兩個單引號等於一個單引號
雙引號 = chr(34)