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

时间:2010-07-13 13:59:40

标签: oracle oracle10g oracle-sqldeveloper

我需要从我们的oracle DB中检索相当多的数据,为此我需要运行20多个查询。有没有办法在同一个连接上一次运行多个查询?

我尝试使用/来分隔查询,但这只是打开多个标签,查询仍按顺序运行,但我不必一个一个地启动它们。

6 个答案:

答案 0 :(得分:43)

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

答案 1 :(得分:4)

在SqlDeveloper偏好设置中:Tools > Preferences > Database > Worksheet检查New Worksheet to use unshared connction的选项。这将允许您同时执行多个查询,每个查询都在每个选项卡中。另见screenshot

答案 2 :(得分:1)

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

答案 3 :(得分:0)

@Tony是正确的,每个查询必须在它自己的会话中运行才能并行运行。你用的是什么工具?在PL / SQL Developer中,我可以打开一个数据库连接,然后在该连接中打开多个会话并以“并行”方式运行多个查询 - 我必须手动执行每个查询,但是如果它们每个都需要很长时间,那么也许会在你正在使用的任何工具中得到你需要的东西,或类似的东西。

答案 4 :(得分:0)

假设您喜欢危险地生活,您可以使用编译指示AUTONOMOUS_TRANSACTION从一个脚本运行多个“线程”。例如:

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;

答案 5 :(得分:-1)

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