oracle 單引號 雙引號

2022-06-04 21:30:13 字數 4083 閱讀 7514

在oracle中:

雙引號的作用是:假如建立物件的時候,物件名、欄位名oracle將嚴格區分大小寫,否則oracl都預設大寫。

而單引號則示意:這個加了單引號的字段是乙個字類似字串,並不區分大小寫。

當指定字串文字時,必須用單引號將字串文字引住。

oracle10g之前,假如字串文字裡含有單引號,那麼必須運用兩個單引號示意。例如:i'm

a string!

字串文字則為:string_var:='i''m

a string!'

在oracle10g中可以運用其它分隔符(<>,,{}等),留心,運用這些分隔符時,不僅要在分隔符前後加單引號,還要帶有字首q.例:string_var:=q'[i''m

a string!]';

例如select

* from table_name where id=1;這種代表查詢的是數字

select

* from table_name where id='1';這種代表查詢的是字元

假如是雙引號是這樣,假如你有個表的字段叫sysdate,因為sysdate屬於oracle中的特有字元,但你要查詢這個欄位的時候

select

"sysdate" from table_name;

但是你要是用

select

'sysdate' from table_name;

那麼你查出來的就是字串,結果是sysdate

運用如下的更新語句不可以:update

device set dept='select * from message where name='tom' ' ;

處理要領:

update

device set dept='select * from message where name=' 'tom' ' where id=3' ;

執行成功。

原來,兩個''

示意了乙個'

單引號在

oracle 中有三種身份:

1. 用來引用乙個字串常量,也就是界定乙個字串的開始和結束

2.轉義符,對緊隨其後出現的字元(單引號)進行轉義

語句中時常常令人迷惑不解,下面我將以自己總結出來的經驗為基礎,結合具體例項來告訴大家如何弄清每個單引號的含義。

總結經驗:
1. 出現在表示式開頭和結尾的這兩個單引號的含義肯定是表示引用乙個字串,界定字串的開始和結束
2. 如果單引號出現在表示式中間(即非表示式開頭和結尾的單引號),且多個單引號之間沒有任何其他字元,那麼當我們從左向右分析時,第一對單引號中的第乙個是轉義符,它對緊隨其後的第二個單引號進行轉義,以使第二個單引號作為乙個字元出現在乙個字串常量中。第二隊,第三隊,以此類推......
下面用例項來驗證自己的經驗總結:

示例一:

result

'中第1、4個單引號表示引用乙個字串常量,表示式的剩餘部分我們從左往右分析,由於中間是一對單引號,故此對中的第乙個是轉義符,其對第二個進行轉義,使第二個表示單引號本身。分析得出這裡有乙個字串常量,其中只有乙個單引號字元。sql

語句的執行結果與我們的分析結果一致。

示例二:

select

'exit''''' from dual

result

exit''

中第乙個和最後乙個單引號表示引用乙個字串常量,表示式的剩餘部分我們依然從左往右分析。剩餘部分中,遇到的第乙個單引號後面緊隨乙個單引號,我們將其作為一對,根據示例一,這一對的解析結果為乙個單引號字元本身;然後繼續向右走,又遇到一對緊挨著的單引號,同理,他們的解析結果也是乙個單引號字元本身。分析得出這裡的字串常量包含exit和兩個單引號字元。sql

語句的執行結果與我們的分析結果一致。

在oracle中:

雙引號的作用是:假如建立物件的時候,物件名、欄位名oracle將嚴格區分大小寫,否則oracl都預設大寫。

而單引號則示意:這個加了單引號的字段是乙個字類似字串,並不區分大小寫。

當指定字串文字時,必須用單引號將字串文字引住。

oracle10g之前,假如字串文字裡含有單引號,那麼必須運用兩個單引號示意。例如:i'm

a string!

字串文字則為:string_var:='i''m

a string!'

在oracle10g中可以運用其它分隔符(<>,,{}等),留心,運用這些分隔符時,不僅要在分隔符前後加單引號,還要帶有字首q.例:string_var:=q'[i''m

a string!]';

例如select

* from table_name where id=1;這種代表查詢的是數字

select

* from table_name where id='1';這種代表查詢的是字元

假如是雙引號是這樣,假如你有個表的字段叫sysdate,因為sysdate屬於oracle中的特有字元,但你要查詢這個欄位的時候

select

"sysdate" from table_name;

但是你要是用

select

'sysdate' from table_name;

那麼你查出來的就是字串,結果是sysdate

運用如下的更新語句不可以:update

device set dept='select * from message where name='tom' ' ;

處理要領:

update

device set dept='select * from message where name=' 'tom' ' where id=3' ;

執行成功。

原來,兩個''

示意了乙個'

單引號在

oracle 中有三種身份:

1. 用來引用乙個字串常量,也就是界定乙個字串的開始和結束

2.轉義符,對緊隨其後出現的字元(單引號)進行轉義

語句中時常常令人迷惑不解,下面我將以自己總結出來的經驗為基礎,結合具體例項來告訴大家如何弄清每個單引號的含義。

總結經驗:
1. 出現在表示式開頭和結尾的這兩個單引號的含義肯定是表示引用乙個字串,界定字串的開始和結束
2. 如果單引號出現在表示式中間(即非表示式開頭和結尾的單引號),且多個單引號之間沒有任何其他字元,那麼當我們從左向右分析時,第一對單引號中的第乙個是轉義符,它對緊隨其後的第二個單引號進行轉義,以使第二個單引號作為乙個字元出現在乙個字串常量中。第二隊,第三隊,以此類推......
下面用例項來驗證自己的經驗總結:

示例一:

result

'中第1、4個單引號表示引用乙個字串常量,表示式的剩餘部分我們從左往右分析,由於中間是一對單引號,故此對中的第乙個是轉義符,其對第二個進行轉義,使第二個表示單引號本身。分析得出這裡有乙個字串常量,其中只有乙個單引號字元。sql

語句的執行結果與我們的分析結果一致。

示例二:

select

'exit''''' from dual

result

exit''

中第乙個和最後乙個單引號表示引用乙個字串常量,表示式的剩餘部分我們依然從左往右分析。剩餘部分中,遇到的第乙個單引號後面緊隨乙個單引號,我們將其作為一對,根據示例一,這一對的解析結果為乙個單引號字元本身;然後繼續向右走,又遇到一對緊挨著的單引號,同理,他們的解析結果也是乙個單引號字元本身。分析得出這裡的字串常量包含exit和兩個單引號字元。sql

語句的執行結果與我們的分析結果一致。

單引號,雙引號,無引號

單引號 所見即所得 雙引號 1 把雙引號的所有內容都輸出出來 2 如果中命令 要反引下 變數 特殊轉義符等,會先把變數 命令 特殊轉義符解析出結果再輸出最終內容。無引號 與雙引號基本相同,連續數字不用加任何引號 建議 指令碼中普通字串盡量雙引號,單純數字可以不用加引號 a 192 a 192 a b...

Oracle之單引號與雙引號

select from t sys user where id 15 查詢id為15的字元 select from t sys score where id 15 查詢id為15的整形數字select result from dual 第二個單引號被作為轉義符,第三個單引號被轉義.結果為 selec...

單引號和雙引號

char p1 1 char p2 1 1 的ascii碼值為49 0和49位址處為作業系統使用,故訪問這些位址如printf s,s,s p1,p2,p3 會產生段錯誤。printf n n的ascii碼值為10,同理,段錯誤。a 表示字元常量,在記憶體中佔1個位元組,a 1表示 a 的ascii...