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)

 

posted on 2017-06-07 10:38  time_on  阅读(27292)  评论(0编辑  收藏  举报