prog:oracle_sql_id_find
Inhaltsverzeichnis
Die SQL_ID meines lezten SQL Statements ermitteln und mit schreiben
Aufgabe: Nach der Ausführung eines Statements soll die SQL_ID aufgezeichnet werden, optional inkl. Ausführungplan.
In SQL Plus mit "set feedback on SQL_ID"
Ab Oracle 18c?
Als normaler User anmelden:
>SET feedback ON SQL_ID >SELECT * FROM dual; DUM --- X 1 ROW selected. SQL_ID: a5ks9fhw2v9s1
Wird in SQLCl / SQLDeveloper leider NICHT unterstützt!
Aus dem Cache der Datenbank
Falls Zugriff auf die v$SQL Tabellen besteht:
SELECT sql_fulltext FROM v$sql sq INNER JOIN v$session se ON ( sq.sql_id = se.prev_sql_id AND se.prev_child_number = sq.child_number AND sid = SYS_CONTEXT('USERENV', 'SID') )
Funktioniert aber dann so gut, das jetzt wirklich nur das letzte SQL gezeigt wird, ist das z.b. vom SQL*Plus intern erzeugt, ist der Informationsgewinn recht niedrig.
SQL_FULLTEXT ------------------------------------------------------- BEGIN DBMS_OUTPUT.GET_LINES(:LINES, :NUMLINES); END;
D.h. über SQL*Plus funktioniert das so gar nicht, da ja immer irgendwas internes dazwischen kommt.
Quellen
prog/oracle_sql_id_find.txt · Zuletzt geändert: 2021/06/22 10:28 von gpipperr