當我試圖在甲骨文執行INSERT
聲明,我SQL Error: ORA-00917: missing comma
錯誤,因爲在我的INSERT
語句值Alex's Tea Factory
。的Oracle PL-SQL轉義字符(對於「'「)
我怎麼能逃脫'
?
當我試圖在甲骨文執行INSERT
聲明,我SQL Error: ORA-00917: missing comma
錯誤,因爲在我的INSERT
語句值Alex's Tea Factory
。的Oracle PL-SQL轉義字符(對於「'「)
我怎麼能逃脫'
?
爲了躲避它,雙引號:
INSERT INTO TABLE_A VALUES ('Alex''s Tea Factory');
在SQL中,您可以通過另一個報價逃脫報價:
SELECT 'Alex''s Tea Factory' FROM DUAL
可以使用ESCAPE等給出下面的例子
的'_'外卡字符只用於匹配一個字符,而'%'用於匹配零個或多個出現的任何字符。這些字符可以在SQL中轉義。
SELECT name FROM emp WHERE id LIKE '%/_%' ESCAPE '/';
PL/SQL內的同一作品:
if(id like '%/_%' ESCAPE '/')
這僅適用於喜歡的圖案,例如在插入沒有必要逃避_或%,它們被用作普通的字符無論如何。在任意字符串中'只能'被''轉義。
你的問題意味着你通過串聯字符串來建立INSERT語句。我建議這是一個糟糕的選擇,因爲如果字符串是從用戶輸入派生的,它會讓你打開SQL注入攻擊。更好的選擇是使用參數標記並將值綁定到標記。如果您搜索Oracle parameter markers
,您可能會找到針對您的特定實現技術的一些信息(例如C#和ADO,Java和JDBC,Ruby和RubyDBI等)。
分享和享受。
你能說明如何在INSERT語句的情況下使用它嗎? – 2012-07-30 11:10:24