PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Oracle) SQL-Fehler datenbankseitig mitprotokollieren?


Mr. Lolman
2015-10-13, 14:10:43
Gibts eine Möglichkeit fehlerhafte SQL Aufrufe (SELECT, INSERT, UPDATE) irgendwo in der Datenbank mitzuprotokollieren? Wichtig wär in solchen Fällen das komplette Statement, samt Werte der evtl vorhandenen Bindvariablen...

RattuS
2015-10-13, 14:44:38
Fehlerhafte Queries findest du nur via Auditing (http://lmgtfy.com/?q=oracle+auditing) afaik.

Gast
2015-10-14, 00:28:24
Seehr witziger Link. Musste dolle Grinsen.:)

Mr. Lolman
2015-10-14, 14:00:32
*g* Besten Dank.

BTW: Viel steht auch in der gv$sql, aber leider nicht alles: stackoverflow.com/questions/492705/is-there-any-way-to-log-all-failed-sql-statements-in-oracle-10g

samm
2015-10-14, 21:32:49
Wo kommen denn die Aufrufe her, und was ist der Zweck des Abfangens? Wenn es um das Debugging einer Anwendung unter deiner Hoheit geht, liesse sich ja je nach Architektur bequem ein Logging in die Anwendung selbst einbauen.

Mr. Lolman
2015-10-16, 07:00:58
Die Aufrufe kommen von unserer Anwendung. Nur ist sie nicht unter meiner Hoheit, hat 3Mio Codezeilen, die Statements sind tw schon in SQL-Handles und nur die Parameter ändern sich von Aufruf zu Aufruf (an unzähligen Stellen wurde das Klassendesign auch übersteuert) und das programmseitige Abfangen einer SQL-Exception bedingt, dass das verwendete Statement NICHT angezeigt wird.

Nur wenn man auf SQL-Fehler nicht reagiert, kommt man eine ekelhaft hässliche Dialogbox mit dem Statement an den Schirm geknallt (jo, es ist in einer komischen Sprache geschrieben, auf die ich hier nicht näher eingehen will ;)) => Klar könnte man irgendwie ein programmseitiges Logging einbauen, aber eben leider nicht an einer zentralen Stelle, deswegen die Idee, das wir das datenbankseitig lösen...

Gast_samm
2015-10-17, 00:25:48
Oh je, okay. Naja, kann nicht jede SW perfekt sein :)

Jedenfalls scheint mir dieses Vorgehen in diesem Fall nützlich sein, hier deutsch beschrieben: http://www.oracle.com/webfolder/technetwork/de/community/dbadmin/tipps/auditing/index.html

Stichwörter dazu: Initialisierungs-Parameter audit_trail, Tabelle aud$, AUDIT WHENEVER NOT SUCCESSFUL
Dies wird möglich, wenn die Parameter db und xml in modifizierter Form verwendet werden, und zwar als db,extended oder xml, extended. Diese Varianten führen dazu, dass immer der gesamte SQL-Text sowie die Bind-Variablen erfasst werden. Es ist lediglich zu beachten, dass es bezüglich der Anzeige der Bind-Variablen Einschränkungen hinsichtlich der Datentypen gibt.