[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    309
    ok, danke schön

    jetzt wär da noch das Problem dass die Source so erstellt wird:

    PHP-Code:
    A            MANDANT_ID    09B         TEXT(''
    und dass ich dann beim umwandeln mit CRTPF immer eine Fehlermeldung bekommen!

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello again,

    das leere Textfeld könnte man vermutlich mit
    concat trim(left(WHFTXT , 27)) concat ' ' concat '''' concat ')' umgehen. Weiss gerade nicht, ob die Syntax korrekt ist, aber du hängst einfach grundsätzlich noch ne Leerstelle hinten ran, wenn Du verstehst was ich meine...


    Und die genaue Fehlermeldung wäre interassant, falls es nicht geht.

    In diesem Sinne...

    k.

    Noch ein kleiner Nachtrag:
    Die Lösung von Birgitta würde ich bevorzugen so grundsätzlich.
    Ob man ein *Blank überhaupt mit concat ranbekommt, weiss ich nicht, im Zweifelsfalle eben irgendein doofes Zeichen nehmen (Punkt?)...

    Und noch ne Frage: was wird das eigentlich?
    Sieht mir nach Journal und DSPFFD usw. aus....
    So eine Art Ablage in ne File was an Infos aus dem Journal kommt?

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    309
    Hier mal die Fehlermeldung mit dem Eingebauten Statment
    (hoffe es ist so richtig!)

    PHP-Code:
    Satz    *...+... ...+... ...+... ...+... ...+... ...+... ...+... ...+... 8   FLGNRLetzte Änderung  
          1     insert into jrnanz
    /SOURCES1                                                                            
          2     SELECT 1 
    ,'     A            '|| WHFLDI||'   '||                                                   
          
    3     case when whfldd=0 then substr(digits(whfldb) , 3)                                                 
          
    4     else ' '||digits(whflddend                                                                           
          5     
    ||whfldt||                                                                                             
          
    6     case when whfldp=0 then '  '                                                                           
          
    7     else substr(digits(WHFLDp) , 2end                                                                
          8     
    ||'       TEXT('||''''|| trim(left(WHFTXT 28))||''''||')'                                            
          
    9     Concat Case When Length(Trim(Left(WHFTXT28) <> 0                                                     
         10                 Then 
    '       TEXT(' concat                                                                 
         11                      
    '''' concat trim(left(WHFTXT 28)) concat ''''                                       
         
    12                      concat ')' end                                                                        
         13     from jrnanz
    /fields                                                                                     
                                   
    * * * * *  E N D E  D E R  Q U E L L E * * * * *                                    
    SQL0104  30       9  Position 51 Token <> ungültigGültige Token: ).                                              
                        
    Nachrichtenzusammenfassung                                                                     
      Gesamt    Info   Warnung      Fehler  Wertigk
    Beendigung                                                        
          1        0         0          0        1         0                                                           
    Fehler der Wertigkeitsstufe 30 in Quelle gefunden

    JobLog:
    Befehl RUNSQLSTM fehlgeschlagen.
    Fehler bei Ausführung des Verarbeitungsbefehls; Einzelheiten enthält das Jobprotokoll.


    Sieht mir nach Journal und DSPFFD usw. aus....
    -> stimmt genau
    (es handelt sich um ext. Pgm(e). welche in einer bestimmten Bibl. arbeiten, dort ist ein Journal auf an, und ich wollte mal genauern sehen, was da denn so alles (je Datei) gemacht wird)

  4. #4
    Registriert seit
    Aug 2004
    Beiträge
    923
    Also mit der "Fehlermeldung" kann ich nix anfangen. Ist mehr nen Fall für Brigitta oder so...

    Hier mal ein "manueller" Ablauf um ein Journal auszuwerten...

    DSPJRN JRN(Journalname)
    FROMTIME(220805 150000)
    TOTIME(220805 160000)
    OUTPUT(*OUTFILE)
    OUTFILE(QTEMP/TYPE1)
    ENTDTALEN(*CALC)

    Dann Datei erstellen JRNTYP1 in QTEMP

    *
    A R QJORDJE
    *
    A JOENTL 5P 0 COLHDG('EINTRAGSLÄNGE')
    A JOSEQN 10P 0 COLHDG('FOLGENUMMER')
    A JOCODE 1A COLHDG('JOURNALCODE')
    A JOENTT 2A COLHDG('EINTRAGSART')
    A JODATE 6A COLHDG('DATUM')
    A JOTIME 6P 0 COLHDG('UHRZEIT')
    A JOJOB 10A COLHDG('JOBNAME')
    A JOUSER 10A COLHDG('BENUTZERNAME')
    A JONBR 6P 0 COLHDG('JOBNUMMER')
    A JOPGM 10A COLHDG('PROGRAMMNAME')
    A JOOBJ 10A COLHDG('OBJEKTNAME')
    A JOLIB 10A COLHDG('OBJEKTBIBLIOTHEK')
    A JOMBR 10A COLHDG('TEILDATEINAME')
    A JOCTRR 10P 0 COLHDG('GEÄNDERTE ANZAHL OD.')
    A JOFLAG 1A COLHDG('MARKIERUNG: 1 ODER 0')
    A JOCCID 10P 0 COLHDG('COMMIT-ZYKLUS-ID')
    A JOINCDAT 1A COLHDG('UNVOLLST.')
    A JOMINESD 1A COLHDG('MINIM. ESD')
    A JORES 18A COLHDG('NICHT VERWENDET')
    A JOESD 2000H COLHDG('INHALT')
    A*

    Dann..

    CPYF FROMFILE(QTEMP/TYPE1)
    TOFILE(QTEMP/JRNTYP1)
    MBROPT(*REPLACE)
    FMTOPT(*MAP)

    Dann Datei erstellen JRNTMP1 wie JRNTYP1 aber statt JOESD die Felder der
    betreffenden echten Datei anhängen.

    Dann...

    CPYF FROMFILE(QTEMP/JRNTYP1)
    TOFILE(QTEMP/JRNTMP1)
    MBROPT(*REPLACE)
    FMTOPT(*NOCHK)


    Fertig! Auswerten mit z.B. SQL...


    Ich hoffe Du kommst klar damit.

    kuempi

  5. #5
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    warum hast Du die Text-Angabe doppelt codiert?

    Das korrekte Statement müsste so aussehen:
    PHP-Code:
    insert into jrnanz/SOURCES1                                                                            
       SELECT 1 
    ,'     A            ' concat WHFLDI concat '   ' concat                                             
              
    case when whfldd=0 then substr(digits(whfldb) , 3)                                           
                   else 
    ' 'concat digits(whflddend                                                                     
              concat whfldt concat                                                                                       
              
    case when whfldp=0 then '  '                                                                     
                   
    else substr(digits(WHFLDp) , 2end                                                          
              concat
              
    Case When Length(Trim(Left(WHFTXT28) <> 0                                               
                   Then 
    '       TEXT(' concat                                                           
                        
    '''' concat trim(left(WHFTXT 28)) concat ''''                                 
                        
    concat ')' end                             
         from jrnanz
    /fields 
    Übrigens mit der skalaren Funktion Space(Zahl) kann man eine beliebige Anzahl *Blanks generieren: z.B. bei Space(5) werden 5 aufeinanderfolgende Blanks generiert.


    Birgitta
    Birgitta Hauser

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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    309
    bekomme jetzt folgenden Fehler:

    PHP-Code:
    Satz    *...+... ...+... ...+... ...+... ...+... ...+... ...+... ...+... 8   FLGNRLetzte Änderung
          1 insert into jrnanz
    /SOURCES1                                                                              
          2    SELECT 1 
    ,'     A            ' concat WHFLDI concat '   ' concat                                  
          3           
    case when whfldd=0 then substr(digits(whfldb) , 3)                                         
          
    4                else ' 'concat digits(whflddend                                                         
          5           concat whfldt concat                                                                           
          6           
    case when whfldp=0 then '  '                                                                   
          
    7                else substr(digits(WHFLDp) , 2end                                                   
          8           concat                                                                                         
          9           
    Case When Length(Trim(Left(WHFTXT28) <> 0                                                    
         10                Then 
    '       TEXT(' concat                                                                
         11                     
    '''' concat trim(left(WHFTXT 28)) concat ''''                                      
         
    12                     concat ')' end                                                                       
         13      from jrnanz
    /fields                                                                                  
                                   
    * * * * *  E N D E  D E R  Q U E L L E * * * * *                                  
    5722SS1 V5R3M0 040528            SQL-Anweisungen ausführen         SQL                                01.09.06 09
    Satz    
    *...+... ...+... ...+... ...+... ...+... ...+... ...+... ...+... 8   FLGNRLetzte Änderung
    MSG ID  WTK  SATZ  TEXT                                                                                          
    SQL0104  30       9  Position 50 Token 
    <> ungültigGültige Token: ).
                        
    Nachrichtenzusammenfassung             
      Gesamt    Info   Warnung      Fehler  Wertigk
    Beendigung
          1        0         0          0        1         0   
    Fehler der Wertigkeitsstufe 30 in Quelle gefunden


  7. #7
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    vielleicht solltest du mal genauer beschreiben, was du eigentlich machst und was du damit erreichen willst. Mir scheint, dass das mit einem relativ einfachen
    create table as
    (select joccid, joentt, ..., b.*
    from xxxjrn, xxx b
    ) with no data
    in einem ratsch und einfacher geht.

    mfg

    Dieter Bender

    der keine Ratespiele mag
    Zitat Zitat von muadeep
    bekomme jetzt folgenden Fehler:

    PHP-Code:
    Satz    *...+... ...+... ...+... ...+... ...+... ...+... ...+... ...+... 8   FLGNRLetzte Änderung
          1 insert into jrnanz
    /SOURCES1                                                                              
          2    SELECT 1 
    ,'     A            ' concat WHFLDI concat '   ' concat                                  
          3           
    case when whfldd=0 then substr(digits(whfldb) , 3)                                         
          
    4                else ' 'concat digits(whflddend                                                         
          5           concat whfldt concat                                                                           
          6           
    case when whfldp=0 then '  '                                                                   
          
    7                else substr(digits(WHFLDp) , 2end                                                   
          8           concat                                                                                         
          9           
    Case When Length(Trim(Left(WHFTXT28) <> 0                                                    
         10                Then 
    '       TEXT(' concat                                                                
         11                     
    '''' concat trim(left(WHFTXT 28)) concat ''''                                      
         
    12                     concat ')' end                                                                       
         13      from jrnanz
    /fields                                                                                  
                                   
    * * * * *  E N D E  D E R  Q U E L L E * * * * *                                  
    5722SS1 V5R3M0 040528            SQL-Anweisungen ausführen         SQL                                01.09.06 09
    Satz    
    *...+... ...+... ...+... ...+... ...+... ...+... ...+... ...+... 8   FLGNRLetzte Änderung
    MSG ID  WTK  SATZ  TEXT                                                                                          
    SQL0104  30       9  Position 50 Token 
    <> ungültigGültige Token: ).
                        
    Nachrichtenzusammenfassung             
      Gesamt    Info   Warnung      Fehler  Wertigk
    Beendigung
          1        0         0          0        1         0   
    Fehler der Wertigkeitsstufe 30 in Quelle gefunden

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

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Case When Length(Trim(Left(WHFTXT, 28) <> 0

    Zähl doch einfach mal die offenen Klammern !
    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
    Apr 2004
    Beiträge
    105
    Versuch es mal hiermit:

    Code:
    insert into jrnanz/SOURCES1                                                                              
       SELECT 1 , 1 ,'     A            ' concat WHFLDI concat '   ' concat                                  
              case when whfldd=0 then substr(digits(whfldb) , 3 , 3)                                         
                   else ' 'concat digits(whfldd) end                                                         
              concat whfldt concat                                                                           
              case when whfldp=0 then '  '                                                                   
                   else substr(digits(WHFLDp) , 1 , 2) end                                                   
              concat                                                                                         
              Case When Length(Trim(Left(WHFTXT, 28))) <> 0                                                    
                   Then '       TEXT(' concat                                                                
                        '''' concat trim(left(WHFTXT , 28)) concat ''''                                      
                        concat ')' end                                                                       
         from jrnanz/fields
    LG, Kathrin

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem mit Objektberechtigung bei RUNSQLSTM
    By rebe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 14-12-06, 12:57
  3. Problem mit Steuerzeichen in Datenbank?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-10-06, 10:07
  4. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  5. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39

Berechtigungen

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