我有一个长时间运行的(简化的)查询,例如:

BEGIN
  FOR i in (SELECT * FROM T WHERE ....)
  LOOP
    DMBS_OUTPUT.PUT_LINE(i.VALUE);
  END LOOP;
END;
/

当我执行它时,由于大表和复杂条件,它需要几个小时,并且我的 sqldeveloper 在该 session 中基本上被卡住。我无法创建新连接,我必须打开一个新的 sqldeveloper 实例。

有没有办法不阻止它?喜欢在后台运行,但仍然输出到控制台/文件?我知道我可以创建 SQL 脚本并从 CLI 运行,但我想知道 sqldeveloper 本身是否有任何解决方案。

最佳答案

您可以通过单击突出显示的图标打开一个新的私有(private) SQL 工作表,该工作表不会共享连接:

oracle - sqldeveloper 中的异步/非阻塞查询-LMLPHP

在非共享工作表中运行的任何查询都不会影响您的常规 SQL 工作表,因为它不与其共享连接。

希望这可以帮助。

关于oracle - sqldeveloper 中的异步/非阻塞查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42493802/

10-12 14:23