我遇到了一個問題,那就是我需要在一個保留字的ODBC中搜索一個值。 所以:ODBC SQL,在where子句中使用保留字
SELECT * FROM Customer WHERE AccountNumber = 'Sum'
在這種情況下,「點心」是保留字,所以我得到一個語法錯誤。 在訪問錯誤是「該SELECT語句包括保留字或參數名拼寫錯誤或缺少,或標點符號不正確」
有沒有一種方法可以搜索這樣的字符串?
我遇到了一個問題,那就是我需要在一個保留字的ODBC中搜索一個值。 所以:ODBC SQL,在where子句中使用保留字
SELECT * FROM Customer WHERE AccountNumber = 'Sum'
在這種情況下,「點心」是保留字,所以我得到一個語法錯誤。 在訪問錯誤是「該SELECT語句包括保留字或參數名拼寫錯誤或缺少,或標點符號不正確」
有沒有一種方法可以搜索這樣的字符串?
而不是專門搜索'總和'。你可以嘗試:
SELECT * FROM Customer WHERE AccountNumber LIKE('%Sum%')
參數化要用作WHERE子句的一部分使用的字符串,並使用關鍵字「優先」時,因爲我有同樣的問題。修改C#代碼以使用參數後,它就起作用了。
using (OdbcCommand command = conn.CreateCommand())
{
command.CommandText = "SELECT account_ref FROM SALES_LEDGER WHERE account_ref = '?'";
command.Parameters.Add(new OdbcParameter("?", accountCode));
using (OdbcDataReader reader = command.ExecuteReader())
{
...
}
}
你有什麼試過的?你是否嘗試過對一個或多個字母使用某種轉義序列?你有沒有嘗試連接字符串來形成搜索,而不包含字面保留字? – penguat
我試圖用方括號括起來,用「」替代「」。連接字符串是什麼意思? – GarethV
這是僅當您使用ODBC連接時纔會發生的事情嗎?你可以直接對數據庫運行查詢嗎? – penguat