[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    58

    SQL Frage zu "execute immediate"

    Hallo *All,

    ich habe folgende Aufgabe :
    es müssen max. 50 Pgm Variablen mit dem Wert aus einer Datei gefüllt werden.
    Dazu wollte ich etwas schlauer sein und habe ich mir folgende Lösung ausgedacht :

    D XCol01 S 3 0
    :
    :
    D XCol50 S 3 0
    D FTZhl S 3 0 (Zähler 1 - 50)

    In der Do Schleife mache ich pro Lesevorgang :
    FTZhl += 1;
    SQLStm = 'Set :' + 'XCol' + %editc(FTZhl:'X') + ' = ' + %editc(XLAENGE:'Z');

    EXEC SQL
    execute immediate :SQLStm
    ;


    Beim Debuggen sehe ich :

    > EVAL sqlstm SQLSTM =
    ....5...10...15...20...25...30...35...40...45...50 ...55...60
    'Set :XCol01 = 1
    '

    aber nach "execute" bekome ich SQLCODE = -312, Variable nicht deklariert oder nicht verwendbar.

    Funktioniert "set " über "execute immediate" auf diese Weise nicht ?
    Kann man das irgendwie anders (ohne IF's !) lösen ?

    Schöne Grüsse

    A. Wojcik

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Ich weiß ja nicht, was du mit dem Set erreichen willst.
    Hostvariablen gehen nicht im dynamischen SQL.

    Statt XCol01-XCol50 verwende doch einfach:
    D xCol S 3 0 dim(50)
    D xI 5I 0

    for xI = 1 to 50;
    xCol(xI)=xI;
    next;
    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 2001
    Beiträge
    2.875
    Host-Variablen kann man schon verwenden, jedoch nicht in dieser Form und weder beim SET noch beim SELECT ... INTO und auch nicht als Ausgabe-Parameter in Verbindung mit EXECUTE IMMEDIATE!
    Beim VALUES INTO können Host-Variablen in Form von Parameter-Markern (?) verwendet werden. Beim EXECUTE kann die Host-Variable mit USING angegeben 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

  4. #4
    Registriert seit
    Jan 2008
    Beiträge
    58
    Hi,

    ich danke Euch !

    mit SQL kan man viel zaubern, aber manchmal muss auch RPG sein...

    A. W.

Similar Threads

  1. Kann keine Beiträge erstellen in zB. "System i Hauptforum"
    By lch in forum Intern - Hilfe - Feedback - Tests-Forum
    Antworten: 10
    Letzter Beitrag: 15-02-21, 11:06
  2. Frage zu JT400 und "in-service release"
    By alex.kretschmer in forum NEWSboard Java
    Antworten: 3
    Letzter Beitrag: 08-07-16, 09:20
  3. MinusField falsche Darstellung "ü" statt "-"
    By Edi in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 07-11-14, 07:52
  4. Cobol/400 - "Fett", "Unterstreichen" als HEX-Wert
    By RLurati in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 05-08-14, 09:10
  5. "zu wenig Speicher" Rational Developer for Power-Systems
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 13-02-14, 20:58

Berechtigungen

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