0

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-09-06T13:15:08.497 回答