7 Stimmen

DB2-SQL-Code zum Extrahieren gespeicherter Prozeduren

Meine Kollegen und ich haben mehrere hundert SQL Stored Procedures in einer gehosteten DB2/z-Datenbank (Version 8.1). Wir haben keine Administratorrechte und unser Zugriff auf die Datenbank erfolgt über QMF-Bildschirme. Die Downloads erfolgen über die 3270-Terminalsitzung mit dem TSO FT Befehl.

Gibt es eine einfache/effiziente Möglichkeit, die Definitionen/Text aller unserer gespeicherten Prozeduren zu extrahieren?

Ich würde gerne einen wöchentlichen Dump machen, den wir vor Ort in SVN oder einem anderen Revisionskontrollsystem aufbewahren.

Für Vorschläge wäre ich sehr dankbar.

Gracias
Stephen


Aktualisierung -- 9. Juli 2009

Vielen Dank für die Vorschläge, aber sie scheinen bei unserer speziellen Konfiguration nicht zu helfen. Ich werde unseren Lieferanten um weitere Informationen bitten. Ich werde Sie auf dem Laufenden halten, sobald ich etwas Neues erfahre.

Stephen

12voto

SO User Punkte 22342

Sie können den Text der gespeicherten Prozedur erhalten, indem Sie eine

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES;

Alternativ können Sie auch nur die SPs in Ihrem Schema abrufen, indem Sie eine:

SELECT ROUTINE_DEFINITION FROM SYSIBM.ROUTINES WHERE SPECIFIC_SCHEMA = 'MYSCHEMA';

Wenn Sie die Ergebnisse durch eine Where-Klausel einschränken wollen, beachten Sie bitte, dass es sich um eine Groß- und Kleinschreibung und Sie müssen die Kriterien nur in Großbuchstaben angeben.

4voto

Unter DB2 z/OS sollten Sie in den Systemkatalogtabellen nachsehen, hauptsächlich in SYSIBM.SYSROUTINES, SYSIBM.SYSROUTINES_OPTS und SYSIBM.SYSROUTINES_SRC

1voto

Datalogist Punkte 11

Spielt es eine Rolle, wenn sie nur Endbenutzerrechte an dieser Datenbank haben?

von info center für v9.5 ist das folgende Privileg erforderlich:

SELECT-Privileg für die Systemkatalogtabellen.

In einigen Fällen, z. B. bei der Generierung von DDL für Tabellenspace-Container (die die APIs sqlbotcq, sqlbftcq und sqlbctcq aufruft), benötigen Sie eine der folgenden Möglichkeiten:

* sysadm
* sysctrl
* sysmaint
* dbadm

0voto

Michael Sharek Punkte 5015

Ich denke db2look sollte in der Lage sein, die DDL für Sie zu besorgen.

Laut der Dokumentation benötigen Sie nur das SELECT-Recht für die Systemkatalogtabellen.

Ich bin mit OS/390 nicht mehr so vertraut, daher weiß ich nicht, wie Sie db2look auf dieser Plattform ausführen. Hoffentlich kann Ihnen Ihr DBA weiterhelfen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X