On-premises, killing sessions with alter system kill session was second nature, but in RDS you need to use a dedicated package. This is easy to forget, so here are notes as a reminder.
SELECT
X.SID
, X.SERIAL#
, TO_CHAR(
X.SQL_EXEC_START
, 'YYYY/MM/DD HH24:MI:SS'
) AS SQL_EXEC_START
, Y.SQL_TEXT
FROM
V$SESSION X
INNER JOIN V$SQL Y
ON Y.HASH_VALUE = X.SQL_HASH_VALUE
AND Y.ADDRESS = X.SQL_ADDRESS
WHERE
X.STATUS = 'ACTIVE'
AND X.SID IN (
SELECT
Z.SID
FROM
V$LOCK Z
WHERE
Z.TYPE IN ('TM','TX')
)
;
exec rdsadmin.rdsadmin_util.kill(SID,SERIAL#);
Execution Result
SQL> SELECT
X.SID
, X.SERIAL#
, TO_CHAR(
X.SQL_EXEC_START
, 'YYYY/MM/DD HH24:MI:SS'
) AS SQL_EXEC_START
, Y.SQL_TEXT
FROM
V$SESSION X
INNER JOIN V$SQL Y
ON Y.HASH_VALUE = X.SQL_HASH_VALUE
AND Y.ADDRES 2 3 4 5 6 7 8 9 10 11 12 13 S = X.SQL_ADDRESS
WHERE
X.STATUS = 'ACTIVE'
AND X.SID IN (
SELECT
Z.SID
FROM
V$LOCK Z
WHERE
Z.TYPE IN ('TM','TX')
)
; 14 15 16 17 18 19 20 21 22 23 24
SID SERIAL# SQL_EXEC_START
---------- ---------- -------------------
SQL_TEXT
--------------------------------------------------------------------------------
1292 50094 2021/04/23 06:41:41
insert into PARTTBL_MAIN_1 select * from PARTTBL_MAIN_1
SQL> exec rdsadmin.rdsadmin_util.kill(1292,50094);
PL/SQL procedure successfully completed.