相同的存储过程在两个/(三个)不同的IDE上的行为不同

时间:2013-09-06 13:09:37

标签: jdbc oracle-sqldeveloper pentaho toad

我刚刚使用TOAD在MS SQL DB中创建了一个存储过程。

它的作用是接受与某些记录相关联的ID,然后将这些记录插入表中。

存储过程的下一部分是使用ID输入来搜索插入项目的表,然后将其作为结果集返回给用户,以确认信息已插入。

在TOAD中,它完成了预期的工作。它仅使用存储过程插入日期并返回信息。

在Oracle SQL开发人员中,它执行插入操作并以此结束。它似乎没有执行存储过程的第二部分,这是一个选择stmt。

我只是觉得这是因为jdbc适配器。另外我要问的原因是因为我正在使用报告工具Pentaho Report Designer,如果我可以同时做两件事,它会更容易。 Pentaho Report Designer也在使用jdbc适配器,可能不是巧合吗?

但如果还有其他我可以调整的事情,我会非常感激。

1 个答案:

答案 0 :(得分:1)

这是猜测,但值得考虑......

有一些称为“批处理”的东西,其中是一组SQL语句,它们全部一次发送到服务器,并由服务器作为一组语句在单个服务器端会话中执行。将一组sql语句作为批处理发送到服务器通常会导致与您一次发送一个sql语句不同的结果,其中每个语句都在其自己的会话中执行。

我有一段时间没有使用Toad(或Oracle),但我记得,它处理的批处理与我使用的其他ide不同。如果集合中的第二个语句依赖于与第一个语句在同一个会话中,并且在一个ide中它位于单独的会话中,那么这可以解释发生了什么。