Oracle轉義字元

2021-08-27 19:43:16 字數 2107 閱讀 9129

1、oracle 特殊字元 轉義

環境:oracle 9i  plsql

在plsql裡邊執行:

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

這條sql語句往資料庫的pageurl欄位放進去了乙個url位址,但是執行的時候卻並非那麼理想,因為這其中有乙個oracle的特殊字元,需要進行轉義,那就是字元'&'.

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

兩個辦法:

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來檢視有些特殊定義的字元。

2、oracle 中如何轉義 特殊字元 

問 : 如何轉義 下劃線 _

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 '/'; 3、

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 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 'myjsp?page=1&pagesize=10' from dual;

select 'myjsp?page=1&pagesize=10' from dual;

sql>   create   table   a   (b   varchar2(10));   

table   created   

sql>   insert   into   a   values('_a');   

1   row   inserted   

sql>   select   b   from   a   where   instr(b,'_a')>0;   

b   

----------   

_a   

select   b   from   a   where   b   like   '%\_a%'   escape   '\'

先啟動轉義符   

set   escape   on   

select   b   from   a   where   b   like   '%\_a%'   escape   '\';

select   b   from   a   where   b   like   '%\_a%'   escape   '\'

oracle 預設轉義字元 Oracle轉義字元

1 oracle 特殊字元 轉義 在plsql裡邊執行 update userinfo set pageurl myjsp?page 1 pagesize 10 where id test 1 update userinfo set pageurl myjsp?page 1 pagesize 10 ...

oracle 預設轉義字元 oracle轉義字元

sql select from test where test like sdd escape test sdd kk 轉義字元為 sql select from test where test like sdd escape test sdd kk 轉義字元為 sql select from te...

Oracle轉義字元

sql select from test test sdd kk d ddfsfsa dffa asfs 12345 1 2345 1 54321 2 54321 54321 a b 已選擇9行。其中包含特殊的字元分別為 有可能包含這些字元的資料含有錯誤,或者需要查詢包含這些字元的資料。sql se...