我在 WinXP(版本:Excel 97-2000)中为一个非常简单的 Excel 电子表格设置了一个用户 DSN ODBC 数据源:
A_NUMBER A_DATE A_STRING
1001 10/1/2012 Red
1002 10/2/2012 Green
1003 10/3/2012 Blue
当我运行以下 groovy 脚本(Groovy 版本:1.7.8 JVM:1.6.0_10)来读取数据时
import groovy.sql.Sql
def static main(def args) {
def dbParameters = [url: 'jdbc:odbc:mySpreadSheet', user:'', password:'', driver: 'sun.jdbc.odbc.JdbcOdbcDriver']
def sql = Sql.newInstance(dbParameters)
sql.eachRow('select * from [Sheet1$]') { row ->
println "${row.A_NUMBER} ${row.A_DATE} ${row.A_STRING}"
}
sql.close()
println "done???"
}
它产生以下输出:
1001.0 2012-10-01 00:00:00.0 Red
1002.0 2012-10-02 00:00:00.0 Green
1003.0 2012-10-03 00:00:00.0 Blue
done???
但它永远不会退出!
我尝试从 Windows 命令提示符和 cygwin bash shell 运行它,在这两种情况下它都会挂起,直到我用 ctrl-c 杀死
我可以通过添加强制脚本退出
throw new RuntimeException("force exit")
在 println 之后,但这似乎非常极端。
知道为什么脚本挂起吗?