[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2007
    Beiträge
    9

    Exclamation Stored Procedure und Functions nach Releasewechsel weg?!

    Hallo zusammen,

    wir haben beim Kunden das Release von 6.1 auf 7.1 gewechselt. Nun sind leider alle Stored Procedures und Functions verschwunden. Als Objekt finde ich die Prozeduren noch, aber bspw im Navigator sind die nicht mehr zu sehen, ebenfalls nicht in der sysprocs.

    Ein ReclaimStorage RCLSTG haben wir auch bereits versucht. Gibt es noch eine andere Möglichkeit, die Datei irgendwie neu aufzubauen bzw an die Sourcen der Prozeduren zu kommen, damit wir diese ggf. neu erstellen können?

    Danke

    Gruß

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Wenn Ihr die Quellen nicht habt, gibt es tatsächlich ein Problem.
    Ein Wiederherstellen ist so nicht möglich.
    Normalerweise werden die Prozeduren/Funktionen beim Restore der Objekte automatisch registriert.
    Ansonsten muss man dies an Hand der Quellen machen.
    Gerne wird dies bei der Ausführung via Opsnav vergessen.
    Native auf der AS/400 lege ich mir gerne eine QSQLSRC an.

    Versuche mal ein PRTSQLINF des jeweiligen Programmobjektes.
    Bei "externen" SQL-Prozeduren/Funktionen benötigst du halt die Quelle.

    Du kannst aber an Hand der Verwendung in den aufrufenden Programmen diese wiederherstellen.

    Bei "internen", also per SQL-Body erstellten, Prozeduren/Funktionen hast du wirklich schlechte Karten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hallo,

    Es gibt die Möglichkeit direkt die SQL Procedure aufzurufen welches dir die Sourcen generieren lässt.
    Also z.B. im STRSQL:
    Code:
    CALL QIWS.QZDGDBGS('02','QSQLSRC   ','PRANLIB   ','SOURCENAME',
    '1','1','ISO','-','ISO','.','.','0','SQL','1','1','0','000','1',
    '00001','DEINEPROC' || x'00' || 'DEINELIB' || x'00' || 'PROCEDURE', '0','1','1','1','1');
    Kannst ja probieren ob es damit klappt.

    lg Andreas

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Kannst du mal beschreiben was dieser CALL macht bzw. als Ergebnis liefert?
    Oder noch besser: einen Link auf die Beschreibung?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Wie schon gesagt, diese Prozedur macht nichts anderes als die Source eines SQL Objektes zu generieren.
    Das kann eben eine Prozedur oder auch eine VIEW, TABLE oder sonst was sein.
    Die Source wird dann ins Angegebene Source-File gestellt.
    Im obrigen Beispiel wird die Source in die PRANLIB/QSQLSRC(SOURCENAME) geschrieben.

    Das ist eines dieser versteckten Features der DB2 die man nicht so einfach (wenn überhaupt) in einer IBM Dokumentation findet.
    Im Internet findet man auch lediglich ein paar Fetzen an Informationen.
    Bei einer meiner letzten Forschungen bin ich drauf gestoßen und wird auch in der nächsten Version meines Schulungs Skriptes zu finden sein.
    Aber bis dahin sollten die angegebenen Informationen erst mal reichen.

  6. #6
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Ab welchen Release funktioniert das?

    Die Frage wie man auf so was kommt schenke ich mir, dürfte komplexer sein ;-)

    GG

  7. #7
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    ... ab Release 7.2 (bzw. Release 7.1 TR 9) wird auch die Stored Procedure GENERATE_SQL bereit gestellt, mit der der Source Code eines jeden Datenbanken-Objekts erstellt werden kann.
    und dafür gibt es sogar eine Beschreibung:
    GENERATE_SQL

    Leider hilft diese Procedure nicht bei dem beschriebenen Problem und auch nicht wenn man immer noch auf Release V5R4 ist.

    Ob das API QZDGDBGS bei dem beschriebenen Problem hilft, wage ich ebenfalls zu bezweifeln, da wohl die Programm-Objekte vorhanden sind, die Registrierung als SQL-Datenbanken-Objekt jedoch fehlt. M.E. muss diese Registrierung nachgezogen werden.
    Sofern noch vorhanden, könnte man Skripte für die Registrierungen auf dem alten System erstellen. An dieser Stelle kann dann das API QZDGDBGS oder auch der Wizard im IBM i Navigator verwendet werden. Das generierte SQL-Script kann dann auf der neuen Maschine ausgeführt werden und damit die Objekte registriert werden.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Meine Erfahrung für externe Funktionen/Prozeduren ist auch folgende:

    - Erstellung des Programm-Objektes (COBOL/CL/RPGLE)
    - Generieren der SQL-Signatur per SQL, diese wird im Objekt zusätzlich eingetragen, SAVRST in anderem System funktioniert
    - Neuerstellung des Programmes, Ursprung wird ersetzt (verschoben in QRPLOBJ), die Signatur im Programm ist weg, SAVRST im anderen System funktioniert nicht

    Fazit:
    Nach Neuerstellung des Programmobjektes ist die Funktion/Prozedur per DROP zu entfernen und per CREATE neu zu erstellen, was natürlich die Quelle voraussetzt.
    Der CREATE trägt die Signatur neben den QSYS2-Tabellen eben auch im Objekt selber ein.
    Wenn das Objekt entfernt / ersetzt wird, ist die QSYS2-Signatur immer noch gültig.
    Diese kann aber beim Systemwechsel nicht mitgezogen werden.
    Bei OS-Update funktioniert das aber.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... wenn es sich um einen Release Upgrade handelt (und da nicht gepfuscht wurde) handelt es sich um einen Software defect des Upgrade Prozesses, den man reklamiert und auf ein PTF wartet. Ansonsten gilt natürlich das, was immer gilt: was man nicht gesichert hat, ist gegebenen Falls fort. In diesem Fall hat man auch noch die Möglichkeit die Objekte aus den Quellen neu zu erstellen, hat man die nicht gesichert, gilt der vorhergehende Paragrapg sinngemäß.
    Anhänger der Mausschieber-Fraktion, die sich da Zeugs mit Oops Nerv zusammenknipsen, haben hoffentlich noch das Video irgendwo abgespeichert, das der Kollege von der Knips Aktion aufgenommen hat...

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Stored Procedure SQLSTATE 428B3
    By mk in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 10-12-14, 15:31
  2. Stored Procedure endlos
    By lorenzen in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-12-02, 16:46
  3. Java stored procedure
    By Sven Schneider in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-09-02, 07:31
  4. Stored Procedure
    By lorenzen in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 27-08-02, 14:59
  5. Löschen/Überschreiben einer Stored Procedure
    By Frank Pusch in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 13-06-01, 17:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •