How to cancel SQL statements in #Oracle 18c

A nice 18c New Feature is that you can cancel a certain SQL statement without using Resource Manager techniques. Here’s an example:

SQL> select banner_full from v$version;

Oracle Database 18c Enterprise Edition Release - Production

SQL> select distinct sid from v$mystat;


SQL> begin loop null; end loop; end;   

This produces an endless loop. Now I need the SQL_ID of the statement and the SERIAL# of the offending session:

SQL> select sql_text,sql_id from v$sql where sql_text like '%loop null; end loop%';

begin loop null; end loop; end;

select sql_text,sql_id from v$sql where sql_text like '%loop null; end loop%'

SQL> select serial# from v$session where sid=477;


Now I can use the New Feature:

SQL> alter system cancel sql '477,10569,8gadd3yhtd150';

System altered.

The offending session gets

ERROR at line 1:
ORA-01013: user requested cancel of current operation

We waited for this functionality quite some time 🙂


  1. #1 von Luis Santos am April 5, 2018 - 22:25

    I tested and can assure: this is fully working on 12.2!

    I also tested on 11g and 12.1. Not working. It arrived (silently and not supported, but working) on 12.2.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

Du kommentierst mit Deinem Abmelden /  Ändern )


Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )


Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..