如何使用 Groovy 调用存储过程?

Geo*_*zen 3 sql groovy stored-procedures

  1. 如何使用 Groovy 调用存储过程?
  2. 如何从 Grails 项目创建存储过程(作为创建数据库的域类)?

Pra*_*tik 5

调用 FullName 存储过程的示例,该存储过程采用参数(示例中为“Sam”)并返回 VARCHAR。

sql.call("{? = call FullName(?)}", [Sql.VARCHAR, 'Sam']) { name ->
    assert name == 'Sam Pullara'
}
Run Code Online (Sandbox Code Playgroud)

再次是相同的示例,但具有 GString 变体:

def first = 'Sam'
sql.call("{$Sql.VARCHAR = call FullName($first)}") { name ->
    assert name == 'Sam Pullara'
}
Run Code Online (Sandbox Code Playgroud)

以下是带有 out 参数的存储过程的示例:

sql.call '{call Hemisphere(?, ?, ?)}', ['Guillaume', 'Laforge', Sql.VARCHAR], { dwells ->
    println dwells // => Northern Hemisphere
}
Run Code Online (Sandbox Code Playgroud)

参考这个