JDBC SQLクエリで文字列を使用する方法について質問があります。ここには2つの例があり、私は両方が働くことを期待していますが、そうではありません。
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `${tabl}`;"
println " "+ query
dbConnection.eachRow(query){
エラーがSQL構文エラーとして戻ってくる:バージョン...エラー変形例では
tabl = "Action"
query = "SHOW FULL COLUMNS FROM `Action`;"
println " "+ query
dbConnection.eachRow(query){
作業
。あなたが見ることができるように、文は文字通り同一です。私は犯人探ししようとしているだけでGroovyのだと思う
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
:
出力は、エラー、ステートメントを示しています。私がリテラル文字列をJDBC接続に送るとき、それは 'Action'テーブルのためにうまくいきます。
私は、誰かがエラーを説明して修正を提供したいと考えています。読書人のために
、私は回避策として、このオプションが見つかりました:「+」を使用して、より少ない冗長オプションがあるかもしれませんが
query = "SHOW FULL COLUMNS FROM `"+ tabl.toString() +"`;"
。私には、$ {tabl}を使うのがうまくいくかのように感じます。事前に
おかげで、
あなたは '使用してみました;'(代わりに二重引用符の単一引用符に注意してください) '$ {TABL} FROM SHOW FULL COLUMNSを'? – dmahapatro
[SQLクエリでDBを動的に設定する]の複製が可能です(http://stackoverflow.com/questions/2267756/dynamically-set-the-db-in-a-sql-query) –