在ORACLE SQL語句中,單引號和雙引號的使用

perfychi發表於2012-12-15
在ORACLE SQL語句中,單引號和雙引號的使用
/**在ORACLE中 雙引號" 被當做一個普通的字串來處理**/
SELECT '"' AS "字串結果" FROM DUAL;
/**正常狀態下,兩個''包含的字串被當做字面值**/
SELECT 'ziwen@163.com' FROM DUAL;
/**測試一下三個單引號的情況 : ORA-01756:引號內的字串沒有正確結束**/
SELECT ''' FROM DUAL;
/**測試一下四個單引號的情況 : 結果為一個 ' (單引號) **/
--說明 第二個單引號被ORACLE預設為是 跳脫字元
SELECT '''' FROM DUAL;
/**驗證一下第二個單引號是跳脫字元的推斷,在第二個和第三個單引號之間增加一個空格**/
--提示錯誤:ORA-0092:未找到要求的FROM關鍵字 說明剛才的推論是對的
SELECT '' '' FROM DUAL;
/**在動態sql裡面會經常用到單引號的,例如需要動態增加like,寫一個測試的小例子**/
DECLARE
V_SQL VARCHAR2(200);
N_COUNT NUMBER(4);
V_NAME VARCHAR2(100);
BEGIN
V_NAME := '名字';
V_SQL := 'SELECT COUNT(1) FROM T1 WHERE 1=1';
V_SQL := CONCAT(V_SQL,' AND T1.NAME LIKE ''%'||V_NAME||'%''');
EXECUTE IMMEDIATE V_SQL INTO N_COUNT;
DBMS_OUTPUT.PUT_LINE('N_COUNT'||'==>'||N_COUNT);
END;
/**總結:
1、在ORACLE中,雙引號是被當做一個普通的字串來處理的。
2、在一對單引號包含的語句中,必須有一對相鄰的單引號表示一個單引號
3、兩個相鄰的單引號的作用,第一個是用來表示跳脫字元,後面一個表示真正的單引號
**/

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

相關文章