我正在查询包含NOT NULL的单个CLOB字段的表。有时,查询返回返回的CLOB为空的结果集,这是一个明显的约束违规。我可以通过重新阅读来解决这个问题,但这是一个黑客攻击。
它似乎不是我们正在使用的驱动程序或ORM,因为基于Java的驱动程序和第三方应用程序使用的非托管Oracle客户端似乎具有相同的问题。我没有做任何类型的并行I / O.查询在单个事务中执行,并且表AFAIK上没有争用。
这是设置。
可能导致这种情况的原因是什么?它可能是一个驱动程序错误?这个问题似乎是在负载下发生的,但并非总是如此。
与我的同事一起,我们有几个理论,最突出的是在低级别驱动程序在我们开始访问结果集时异步加载CLOB。这看起来很牵强,显然是马车。另一个理论是,有时候?从CLOB到字符串的转换失败。