我使用的是与Oracle 19一起的JOOQ。在使用DSLContext运行一个简单的查询时,应该使用Oracle还是Oracle18C?他们两人似乎都起作用了,只是好奇
DSLContext create = DSL.using(conn, SQLDialect.ORACLE);

发布于 2021-08-30 17:23:01
SQLDialect类在一种情况下建模了两件事:
方言族
SQLDialect.ORACLE是Oracle的方言系列。它与SQLDialect.MYSQL方言家族有很大区别。
它还可以用作SQL方言,在这种情况下,它始终与当前支持的最新SQL方言相对应。如果是jOOQ 3.15,那就是SQLDialect.ORACLE21C,所以ORACLE和ORACLE21C的行为是一样的。
一旦一个假想的Oracle23c发布,jOOQ一旦jOOQ支持它,家庭ORACLE就会对应于方言ORACLE23C。
方言
jOOQ中的版本SQL方言对应于它们各自的Oracle版本。要获得Oracle19c上的最佳结果,请使用SQLDialect.ORACLE18C。没有添加ORACLE19C方言,因为jOOQ还没有添加任何特定于19c的特性支持。
这种方言将继续在Oracle18c(和19c)上工作,因为它是用于在这些Oracle版本上集成测试jOOQ的方言。例如,即使甲骨文决定在23c中支持标准的SQL BOOLEAN类型(希望如此),SQLDialect.ORACLE18C仍将继续模拟该类型,而新的SQLDialect.ORACLE23C (和SQLDialect.ORACLE方言族)将生成布尔值表达式。
https://stackoverflow.com/questions/68987880
复制相似问题