我正在尝试以常规方式执行一些存储过程。通过使用直接的 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
但这似乎不起作用。
谁能指出我正确的方向?