2012-07-30 27 views

回答

31

爲了躲避它,雙引號:

INSERT INTO TABLE_A VALUES ('Alex''s Tea Factory'); 
6

在SQL中,您可以通過另一個報價逃脫報價:

SELECT 'Alex''s Tea Factory' FROM DUAL 
5

可以使用ESCAPE等給出下面的例子

的'_'外卡字符只用於匹配一個字符,而'%'用於匹配零個或多個出現的任何字符。這些字符可以在SQL中轉義。

SELECT name FROM emp WHERE id LIKE '%/_%' ESCAPE '/'; 

PL/SQL內的同一作品:

if(id like '%/_%' ESCAPE '/') 

這僅適用於喜歡的圖案,例如在插入沒有必要逃避_或%,它們被用作普通的字符無論如何。在任意字符串中'只能'被''轉義。

+0

你能說明如何在INSERT語句的情況下使用它嗎? – 2012-07-30 11:10:24

1

你的問題意味着你通過串聯字符串來建立INSERT語句。我建議這是一個糟糕的選擇,因爲如果字符串是從用戶輸入派生的,它會讓你打開SQL注入攻擊。更好的選擇是使用參數標記並將值綁定到標記。如果您搜索Oracle parameter markers,您可能會找到針對您的特定實現技術的一些信息(例如C#和ADO,Java和JDBC,Ruby和RubyDBI等)。

分享和享受。

0
SELECT q'[Alex's Tea Factory]' FROM DUAL 
+2

[編輯]答案並添加解釋。 – Tushar 2017-01-25 04:37:21