Java 在SpringWebApp的quartz作业中调用Oracle存储过程+;SP没有给出一致的结果

Java 在SpringWebApp的quartz作业中调用Oracle存储过程+;SP没有给出一致的结果,java,stored-procedures,quartz-scheduler,Java,Stored Procedures,Quartz Scheduler,我有一个SpringWebApp,它基本上是一个监控应用程序。应用程序中定义了各种KPI,我使用Quartz框架使这些KPI定期运行。其中一个Quartz作业调用Oracle存储过程(带有一个输入和一个输出参数)。我使用JDBC Callable语句从作业调用SP。存储过程的编写方式使其在出现任何异常时返回0 我面临的问题是,JAVA对该存储过程的调用没有给出一致的结果。有时,程序返回正确的结果,有时返回0。但是,如果我直接在SQLDeveloper中运行SP,那么它运行得非常好 我对此进行了很

我有一个SpringWebApp,它基本上是一个监控应用程序。应用程序中定义了各种KPI,我使用Quartz框架使这些KPI定期运行。其中一个Quartz作业调用Oracle存储过程(带有一个输入和一个输出参数)。我使用JDBC Callable语句从作业调用SP。存储过程的编写方式使其在出现任何异常时返回0

我面临的问题是,JAVA对该存储过程的调用没有给出一致的结果。有时,程序返回正确的结果,有时返回0。但是,如果我直接在SQLDeveloper中运行SP,那么它运行得非常好

我对此进行了很多调试,但什么也没找到。这是与SP的同步/异步运行有关,还是与用于执行SP的连接对象有关。我只需要一些指针,可以用来继续调试


谢谢。

只要2美分的建议。如果出现任何错误,为什么不返回实际的错误代码(负号),而不是返回0

例如,ORA-01401将返回-1401

通过这种方式,您将能够识别错误的真正原因(以及错误是否来自服务器端或客户端)

问候。
Christian(我是法国人,很抱歉我的法语;-)

因为您的问题是关于存储过程的,所以我将改写整个问题,将重点放在存储过程的主体、如何执行以及针对当前结果的预期结果上。请注意,问题出在Oracle和Java上,而不是Spring、Quartz或您正在使用的任何其他技术。实际上,0的返回并不是一个ORA错误……它也可能是一个不存在的业务场景