如何在Oracle11gDBMS中停止正在运行的命令



我曾经在oracle dbms中编写PL/SQL过程。有几次我会遇到像无限循环和查询持续运行这样的情况,我想停止它。如果我按下ctrl+C,整个命令行就会关闭。

在11g中,您需要终止运行该过程的会话。

您可以使用以下查询选择会话,然后找出要终止/停止的会话。

select sid, serial#, status from v$session where USERNAME='NAME';

然后用以下命令杀死它

ALTER SYSTEM KILL SESSION 'SID,SERIAL#';

在18c+中,您可以取消当前正在运行的与会话相关联的语句:

ALTER SYSTEM CANCEL SQL 'SID, SERIAL#';

创建目标为的Windows快捷方式

powershell.exe -NoExit sqlplus

或者如果你没有Powershell,

cmd /k sqlplus.exe

(我还建议将"Start-in"设置为一个只用于SQL脚本的新文件夹。(

然后,当sqlplus可执行文件被中断并退出时,您将返回到命令行,在那里您可以看到错误详细信息,而不是窗口消失。

我不知道有什么方法可以阻止Control-C终止sqlplus.exe,但我发现这在大多数情况下都能起到作用。

根据您使用的开发工具(PL/SQL Developer、SQL Developer、Toad(,您可能可以设置一个菜单项,使用当前数据库连接而不是依赖桌面/任务栏快捷键来启动SQL*Plus。

有关设置SQL*Plus的更多说明。

相关内容

  • 没有找到相关文章

最新更新