天天看點

Oracle SQL 特殊字元 轉義 嵌套單引号 雙引号

oracle 特殊字元 轉義
oracle學習總結二(轉義字元)PL/SQL
特殊字元 轉義方式
& ||'&'|| 或 ||chr(38)||
_ '/_%' escape '/'
‘’

update userinfo set pageurl='myjsp?page=1&pagesize=10' where id='test'

怎麼處理上例中的特殊字元?

兩個辦法:

1) update userinfo set pageurl='myjsp?page=1'||'&'||'pagesize=10' where id='test'

2) update userinfo set pageurl='myjsp?page=1'||chr(38)||'pagesize=10' where id='test'

其中 || 是連字元, chr(38)跟ASCII的字元轉碼是一緻的。

plsql中還可以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 ng_values where name like 'lady_%'

jieguo 結果顯示 lady_test,lady_test,lady1

正确結果應該是:lady_test,lady_test

不包括 lady1

請各位給出轉義方法,3ks

answer:

select ... from ... where ... like '/_%' escape '/';

轉義字元 %

處理手法如&

轉義字元 ’單引号 在PL/SQL裡兩個單引号等于一個單引号

雙引号 = chr(34)