Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Oracle序列是否可以为空?_Java_Sql_Spring_Oracle_Sequence Generators - Fatal编程技术网

Java Oracle序列是否可以为空?

Java Oracle序列是否可以为空?,java,sql,spring,oracle,sequence-generators,Java,Sql,Spring,Oracle,Sequence Generators,我正在用Spring运行一个Java应用程序,其中一条insert语句出现错误。我的错误是: 嵌套异常为java.sql.SQLIntegrityConstraintViolationException: ORA-01400:无法将NULL插入(“我的模式”“验证结果”“结果顺序”) 对于所有的数据库人员来说,是否存在Oracle从nextval调用返回null的场景?如果多个线程同时调用它呢 对于任何Spring开发人员,我们都使用 org.springframework.jdbc.suppo

我正在用Spring运行一个Java应用程序,其中一条insert语句出现错误。我的错误是:

嵌套异常为java.sql.SQLIntegrityConstraintViolationException: ORA-01400:无法将NULL插入(“我的模式”“验证结果”“结果顺序”)

对于所有的数据库人员来说,是否存在Oracle从
nextval
调用返回
null
的场景?如果多个线程同时调用它呢

对于任何Spring开发人员,我们都使用

org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer 
来处理这个序列。我们使用
nextLongValue
方法


我的直觉告诉我Oracle不会给我一个空的
nextval
。从我已经寻找的一切来看,这似乎是不可能的。有人能确认吗?

已确认。它们不返回NULL。您将收到一条错误消息

Oracle序列实际上生成了一块“nextval”对象,因此线程可以快速访问它们。如果存在性能障碍,可以更改序列以创建更大数量的预读值。唯一的可能性是如果甲骨文严重破产。让您的DBA查看警报日志。像ORA-06nn这样的错误是DBA的噩梦,而且是我所知道的唯一一个真正破坏像序列这样的对象的错误。 在这种情况下,DB和DBA可能也接近DOA。这种事一生只发生一次


我会先怀疑你的密码。或者有人在修改序列——比如在修改序列时做一些愚蠢的事情。i、 例如,从一个开始重新启动序列并打破表约束。当您仅从database DEV->import to database TEST导出表时,也很容易按顺序将事情搞砸,因为还需要引入其他元数据。

感谢您的响应。alter序列不是一个选项,因为我知道代码不使用它,即使我们尝试了,我们的用户也没有权限。我在最初的帖子中没有包含这一点,但代码有时确实有效。我无法找出根本原因,但它看起来确实与代码有关。我会让我的DBA查看日志并进行检查。谢谢