=====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 ==== * https://tonyhasler.wordpress.com/2010/01/17/identifying-the-sql_id-of-static-sql-in-plsql-blocks/