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)