【发布时间】:2008-09-19 15:50:31
【问题描述】:
我正在尝试以常规方式执行一些存储过程。我可以通过直接使用 JDBC 很容易地做到这一点,但这似乎不符合 Grails 的精神。
我试图将存储过程称为:
sql.query( "{call web_GetCityStateByZip(?,?,?,?,?)}",[params.postalcode,
sql.out(java.sql.Types.VARCHAR), sql.out(java.sql.Types.VARCHAR),
sql.out(java.sql.Types.INTEGER), sql.out(java.sql.Types.VARCHAR)]) { rs ->
params.city = rs.getString(2)
params.state = rs.getString(3)
}
我尝试了各种方法,例如sql.call。在此之后我试图获取输出变量值。
每次错误:
Message: Cannot register out parameter.
Caused by: java.sql.SQLException: Cannot register out parameter.
Class: SessionExpirationFilter
但这似乎不起作用。
谁能指出我正确的方向?
【问题讨论】:
-
我没有要编辑的代表,但如果代码示例被格式化,并且对存储过程的作用有一些解释,那就太好了。
标签: stored-procedures grails groovy