欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

oracle define (hex 26),oracle 特殊字符轉義

发布时间:2025/4/5 编程问答 75 豆豆
生活随笔 收集整理的这篇文章主要介绍了 oracle define (hex 26),oracle 特殊字符轉義 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

關鍵詞: oracle    轉義

環境:oracle 9i  plsql

在plsql里邊執行:

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

這條sql語句往數據庫的pageurl字段放進去了一個url地址,但是執行的時候卻並非那么理想,因為這其中有一個oracle的特殊字符,需要進行轉義,那就是字符'&'.

怎么處理上例中的特殊字符?

兩個辦法:

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

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

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

plsql中還可以set define off來關閉特殊字符,還可以用showdefine來查看有些特殊定義的字符。

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

問 : 如何轉義 下划線 _

select * from ng_values wherename 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) ?

SQL> SET DEFINE OFF

SQL> SHOW DEFINE

define OFF

SQL> INSERT INTO VALUES ('AT&T');

/

1 row created

(方法二)

SQL> SHOW ESCAPE

escape 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 define (hex 26),oracle 特殊字符轉義的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。