在Oracle SQL Developer上同时运行2个查询?

在Oracle SQL Developer上同时运行2个查询?,oracle,oracle10g,oracle-sqldeveloper,Oracle,Oracle10g,Oracle Sqldeveloper,我需要从oracle数据库中检索大量数据,为此我需要运行20多个查询。有没有办法在同一个连接上一次运行多个查询 我尝试使用/来分隔查询,但这只会打开多个选项卡,并且查询仍按顺序运行,尽管我不必逐个启动它们。不,每个查询都需要单独的会话。@Tony是正确的,每个查询必须在其自己的会话中并行运行。你在用什么工具?在PL/SQL Developer中,我可以打开一个DB连接,然后在该连接中打开多个会话,并“并行”运行多个查询-我确实需要手动执行每个查询,但如果每个查询都需要很长时间,也许这将满足您的需

我需要从oracle数据库中检索大量数据,为此我需要运行20多个查询。有没有办法在同一个连接上一次运行多个查询


我尝试使用/来分隔查询,但这只会打开多个选项卡,并且查询仍按顺序运行,尽管我不必逐个启动它们。

不,每个查询都需要单独的会话。

@Tony是正确的,每个查询必须在其自己的会话中并行运行。你在用什么工具?在PL/SQL Developer中,我可以打开一个DB连接,然后在该连接中打开多个会话,并“并行”运行多个查询-我确实需要手动执行每个查询,但如果每个查询都需要很长时间,也许这将满足您的需要,或者在您正在使用的任何工具中使用类似的工具。

因此,最简单的解决方案是使用Oracle软件其余部分附带的SQL Plus。这是一个笨重的工具,但做了我需要的,而我可以自由地使用SQL Developer进行其他查询。

假设您喜欢危险地生活,您可以使用pragma autonomy\u事务从一个脚本运行多个“线程”。例如:

DECLARE
   PROCEDURE foo(i IN PLS_INTEGER) AS
      PRAGMA AUTONOMOUS_TRANSACTION;
   BEGIN
      INSERT INTO qux
         SELECT * FROM bar
         WHERE baz = i;
      COMMIT;
   EXCEPTION WHEN OTHERS THEN ROLLBACK;
   END;
BEGIN
   foo(1);
   foo(2);
   foo(3);
END;

按ctrl+shift+N将打开一个新的非共享工作表,该工作表可以并行运行查询。在这种情况下,您必须在每个选项卡中粘贴一个查询,并手动运行它们,但这在测试一些查询时非常方便。

在SqlDeveloper首选项中:
工具>首选项>数据库>工作表
选中
新工作表的选项以使用非共享连接。这将允许您同时在每个选项卡中执行多个查询。另请参见一个。

语义诡辩:从技术上讲,每个查询都需要一个单独的会话。每个连接可以有多个会话。谢谢!我正在使用免费的Oracle SQL developer为什么不能打开多个连接/会话?当我尝试在不同的连接上运行查询时,它会停止并运行我指定的新连接。。。第一个没有完成:(您使用的是哪个版本的SQL Developer?使用2.1.1,我可以打开两个连接,并同时在每个连接中运行语句。如果选项卡中有一个波浪号,后跟一个数字,则该窗口与另一个窗口是同一连接的一部分。对于早期版本的SQL Developer,您可以打开应用程序的多个实例。我认为这很简单。)最正确的答案。Oracle SQL Developer默认情况下将共享连接。一个常见问题是使用不同的名称存储相同的连接。未共享的工作表允许查询使用相同的连接信息,但使用单独的连接。如果结果非常大,SQLPlus不是正确的工具。问题是关于running
同时执行
。您的三个过程调用将按顺序执行。不,它们是按顺序调用的。假设它们完成所需的时间超过一小部分秒,它们将并行执行。太棒了。在SQL Server世界呆了几年,我发现自己在Oracle土地上问:“等等,我不能做什么?”这是一个巨大的帮助。