2009-07-06 4 views
1

Ich habe SQL gespeicherte Prozeduren in unserem Entwicklungsschema erstellt und es funktioniert gut. Jetzt sind wir in der Aufgabe, unsere Entwicklungscodes in die Produktion zu verlagern. Wie kopiere ich diese gespeicherten Prozeduren von einem Schema in ein anderes Schema? Muss ich ganze Prozeduren für das Zielschema neu kompilieren? Oder gibt es eine Möglichkeit, diese Verfahren für ein gezieltes Schema zu registrieren? Könnte mir jemand einen besseren Weg vorschlagen, gespeicherte Prozeduren zu kopieren?SQL Stored Procedures zwischen DataSources/Schemas kopieren?

Ich habe Prozeduren über iSeries Navigator für Windows Version 5 Release 4.

erstellt

Vielen Dank im Voraus, Suresh

Antwort

4

Die SQL zum Erstellen Ihrer gespeicherten Prozeduren sollte in Quelldateien als Teil eines Projekts in einem Quellcodeverwaltungssystem (CVS, SVN usw.) enthalten sein.

Um Ihr Projekt auf einem neuen Server (Dev, QA oder Produktion) zu "deployen", sollte einfach die Ausführung dieser "Quell-SQL" -Dateien auf dem neuen Server/der Datenbank erforderlich sein.

In der Tat sollten alle Änderungen an der Datenbank (Tabellenspalten geändert, neue Tabellen hinzugefügt) in SQL-Dateien in der Quellcodeverwaltung enthalten sein und auf die gleiche Weise angewendet werden.

Obwohl die Datenbankentwicklungswerkzeuge es nicht immer so aussehen lassen - SQL ist auch Quellcode. :-)

+0

Ja, Sie haben Recht.Aber wie registrieren/führen Sie diese Verfahren aus, um ein Schema durch iSeries-Befehle zu erstellen, ohne externe Datenbankentwicklungswerkzeuge zu verwenden? d. h. ohne alle sql-Dateien physisch auszuführen. Übertragen Sie einfach als qualifizierte gespeicherte Prozeduren auf prod schema. –

+0

Ich setze das SQL, um Tabellen, Indizes usw. in normale Quelldateien mit dem Quelltyp SQL zu erstellen. Dann ändere ich meine aktuelle Bibliothek in die Produktionsdatenbibliothek oder was auch immer und führe die SQL mit dem Befehl RUNSQLSTM aus. Sie können es leicht zu PDM hinzufügen ...Ich verwende RS für die Option und "RUNSQLSTM SRCFILE (und L/& F) SRCMBR (& N) COMMIT (* NONE)" als den Befehl. Damit kannst du es gegen alles auf einmal laufen lassen, wenn du willst. –

+0

Ja in einer perfekten Welt sollte es sein. Aber wenn Sie einen knochenharten Projektmanager haben, der diese hier und da nur erstellt und keine Quelle hinterlässt, wäre es schön, eine ziemlich automatisierte Möglichkeit zu haben, sie auf eine neue db zu kopieren. – btk

0

Der beste Weg (bis jetzt), den ich gefunden habe, war mit SQL Management Studio zu arbeiten, und die Script Procedure As ... Menüoptionen zu verwenden. Dies erzeugt die SQL-Quelle für Ihre Sprocs (ERSTELLEN/ÄNDERN abhängig davon, welche Menüoption Sie verwenden)

Wenn Sie alle Sprocs/benutzerdefinierte Funktionen in einer Massenkopie kopieren müssen, verwenden Sie die Menüoption Aufgaben-> Skripts generieren. In der resultierenden Reihe von Dialogen können Sie auswählen, für welche Sprocs/Funktionen Skripte generiert werden, und dann diese Skripte für Ihre neue db ausführen.

1

Im Allgemeinen wird keine Originalquelle benötigt. Öffnen Sie iSeries Navigator, und führen Sie einen Drilldown durch Datenbanken zu dem Schema durch, in dem sich die Entwicklungsphys befinden. Wählen Sie alle gewünschten aus, klicken Sie mit der rechten Maustaste und wählen Sie 'SQL generieren'. Wählen Sie in 'RunSQL Scripts' (und optional DROP-Anweisungen) zu öffnen.

Dadurch erhalten Sie ein Skript aller ausgewählten SPs an einem Ort. Dies kann gespeichert werden, wo Sie möchten. Sie können auch Bearbeiten-> Ersetzen verwenden, wenn Schemanamen im Skript geändert werden müssen.

Anschließend können Sie über den Menüpunkt Verbindung-> Temporäre JDBC-Einstellungen verwenden ... auf das neue Schema zeigen. Klicken Sie schließlich in der Symbolleiste auf das Symbol Alles ausführen, um die SPs aus dem Skript in Ihrem neuen Schema zu generieren.

Kurz gesagt, wählen Sie diejenigen in iNav 'Run SQL Scripts', zeigen Sie auf das neue Schema und erstellen Sie sie im Wesentlichen in einer einzigen Operation.