oracle中查詢或插入特殊字符


如單引號(''或')與符號(&)等

1.單引號:select '''' from aa01    結果為'

    select '''''' from aa01  結果為''

    select ''''||'xx'||'''' from aa01 結果為'xx'

    如果直接查詢select ''' from aa01 會報錯

    同樣也可以用chr(39)函數將39ASCII碼轉換為對應的字符,即select chr(39)||'xx'||chr(39) from aa01

2.與符號:select '&&x=' from aa01 結果為&x=

    如果直接使用select '&x=' from aa01 則會報錯

    同樣也可以使用chr(38)轉換,即select chr(38)||'x=' from aa01

 

針對'&'同樣網上也提出這種解決方法:
在SQL*PLUS默認環境里會把'&字符'當成變量來處理. 有些時候我們也需要在SQL>的符號下輸入'&字符', 只需要改變SQL*PLUS下一個環境變量define即可. SQL> set define off;是把默認的&綁定變量的功能取消, 可以把'&字符'當成普通字符處理 SQL> set define on;打開&綁定變量的功能, &后面的字符串當變量使用. SQL> show define;查看當前SQL*PLUS的define狀態 舉例說明: --------------------------------------------------------------- SQL> CREATE TABLE TEST3 ( ID NUMBER (2) PRIMARY KEY, NAME VARCHAR2 (20)); SQL> show define; define "&" (hex 26) SQL> insert into test3 values(1,'sgs&a&n'); Enter value for a: abc Enter value for n: 456 old 1: insert into test3 values(1,'sgs&a&n') new 1: insert into test3 values(1,'sgsabc456') 1 row created. SQL> commit; Commit complete. SQL> set define off; SQL> insert into test3 values(2,'sgs&a&n'); 1 row created. SQL> commit; Commit complete. SQL> select * from test3; ID NAME -- -------------------- 1 sgsabc456 2 sgs&a&n

但是針對以上網辦法也有人提出異議如下:

SQL> truncate table demo;
Table truncated.

SQL> select * from demo;
no rows selected

SQL> desc demo;
Name Null? Type
----------------------------------------- -------- ----------------------
X CHAR(20)
SQL> insert into demo values ('scott&'||'tiger');
1 row created.

SQL> select * from demo;
X
--------------------
scott&tiger
SQL>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM