如何在 oracle 11g DBMS 中停止 运行 命令

How to stop a running command in oracle 11g DBMS

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

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

您可以 select 使用以下查询的会话,然后找出您想要的会话 kill/stop。

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

(我还建议将“开始位置”设置为您只用于 SQL 脚本的新文件夹。)

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

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

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

More notes on setting up SQL*Plus.