代码之家  ›  专栏  ›  技术社区  ›  Sologoub

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

  •  23
  • Sologoub  · 技术社区  · 15 年前

    我需要从Oracle数据库中检索相当多的数据,为此,我需要运行20多个查询。在同一个连接上,是否可以一次运行多个查询?

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

    6 回复  |  直到 8 年前
        1
  •  42
  •   wds    12 年前

    紧迫的 CTRL + 转移 + n 将打开一个新的非共享工作表,该工作表可以并行运行查询。在这种情况下,您必须在每个选项卡中粘贴一个查询,然后手动运行它们,但是在测试几个查询时,它很方便。

        2
  •  4
  •   user272735    8 年前

    在SQLDeveloper首选项中: Tools > Preferences > Database > Worksheet 检查选项 New Worksheet to use unshared connction . 这将允许您同时执行多个查询,每个查询位于每个选项卡中。见A screenshot 也是。

        3
  •  1
  •   Tony Andrews    15 年前

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

        4
  •  0
  •   DCookie    15 年前

    @托尼是正确的,每个查询必须在自己的会话中运行才能并行运行。你在使用什么工具?在PL/SQL开发人员中,我可以打开一个DB连接,然后在该连接中打开多个会话,并以“并行”的方式运行多个查询——我确实必须手动执行每个会话,但是如果它们都需要很长时间,也许这将为您提供所需的功能,或者在您使用的任何工具中提供类似的功能。

        5
  •  0
  •   Taldaugion    15 年前

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

    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;
    
        6
  •  -1
  •   Sologoub    15 年前

    因此,最简单的解决方案是使用Oracle软件其余部分附带的SQL Plus。这是一个笨重的工具,但可以满足我的需要,同时我可以自由地使用SQL开发人员进行其他查询。