sqldeveloper中的异步/非阻塞查询

时间:2017-02-27 19:06:26

标签: oracle oracle-sqldeveloper

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

enter image description here

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

希望这有帮助。

答案 1 :(得分:0)

当一个查询正在运行时,只需按ALT + F10(功能键F10)即可为相同或不同的用户启动另一个连接。正在运行的查询将继续运行,不会干扰您的其他会话。