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

    SQL-Skrips ausführen

    Moin zusammen,

    bisher war ich ja noch Team: STRSQL.

    Jetzt habe ich ein bisschen mit dem ACS 'SQL-Scripts ausführen' rumgespielt.

    Was nervt ist, das ich die Dateien immer in der schreibweise TEST.File ode halt Echt.File eintippen muß.

    Kann ich da soetwas wie eine Liblist hinterlegen? Die ich dann auch schnell umstellen kann?
    Schema habe ich gefunden, aber was ich damit machen kann erschließt sich mir noch nicht.

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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.908
    Das geht über die Verbindungseinstellungen und den SQL-Modus *SYS/*SQL, *SQL ist der default und der verlangt ein Default-Schema oder qualifizierte Namen.
    Bei *SYS kannst du in der Verbindung auch eine Liblist hinterlegen.
    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 2001
    Beiträge
    2.069
    Hmm,
    habe nun in Verbindung > JDBC Konfiguration das sql Standardschema ECHT angelegt mit der LIBLIST unserer Echt Umgebung. Formatieren habe ich auf *SYS und gespeichert.

    Ein
    select * from Datei bringt
    SQL0204 Datei der Art *file in ECHT nicht gefunden

    Auf finde ich keine Möglichkeit eine 2. Liblist "Test" zu hinterlegen um dann z.b. auf das Schema TEST zu wechseln

    noch ne Idee?
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  4. #4
    Registriert seit
    Nov 2020
    Beiträge
    464
    Du darfst bei Standardschema keine Lib angeben, wenn du die LIBL verwenden möchtest:



    Sobald in Standardschema etwas enthalten ist, wird immer versucht über diese die Objekte aufzulösen

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.908
    Nicht ganz korrekt, denn wenn Standard-Lib nicht gesetzt, wird eine Lib mit dem Namen des Users gesucht. Wichtig ist, dass die Liblist stimmt und im QZDASOINIT-Job auch akzeptiert wird.
    Mittels NAMING *SYS wird dann per Libl gesucht.

    Das sollte man auf der IBM mit z.B.:
    wrkobjlck Username *usrprf
    im QZDASOINIT-Job prüfen, denn wenn das Setzen der LIBL scheitert, gibts keinen SQL-Fehler.
    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

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.966
    Vielleicht noch eine Anmerkung: Das Default oder Current Schema in SQL (bzw. beim SQL Naming) ist nicht das gleiche wie eine CURLIB.
    Wenn Du möchstest, dass alles läuft, wie Du es gewohnt bist, musst du mit *SYS (System Naming Conventions) arbeiten.
    In der Connection kannst Du eine (Anfangs-)Bibliotheksliste hinterlegen.
    Wenn Du die Bibliotheksliste ändern möchstest, kannst Du natürlich jedes Mal die Verbindung ändern oder mehrere Verbindungen anlegen.
    Allerdings ist es auch möglich CL-Befehle (ohne Oberfläche, z.B. ADDLIBLE oder CHGLIBL aber nicht EDTLIBL) ausführen. Dazu musst Du lediglich vor dem CL-Befehl CL: angeben und am Ende ein Semi Colon ( setzen. Du hast auch die volle Bedienerführung (F4) für die CL-Befehle.
    Beispiel:
    Code:
    CL:CHGLIBL LIBL(QTEMP COMUPDDTA SYSTOOLS QGPL);
    Birgitta Hauser

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

  7. #7
    Registriert seit
    Nov 2020
    Beiträge
    464
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Nicht ganz korrekt, denn wenn Standard-Lib nicht gesetzt, wird eine Lib mit dem Namen des Users gesucht. Wichtig ist, dass die Liblist stimmt und im QZDASOINIT-Job auch akzeptiert wird.
    Mittels NAMING *SYS wird dann per Libl gesucht.
    DAS ist nicht ganz korrekt :-)

    Wenn du die Standard-Lib angibst, wird immer diese genommen und nicht die LIBL. Dabei ist es egal was für ein NAMING du hast.

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    2.069
    Hmm,
    ich hab jetzte naming *sys
    Standardschema leer
    Bibliotheksliste *libl

    ein cl:dsplibl Zeigt nix, wird aber ausgeführt

    Ein:
    cl: addlible TEST *first;
    select max(wert) from Datei;
    cl: rmvlible TEST;
    CL: addlible ECHT;
    select max(wert) from datei;

    bricht beim addlible ECHT ab, da die Lib schon in der Liblist ist (woher?)
    Zeigt nicht den max wert des 2. Statement

    Was ist noch ein zu stellen?
    Danke!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  9. #9
    Registriert seit
    Jun 2001
    Beiträge
    2.069
    Noch ne Frage,

    habe nun gedacht ich lege eine 2. Verbindung an.
    Kann aber nur JDBC Standard auswählen.

    Kopieren und die Liblist und den Namen anpassen geht nicht, auch ein "Speichern unter" fehlt.
    Wie mach Ihr das?
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  10. #10
    Registriert seit
    Jan 2007
    Beiträge
    1.051
    Ehrlich gesagt, ich mach das nicht und lebe mit den Vorgaben lib.file. Anstelle, dass ich lange rum nöle, mache ich einen scan/replace. Fettich.
    kf

  11. #11
    Registriert seit
    Nov 2020
    Beiträge
    464
    Zitat Zitat von Robi
    ein cl:dsplibl Zeigt nix, wird aber ausgeführt
    DSPLIBL hat eine 5250 Bildschirmausgabe. Du bekommst deshalb eine SQL Message ausgegeben:
    CPD4090: Printer device PRT01 not found. Output queue changed to QPRINT in library QGPL.

    Statt dessen verwende SQL:
    select * from qsys2.library_list_info

    Zitat Zitat von Robi Beitrag anzeigen
    bricht beim addlible ECHT ab, da die Lib schon in der Liblist ist (woher?)
    Zeigt nicht den max wert des 2. Statement
    Vielleicht bei dir am System ECHT bereits in der LIBL irgendwo hinterlegt (JOBD, SYSVAL, ...).
    Musst du die LIBL prüfen (siehe SQL oben)

  12. #12
    Registriert seit
    Nov 2020
    Beiträge
    464
    Kann mich Karl hier nur anschliesen.
    Entweder qualifizierte angaben (wenn ich via ACS oder VSCode SQL manuell absetzen möchte) oder ich mach vorher ein SET LIB MYLIB und pasta

Similar Threads

  1. SQL: Select nicht seitenweise ausführen
    By JotSo in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 27-11-19, 14:59
  2. SQL Function in Result ausführen
    By dholtmann in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 11-05-18, 15:38
  3. SQL-Prozeduren ausführen oder cwbundbs.exe
    By whitie59 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 27-09-17, 11:47
  4. SQL 10x ausführen
    By heynem in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 11-09-02, 14:13
  5. SQL-Befehle ausführen ohne SQL auf der Maschine, wie?
    By Carsten in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 15-10-01, 19:53

Berechtigungen

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