JOOQ对接Oracle19c时DSLContext应选择哪款SQLDialect方言
JOOQ Oracle 19c 方言配置推荐
结论
优先选用 SQLDialect.ORACLE18C,不要用通用的 SQLDialect.ORACLE。
原因说明
- 通用
SQLDialect.ORACLE是JOOQ为了兼容全版本Oracle设计的兜底兼容方言,会默认关闭12c及以上Oracle版本才支持的新语法特性、执行优化策略,比如12c新增的原生分页语法、18c新增的内置JSON函数、隐式关联查询优化等,使用该方言时JOOQ会生成适配老版本的冗余SQL,执行效率会受影响。 - Oracle 19c本质是18c的长期支持(LTS)补丁版本,核心SQL语法、内置函数没有破坏性变更,
SQLDialect.ORACLE18C可以完美适配19c的所有特性,能让JOOQ生成最贴合19c内核的高效原生SQL,也能正常调用18c之后新增的所有数据库能力。
推荐配置
DSLContext create = DSL.using(conn, SQLDialect.ORACLE18C);
补充提示
如果你后续升级JOOQ版本到官方已推出SQLDialect.ORACLE19C及更高版本方言的版本,直接切换到对应版本的方言即可,无需修改业务代码就能享受到对应版本的专属优化。
内容的提问来源于stack exchange,提问作者mattsmith5
相关产品推荐
相关产品推荐

