[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jun 2004
    Beiträge
    89

    Problem SQL Procedure

    Hallo zusammen,

    ich habe möchte folgende SQL Procedure erstellen:

    Code:
    CREATE PROCEDURE HERMOSPM.I_POS_CTY ( ) 
        LANGUAGE SQL 
        SPECIFIC HERMOSPM.I_POS_CTY 
        NOT DETERMINISTIC 
        MODIFIES SQL DATA 
        CALLED ON NULL INPUT 
        SET OPTION  ALWBLK = *ALLREAD , 
        ALWCPYDTA = *OPTIMIZE , 
        COMMIT = *NONE , 
        DBGVIEW = *SOURCE , 
        CLOSQLCSR = *ENDMOD , 
        DECRESULT = (31, 31, 00) , 
        DFTRDBCOL = *NONE , 
        DYNDFTCOL = *NO , 
        DYNUSRPRF = *USER , 
        SRTSEQ = *HEX   
        BEGIN 
      
    -- Inhalt löschen  
    DELETE FROM HERMOSPM . POS_CTY ; 
      
    -- Und wieder füllen 
    INSERT INTO HERMOSPM . POS_CTY 
    SELECT 
    ROW_NUMBER ( ) OVER ( ) , 
    TRIM ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ) CONCAT '_' CONCAT TRIM ( PKATPK ) CONCAT '_' CONCAT TRIM ( PONRPK ) , 
    1 , CURRENT_DATE , 1 , HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , 
    ' ' , 
    CASE WHEN GRMAPK = 'J' THEN 1 ELSE 0 END , 
    TRIM ( PONRPK ) , 
    HERMOSPM . GETBACK_ID ( 'LANG' , LG ) , 
    CASE WHEN UMFCDPK <> ' ' THEN TRIM ( UMFCDPK ) ELSE CAST ( NULL AS VARCHAR ( 400 ) ) END , 
    CASE WHEN MSEIPK <> ' ' THEN TRIM ( MSEIPK ) ELSE CAST ( NULL AS VARCHAR ( 8 ) ) END 
    FROM HERMOSPM . MAPKATUNI 
    WHERE LG = 'DEU' 
    AND COALESCE ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , 9999999999 ) <> 9999999999 ;   
      
    END  ;
    Unabhängig vom Sinn des Ganzen:

    Wenn ich den Select bzw. den Insert mit dem Select manuell aufrufe, läuft das durch ohne Probleme.
    Beim Erstellen der Procedure passiert nichts bist auf eine Art Endlosschleife.

    Ich wandel das um (im iSeries Navigator, "Eine SQL-Prozedure ausführen") und wenn ich auf der Maschine den Job anschaue, läuft der ewig ohne Ergebnis. Auch keine Fehlermeldung, Joblogmeldung, nichts. Nur ne Art Endlosschleife.

    Hat jemand schon sowas mal gehabt? (Wir haben noch V6R1 installiert).

    Danke für nen Tip...

    Caddy

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ich bin mir nicht sicher, aber mach mal einen "return;" vor dem "end;".
    Ist die Zieltabelle denn gefüllt?
    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
    Jun 2004
    Beiträge
    89
    Die Zieltabelle ist gefüllt.
    Das mit dem return glaub ich nicht, weil es keinen Rückgabewert gibt.

    Er macht ja gerade beim kompilieren (sagt man das bei SQL?) das Problem.
    Habe den Umwandlungsjob nun nach 15 Minuten abgebrochen. Keine Meldung nichts.

    Die letzten 20 Procudures klappten ohne Probleme... Suspekt.

  4. #4
    Registriert seit
    Jun 2004
    Beiträge
    89
    Beim Interaktiven Aufruf läuft der Spaß...

    > INSERT INTO HERMOSPM . POS_CTY SELECT ROW_NUMBER ( ) OVER ( ) , TRIM ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) ) CONCAT '_' CONCAT TRIM ( PKATPK ) CONCAT '_' CONCAT TRIM ( PONRPK ) , 1 , CURRENT_DATE , 1 , HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , ' ' , CASE WHEN GRMAPK = 'J' THEN 1 ELSE 0 END , TRIM ( PONRPK ) , HERMOSPM . GETBACK_ID ( 'LANG' , LG ) , CASE WHEN UMFCDPK <> ' ' THEN TRIM ( UMFCDPK ) ELSE CAST ( NULL AS VARCHAR ( 400 ) ) END , CASE WHEN MSEIPK <> ' ' THEN TRIM ( MSEIPK ) ELSE CAST ( NULL AS VARCHAR ( 8 ) ) END FROM HERMOSPM . MAPKATUNI WHERE LG = 'DEU' AND COALESCE ( HERMOSPM . GETBACK_ID ( 'ART ' , AARTPK ) , 9999999999 ) <> 9999999999

    Anweisung wurde erfolgreich ausgeführt (23660 ms = 23.660 Sek)

    33357 Zeilen durch diese Anweisung betroffen

  5. #5
    Registriert seit
    Nov 2007
    Beiträge
    371
    blöde frage . was macht er denn wenn du sie mal direkt per strsql eingibst ?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Ggf. stirbt der Compiler wenn die Bibliotheksliste nicht stimmt.
    Immerhin verwendest du UDF's, die gefunden werden müssen.

    Versuche mal die UDF's qualifiziert "LIB.UDFNAME" anzugeben.
    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

  7. #7
    Registriert seit
    Nov 2007
    Beiträge
    371
    braucht man den strichpunkt nach dem end ?

  8. #8
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Das Problem liegt also beim CREATE PROCEDURE Statement und NICHT beim CALL?

    Wenn der CREATE PROCEDURE so lange braucht liegt vermultich ein Bug vor bzw. fehlen PTF. Bei CREATE PROCEDURE wird lediglich eine C-Quelle mit embedded SQL erstellt und diese umgewandelt, d.h. das dürfte keine 15 Minuten dauern (egal wie groß die Tabelle ist).

    Ich habe gerade das CREATE PROCEDURE Statement auf unserer Maschine ausgeführt, Objet war innerhalb von 5 Sekunden erstellt.

    Was sagt denn das Joblog?
    Wenn Du unter STRSQL arbeitest, vor STRSQL einfach mal STRDBG (ohne Parameter ausführen) und anschließend das Joblog prüfen. Dann sollten nämlich die SQL-Nachrichten protokolliert 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

  9. #9
    Registriert seit
    Jun 2004
    Beiträge
    89
    Danke für den Tipp, ich teste das morgen früh gleich mal.
    Arbeite zwar nicht mit unter STRSQL (Hatte da so ne Lehrerin :-)), aber ausnahmsweise wird's mal gemacht :-)

  10. #10
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Wenn Du mit IBM i Navigator arbeitest, kannst du die STRSQL Optionen auf über Options (Include Debug Messages in Job Log) aktivieren
    also kein Green-Screen erforderlich

    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

  11. #11
    Registriert seit
    Jun 2004
    Beiträge
    89
    Guten Morgen,

    ich habe das mit dem Include Debug Messages in Job Log mal gemacht.

    Ich erhalte tausende "Abfrageauswahl aus Datei QAQQINI in Bibliothek QTEMP abgerufen" - Meldungen.

    Weitere Nachrichteninformationen

    Nachrichten-ID . . . . : CPI4339 Bewertung . . . . . . : 00
    Nachrichtenart . . . . : Information
    Sendedatum . . . . . . : 25.06.14 Sendezeit . . . . . . : 07:39:23

    Nachricht . . . : Abfrageauswahl aus Datei QAQQINI in Bibliothek QTEMP
    abgerufen.
    Fehlerbeseitigung: Abfrageauswahl aus Datei QAQQINI in Bibliothek QTEMP
    abgerufen.
    Nachrichtendetails anzeigen

    Nachrichten-ID . . . . : CPI4339 Bewertung . . . . . . : 00
    Sendedatum . . . . . . : 25.06.14 Sendezeit . . . . . . : 07:39:23
    Nachrichtenart . . . . : Information
    Von . . . . . . . . . : ZUKÜNFTIGEN WELTMEISTER CCSID . . . . . . . . : 65535

    Von Programm . . . . . . . . . : QQQSRVI1
    Von Bibliothek . . . . . . . : QSYS
    Von Modul . . . . . . . . . : QQQAINI
    Von Prozedur . . . . . . . . : GETMSGTXT
    Von Anweisung . . . . . . . : 10024

    An Programm . . . . . . . . . : QQQSRVE1
    An Bibliothek . . . . . . . : QSYS
    An Modul . . . . . . . . . . : QQQGINI
    An Prozedur . . . . . . . . : QQGETINIOPTIONS
    An Anweisung . . . . . . . . : 1110
    Hm.....

  12. #12
    Registriert seit
    Aug 2001
    Beiträge
    2.873
    Ich gehe mal davon aus, dass Du im IBM i Navigator mit SQL Naming arbeitest.
    Versuch' zuerst mal das Default/Current Schema in Deiner Bibliothek zu setzten.
    Und prüfe, ob das etwas ändert.
    Du kannst auch mit dem CL-Befehl CHGQRYA die QAQQINI-Datei/Bibliothek, die in Deinem Job verwendet werden soll setzen.

    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

Similar Threads

  1. QRY - Problem
    By Günter Majewski in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 07-01-03, 15:10
  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
  •