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
:
출력은 오류, 명령문을 보여줍니다. 리터럴 문자열을 JDBC 연결에 공급할 때 'Action'테이블에서 정상적으로 작동합니다.
누군가가 오류를 설명하고 수정 사항을 제공 할 수 있기를 바랍니다. 그 독서에 대한
, 나는 해결 방법으로이 옵션 발견query = "SHOW FULL COLUMNS FROM `"+ tabl.toString() +"`;"
를 사용하여 덜 자세한 옵션을,이있을 수도 있지만 "+"; 나에게 그것은 $ {tabl}을 사용하는 것이 효과가있는 것처럼 느낀다. 사전에
덕분에,
당신이'사용하여 시도 되세요 '$ FROM {TABL을} SHOW FULL COLUMNS를,'(대신 큰 따옴표의 단일 인용 부호에주의)'? – dmahapatro
가능한 중복 [SQL 쿼리에서 db를 동적으로 설정] (http://stackoverflow.com/questions/2267756/dynamically-set-the-db-in-a-sql-query) –