在 SQL 语句中调用具有默认值的函数

Call a function with default value in an SQL statement

我有这个 SQL 声明:

select pa_bez.divlovs(lovart, lovid) bez, lovid, lovart from divlovs where lovart = ?

pa_bez.divlovs 有一个带默认值的第三个参数。

jOOQ 生成了这个方法:

public static Field<String> divlovs(String pLovart, String pLovid, String pSprache)

如果我在 SELECT 语句中使用它,我将必须传递 null 并且不会使用默认值。

如何将此查询转换为仅使用两个参数调用 pa_bez.divlovs 的 jOOQ?

如果您想应用默认值,则不能使用 static 便捷方法,您必须使用基础 Routine 对象,例如

Divlovs divlovs = new Divlovs();
divlovs.setPLovart(...);
divlovs.setPLovid(...);

List<String> result =
ctx.select(divlovs.asField())
   .from(DIVLOVS)
   .where(DIVLOVS.LOVART.eq(...))
   .fetch();