我必须使用2个不同的数据库:
Oracle 11.2.0.3.0
Oracle 12.2.0.1.0
使用quill-jdbc-zio 4.6.0(和zio 2.0.12 scala 2.13.10)我发现quill生成查询只使用FETCH前2行,这是不适用于Oracle 11。
import io.getquill._
val ctx = new SqlMirrorContext(OracleDialect, SnakeCase)
import ctx._
case class Person(id: Int, name: String, age: Int)
val m = ctx.run(query[Person].sortBy(p => p.id).take(2))
println(m.string)
输出SELECT p.id, p.name, p.age FROM person p ORDER BY p.id ASC NULLS FIRST FETCH FIRST 2 ROWS ONLY
这个查询在Oracle 12中执行成功,并引发ORA-00933: SQL command not proper ended in Oracle 11.
我可以为11和12使用不同设置的羽毛笔吗?或者我可以配置数据源吗?
我想对于Oracle 11,它必须像这样生成:
select id, name, age
from ( select a.*, rownum rnum
from (
---------------------
SELECT p.id, p.name, p.age FROM person p ORDER BY p.id ASC NULLS FIRST
---------------------
) a
where rownum <= 2)
where rnum >= 1
scastie
显然没有
来自Quill Contexts文档:
Oracle (quill-jdbc)Quill支持Oracle 12c及以上版本,但由于许可限制,使用18c版本的XE进行测试。
:
Oracle (quill-jdbc-zio)Quill支持Oracle 12c及以上版本,但由于许可限制,使用18c版本的XE进行测试。
:
Oracle (quill-jdbc-monix)Quill支持Oracle 12c及以上版本,但由于许可限制,使用18c版本的XE进行测试。
显示Quill不支持Oracle 11及以下版本。