2011-07-22 72 views
0

我將文本從文件插入表中,很少有這樣的行具有「你會」或「不」的字樣。當我將這些行作爲varchar插入到表中時,出現錯誤 - 接近「ll」:語法錯誤。我如何克服這一點?SQL中的varchar中的特殊字符

+2

擺脫您的輸入。 –

+0

你是說,跳過線?如果是,那不是一個選項。我必須輸入每一行。 – keeda

+0

不,「轉義」,因爲在字符串中添加轉義字符,所以你可以將它們作爲查詢參數傳遞。例如。 「我會變成'我'。 –

回答

0

謝謝大家的回覆,因爲我用的是sqlite3的,也有提供內置的字符串格式化函數與庫,所以我能夠使用sqlite3_mprintf與%q而不是%s,並且它處理單引號。

1

您的單引號正在被視爲字符串的結尾。轉義字符串中存在的引號以避免此問題。

+0

我想保持線條完好無損。 – keeda

+0

Escape並不意味着跳過,這意味着要添加一個特殊字符來告訴計算機。 – Ariel

0

您需要轉義您的SQL語句。如果您使用的是SQL Server,那麼您可以使用QUOTENAME來解決此問題。

0

使用單引號引用的字符串中的兩個撇插入撇號:,

insert into footable (foo) values('you''ll')