致电DB2UDF

问题描述 投票:0回答:1

从我的春季启动应用程序中,我试图使用plain sql使用JOOQ 3.2.5(免费版)调用DB2 UDF:

@Autowired
private DSLContext context;

@Override
public List<DataItemEntity> find(int ident, int itemNumber, LocalDate date) {
    return context.//
        select() .//
        from("Table(db2schema.db2udfname("
                    + ident + ", "
                    + itemNumber + ", "
                    + LastChangeDateUtil.retrieveActualDateAtUtc().toLocalDate()
                    + ") with ur;"
            ).//
        fetchInto(ItemEntity.class);
}

MavenBuild成功并且应用程序启动,但是一旦我称查找功能在上方,就会有一个例外:

[2025-02-21 13:48:14,749] [warn] [main] [none] [o.j.i.d.logdefaultDialect] :使用不支持的方言执行查询时会抛出一个例外:sqldialect.default.

这通常是由于两个原因之一:

    方言是通过偶然配置的(例如,通过错误的弹簧启动配置)。 在这种情况下,解决方案是配置正确的方言,例如sqldialect.postgres
  • sqldialect.default用作不支持的方言的“足够接近”近似值。 请注意,sqldialect.default主要用于调试记录SQL字符串,例如 调用query.tostring()时。它不能保证生成的SQL的稳定性,即 JOOQ的未来版本可能会产生不同的SQL字符串,这可能会破坏假设 关于您不受支持的方言。 请访问
  • Https://github.com/jooq/jooq/discussions/14059寻求新方言支持。
  • [2025-02-21 13:48:14,752] [错误] [main] [无] org.springframework.jdbc.badsqlgrammarexception:jooq;不好的SQL语法 [select * select * select * select * select * select * select * select * select * select * select * select * select * select * select * select * select;]
由于免费的JOOQ限制而发生了不支持的方言异常 - 我可以需要成功运行我的功能的过程 - 还是我现在不知道的另一个问题

thanks用于输入 我希望从该DB2UDF

收到带有多个记录的结果集

您忘记了围绕您

table(db2schema.db2udfname(..))

功能调用的闭合括号。另外,您将值串联到字符串会导致其他语法错误和SQL注入漏洞!

spring spring-boot db2 jooq
1个回答
0
投票
请注意:

尽管如此,像这样的琐碎查询可能在没有正式方言支持的情况下可以工作,但您会迅速遇到JOOQ Enterprise Edition可以帮助您进行DB2 Integration

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.