我有一個關於在JDBC SQL查詢中使用字符串的問題。這裏有兩個例子,我希望兩者都能工作,但他們不這樣做。
工作版本
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `Action`;"
println " "+ query
dbConnection.eachRow(query){
在錯誤的變體:
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `${tabl}`;"
println " "+ query
dbConnection.eachRow(query){
錯誤回來作爲一個SQL語法錯誤。正如你所看到的,這些陳述在文本上是相同的。
輸出顯示的語句,那麼一個錯誤:
SHOW FULL COLUMNS FROM `Action`;
May 20, 2013 10:52:01 AM groovy.sql.Sql eachRow
WARNING: Failed to execute: SHOW FULL COLUMNS FROM `?`; because:
Parameter index out of range (1 > number of parameters, which is 0).
May 20, 2013 10:52:01 AM groovy.sql.Sql eachRow
我認爲這只是Groovy中試圖尋找一個罪魁禍首。當我將字符串提供給JDBC連接時,它對'Action'表格很有用。
我希望有人能解釋錯誤並提供修復。
對於那些讀書,我發現這個選項作爲解決方法:
query = "SHOW FULL COLUMNS FROM `"+ tabl.toString() +"`;"
雖然有可能是一個更簡潔的選擇,用 「+」;對我來說,感覺就像使用$ {tabl}應該工作一樣。
由於提前,
您是否嘗試過使用' 'SHOW FULL COLUMNS FROM $ {} TABL;''(注意單引號代替雙引號)? – dmahapatro
[在SQL查詢中動態設置數據庫]的可能重複(http://stackoverflow.com/questions/2267756/dynamically-set-the-db-in-a-sql-query) –