[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2001
    Beiträge
    2.044

    Create table lib/file as ...

    Hi *all

    ich habe hier ein SQLRPGLE Pgm mit einem recht komplexen
    SQL Konstrukt
    Um das Ergebnis zu prüfen habe ich das Statement auch schon interaktiv ausgeführt.

    Da es Host Variablen enthält (ich glaube so heist das, wir sagen immer Doppelpunktfelder) möchte ich nun die Selektion zusätzlich in eine Datei ausgeben.

    Also habe ich ein
    "Create table qtemp/testfile as ("
    davor gesetzt und ein
    ") with data"
    dahinter.

    Fehlermeldung beim Wandeln:

    Position 37 Host-Variable hier nicht zulässig.

    Kann ich beim
    create table qtemp/testfile as (
    with base as(select ...
    where feld = :sollwert ...)
    select f1, f2, f3 from base where ...
    ) with data

    keine :variablen verwenden?

    Alternativen ?

    danke
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Mach das SQL-Statement dynamisch und fühere es mit EXECUTE immediate aus. Etwas in die Richtung:

    Code:
    D  MySQLStmt     S            1024A   Varying
    
     /Free
        MySQLStmt = 'Create Table QTEMP/MYTABLE +
                         as (Select ..... +
                               From ... +
                               Where     MyFld1 = '   + %Char(MyNumVar) +
                                   ' and MyFld2 = ''' + MyCharVar + ''' +
                                     and ... ) +
                     With Data';
    
        Exec SQL Execute immediate :MySQLStmt;
     /End-Free
    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

  3. #3
    Registriert seit
    Jun 2001
    Beiträge
    2.044
    Hallo Birgitta,
    sowas wollt ich vermeiden
    die Lesbarkeit und die Pgm Pflege wird so zum Horrortrip.

    Wir würden beim Kunden viel mehr mit SQL machen, wenn ich die das SQL Ergebnis einfach in eine Datei umleiten könnte.
    (zusätzlich)
    Da sowol beim fetch als auch bei massen Updat's
    Zum Testen Schalter setzen und dann prüfen ob die verwendeten Sätze die richtigen sind.
    Bisher machen wir das vorwiegend interaktiv aber kopier mal 3 Seiten strukturiert geschriebennen Code aus einem Pgm in eine interaktive Sitzung.
    (oder umgekehrt)
    Anschließend müssen noch die Host-Variablen gesetzt oder entfernd werden

    Ich hab das jetzt gemacht, und es funzt erstmal, Danke
    Gruß
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zerlegt Ihr eure komplexen Abfragen nicht in Views und setzt dann nur noch die Where-Bedingungen dazu.

    Views können verschachtelt werden. (Ich hab' teilweise Views, die 4 oder 5fach verschachtelt sind).

    Da Views keine Schlüssel haben kosten Sie beim Insert/Update und Delete von Datensätzen keine Performance, d.h. du kannst buchstäblich tausende von Views haben ohne irgendwelche Performance-Einbußen.

    Die Views könnt Ihr dann sowohl in die Programme einbinden als auch zum Testen verwenden.
    ... und sofern sich die View ändert, braucht wahrscheinlich noch nicht einmal das Programm angepasst werden.
    ... und alle SQL Interfaces (incl. Query/400 und Download auf PC) können die Views verwenden.

    Wahrscheinlich braucht ihr dann noch nichteinmal temporäre Dateien.

    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

Similar Threads

  1. create table as .. with data, unterschiedliche CSSIDs
    By Souljumper in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 03-01-11, 17:47
  2. SQL left join
    By ahingerl in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 08-12-06, 08:28
  3. CREATE TABLE
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 02-08-05, 13:52
  4. SQL - Create Table X/Y Angabe Satzformat
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 25
    Letzter Beitrag: 05-11-04, 15:17
  5. DATFMT bei CREATE TABLE
    By lorenzen in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 21-03-01, 13:44

Berechtigungen

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