Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
使用Spring的Java Oracle SQL不会返回任何内容,也不会引发异常_Java_Oracle_Spring - Fatal编程技术网

使用Spring的Java Oracle SQL不会返回任何内容,也不会引发异常

使用Spring的Java Oracle SQL不会返回任何内容,也不会引发异常,java,oracle,spring,Java,Oracle,Spring,我有一个Java代码,它使用Spring在Oracle数据库上连接和执行sql。我有一个查询执行时间很长(20分钟或更长)。我有一个Executor服务,它有一个线程来执行查询并处理结果。如果我对DB和Spring设置超时,系统将正确超时,但在此之前不会返回任何其他内容。如果从SQL plus运行查询,它将返回值。超时设置为在SQL Developer上执行所需时间的3倍 有什么想法吗 假设Spring查询使用绑定变量,那么在SQL*Plus/SQL Developer中执行查询时是否使用绑定变

我有一个Java代码,它使用Spring在Oracle数据库上连接和执行sql。我有一个查询执行时间很长(20分钟或更长)。我有一个Executor服务,它有一个线程来执行查询并处理结果。如果我对DB和Spring设置超时,系统将正确超时,但在此之前不会返回任何其他内容。如果从SQL plus运行查询,它将返回值。超时设置为在SQL Developer上执行所需时间的3倍


有什么想法吗

假设Spring查询使用绑定变量,那么在SQL*Plus/SQL Developer中执行查询时是否使用绑定变量?或者你在使用文字

您使用的是什么版本的Oracle


您是否检查过这两种环境的查询计划是否不同?

在Oracle中查询需要20分钟?我敢打赌您在WHERE子句中的列上没有适当的索引

死赠品是做一个解释计划的查询。如果您看到表格扫描,请采取适当的措施

如果您可以在SQL*Plus中运行相同的查询,并在合理的时间内看到它返回,那么我是不正确的,问题是由于您在Java代码中执行的其他操作造成的


我不明白为什么查询需要单独的线程。我会直接运行代码,没有线程,然后看看它的行为。如果索引不正确,请添加一些;如果查询返回的数据太多,请添加WHERE子句来限制它。您在没有真正了解根本原因的情况下采取了非常措施。

您可以发布查询代码的相关部分和spring配置吗?另外,您如何使用Spring?只是为了注入数据库连接信息?对不起,没有代码。我正在使用spring注入DB信息并管理查询。我昨天注意到我将超时设置为20分钟。在查询20多分钟后,我没有每次都收到超时错误。所以我认为我在查询中带来的数据量导致了某种问题……我放了更多的日志和跟踪程序,看看会发生什么……使用Oracle 10。我们使用的是来自Spring的SimpleJdbcTemplate,查询采用prepare语句格式(使用“?”)。好的,听起来您使用的是来自Spring的绑定变量。使用SQL*Plus/SQL Developer时是否使用绑定变量?或者你在使用文字?您是否检查过是否使用了相同的查询计划?我们使用的是来自SQL Developer的文本。我会将代码更改为使用文字,并将结果反馈给您。是的……遗憾的是,这是真的。问题是我们正在连接一个超出我们控制的模式。他们不是最聪明的开发人员,他们也不想帮忙。我们设置视图以将其数据打入我们的域:-(.相信我,我们对此无能为力。我会让他们对查询运行解释计划并发送结果。是的……不会发生……他们恨我们,因为客户爱我们。他们设置了很多障碍,只是为了让我们看起来不好。太多的事……我们正在与有孩子想法的猴子打交道……这不容易……这是生意还是生意游乐场?如果客户爱你,我会得到一些好处。只要索取数据并让它讲述故事。顺便说一句,我站在你这边。没有什么好的理由让一个团队仅仅因为敌意而将客户的最佳利益作为人质。如果他们需要你指导他们如何配置一个游戏,那将特别令人悲痛正确管理Oracle数据库。