Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:oracle_sql_id_find

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

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/oracle_sql_id_find.txt · Zuletzt geändert: 2021/06/22 10:28 von gpipperr