AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken [Oracle PL/SQL] Aktuell ausgeführte Funktion/Proc ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

[Oracle PL/SQL] Aktuell ausgeführte Funktion/Proc ermitteln?

Ein Thema von Phoenix · begonnen am 21. Sep 2006 · letzter Beitrag vom 21. Sep 2006
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.608 Beiträge
 
#1

[Oracle PL/SQL] Aktuell ausgeführte Funktion/Proc ermitteln?

  Alt 21. Sep 2006, 08:50
Datenbank: Oracle • Version: 10g • Zugriff über: Irrelevant
Hi an alle ORACLE-Spezis hier

Ich will in PL/SQL in einer Stored Procedure bzw. in einer Function den Namen der aktuell ausgeführten Funktion ermitteln (für ein Fehlerlogging in der Exception-Behandlung).

Den atuellen Fehlertext habe ich in SQLERRM, aber wie bekomme ich den aktuellen Funktions- / Prozedurnamen raus?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: [Oracle PL/SQL] Aktuell ausgeführte Funktion/Proc ermitt

  Alt 21. Sep 2006, 09:10
Zitat von Phoenix:
Den atuellen Fehlertext habe ich in SQLERRM, aber wie bekomme ich den aktuellen Funktions- / Prozedurnamen raus?
Gar nicht. Ist ein known issue. Du kannst maximal das Package herausfinden, aber nicht die SProc.
Delphi-Quellcode:
create or replace package Blabla is
  subtype TSProcName is varchar(69);

  function getCurrentSProc return TSProcName;
  procedure setCurrentSProc(value in TSProcName);

end Blabla;
Delphi-Quellcode:
create or replace package body Blabla is
  fCurrentSProc TSProcName;

  function getCurrentSProc return TSProcName is
  begin
    return fCurrentSProc;
  end;

  procedure setCurrentSProc(value in TSProcName) is
  begin
    fCurrentSProc := value;
  end;

end Blabla;
Du könntest dir natürlich ein Package schreiben, in dem du selbst die aktuelle SProc einträgst, damit du sie zum Zeitpunkt des Kaboom zur Hand hast.
Ich hatte selbst mal ein Highjacking auf die Debugger API versucht, aber die bekommst du nicht wirklich in eine laufende Session injeziert ohne dass sich diese in Wohlgefallen auflöst.

btw: Ich hatte mir gestern deinen Code zwischen Galactica S2 Folge 18 & 19 angesehen und es dauerte mindestens 30 Minuten bis ich die CoreLabs Klassen durch die ADO-Net Intefaces getauscht, das Erzeugen der Connection durch die ProviderFactories ersetzt hatte und schließlich sämtlichen DB Kramst aus den Containerklassen in eine eigene Mapperklasse umgebogen hab.
Anders hätte ich wohl nichts testen können.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz