2010-08-23 55 views
0

我需要執行這個查詢:爲什麼groovy sql從SQL查詢中刪除模式名稱?

Select * from my_schema.table_within_schema 

不幸的是groogy.sql.SQL被移除my_schema並沒有架構信息執行查詢:

Select * from table_within_schema 

我不知道是否有可能迫使常規。 sql.Sql在查詢中保留模式名稱。 Groovy:1.7,Db:我使用需要指定模式名稱的jdbc驅動程序。

+1

我可以」重現所描述的行爲。你如何使用groovy.sql.Sql?你使用的是哪個數據庫? – 2010-08-23 09:30:19

+0

什麼版本的Groovy? – 2010-08-23 09:48:02

回答

0

我還沒有碰到這種情況還沒有,但你可以「強制」常規使用一個查詢字符串,而不是一個GString的,如果你想,下面是一個MySQL的JDBC例如:

Sql sql = ...(the usual) 

def query = "SELECT * from `my_schema`.mytable" 

sql.eachRow(query.toString() ) { 
// do something 
} 
+1

嗨,你有沒有指定一個數據庫名稱創建一個新的Sql對象實例?你確定你正在使用'my_schema'而不是你的jdbc url中的模式(用於調用SQL.newInstance())嗎? – Skarab 2010-08-25 04:51:19