Oracle中單引號與雙引號的區別分析

TaihangMeng發表於2016-04-10


、雙引號的作用:

1、如果物件名、欄位名加雙引號,則嚴格區分大小寫,否則Oracle均預設大寫。
2、如果物件中的某列使用的是Oracle的特有字元,比如說sysdate,那麼查詢該列時要使用雙引號,否則,不會得到想要的結果。


建立測試表格,其中有一列sysdate,建立時需用“”括起來,宣告它是普通字串。


SQL> create table test
2  (
3  ID number not null,
4  Name varchar2(10),
5  "sysdate" varchar2(10)
6  );


Table created.

SQL> insert into test values(1,'mth','2013-03-01');

1 row created.

SQL> select * from test;

        ID NAME       sysdate
---------- ---------- ----------
         1 mth        2013-03-01

如果想單獨查詢“sysdate”列,應該用如下語句:

SQL> select "sysdate" from test;

sysdate
----------
2013-03-01

下面兩種情況是不加雙引號,和加單引號的情況,什麼都不加,查詢出來的是系統日期;加單引號,即顯示出來的是單引號內的字串。

SQL> select sysdate from test;

SYSDATE
------------------
10-APR-16

SQL> select 'sysdate' from test;

'SYSDAT
-------
sysdate

     
二、單引號的作用

1、用來引用一個字串常量,也就是界定一個字串的開始和結束,用於標識數字與字元的區別。
2、
轉義符,對緊隨其後出現的單引號進行轉義

1、引用字串常量

SQL> insert into test values(2,'T Jones','2013-04-01');

1 row created.

SQL> select * from test;

        ID NAME       sysdate
---------- ---------- ----------
         1 mth        2013-03-01
         2 T Jones    2013-04-01

字串加雙引號會報下面的錯誤:
SQL> insert into test values(3,"B James",'2013-04-01');
insert into test values(3,"B James",'2013-04-01')
                          *
ERROR at line 1:
ORA-00984: column not allowed here

字串什麼都不加會報缺少逗號的錯誤:
SQL> insert into test values(3,B James,'2013-04-01');
insert into test values(3,B James,'2013-04-01')
                            *
ERROR at line 1:
ORA-00917: missing comma

2、對單引號進行轉義
SQL> select '''' from dual;

'
-
'
第一和第四個單引號表示引用一個字串常量,第二個單引號對第三個單引號進行轉義。

SQL> select '''Hello''' from dual;

'''HELL
-------
'Hello'
第一個和最後一個單引號表示引用一個字串常量,第二個對第三個進行轉義,第四個對第五個進行轉義。




本文參考 http://www.cnblogs.com/gsk99/archive/2011/04/19/2021267.html 進行寫作,謝謝!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30776559/viewspace-2078695/,如需轉載,請註明出處,否則將追究法律責任。

相關文章