oracle plsql: abrufen der runtime-parameter-Werte, wenn Sie eine Prozedur aufrufen

Brauche ich eine generalisierte Methode, um die Liste der runtime-Parameter (- Werte), wenn ich eine Prozedur aufrufen. Ich brauche etwas ähnliches wie die $$PLSQL_UNIT liefert den Namen der ausgeführten Prozedur.
(plsql Oracle 10g)

E. g. schauen Sie auf dieses Beispiel: Prozedur:
(es gibt seinen eigenen Namen und Parameter )

CREATE OR REPLACE PROCEDURE  MY_PROC(ow in varchar2, tn IN varchar2)
 IS

BEGIN
     dbms_output.put_line('proc_name: '||$$PLSQL_UNIT||' parameters: '|| ow||' '||tn  );

    EXCEPTION
    WHEN OTHERS THEN 
       DBMS_OUTPUT.PUT_LINE('ERRORE: ' ||SQLERRM);

END MY_PROC;
/

Ausgeführte Prozedur wird die folgende Ausgabe erzeugt:

SQL> 
  1   BEGIN
  2     IBAD_OWN.MY_PROC('first_par', 'second_par');
  3   END;
  4  /

proc_name: MY_PROC parameters: first_par second_par

PL/SQL procedure successfully completed.

Ich bin nicht zufrieden, denn ich kann nicht kopieren und einfügen in alle meine Verfahren, weil ich zu schwer code der einzelnen Verfahren, Ihre Rechte parameter-Variablen.

Vielen Dank im Voraus für die Hilfe.

  • mögliche Duplikate von stackoverflow.com/questions/12160928/get-a-parameters-name ?
  • ja, ich denke, es ist die gleiche Frage. Beide ohne Antwort 🙁 ich denke, es ist nicht ein Weg, um Wert Parameter 🙁
  • Ich glaube nicht, es ist die gleiche Frage. Du bist zu Fragen für den Wert eines Parameters, ohne zu wissen, Ihren Namen. Wie schon in ein, nun gelöscht, und Antwort in der verlinkten Frage Suche den Namen eines Parameters ist einfach, aber nicht den Wert dieses Parameters.
  • nicht sicher, ich verstehe genau. Der "Wert der Parameter" zu finden ist einfach, indem Sie die parameter-variable selbst, wie Sie es in Ihrer MY_PROC Beispiel oben ("ow" und "tn" enthalten die Werte der parameter). Können Sie mehr klar sein, was Sie tun möchten? Tks
  • ja ich habe es getan, aber es funktioniert nur für MY_PROC. Denke an MY_PROC2 MY_PROC3, MY_PROC4, wo jedes Verfahren hat seine eigenen parameter (zB. MY_PROC2 (IN Besitzer, IN Tabelle); MY_PROC3 (IN index, IN ow, IN Tabelle); MY_PROC4 (IN idx, IM eigenen, IN t, IN Teil). Wie Sie sehen können, ich habe zu schreiben, meine Spur in jede Prozedur, die Aufmerksamkeit auf genau die Parameter Namen. Ich kann nicht copy&paste. Das ist alles.
InformationsquelleAutor tortugone | 2012-09-04
Schreibe einen Kommentar