-
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!)
-
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.
-
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!)
-
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
-
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.
-
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);
-
 Zitat von Fuerchau
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.
-
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!)
-
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!)
-
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
-
 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 von Robi
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)
-
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
-
By JotSo in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 27-11-19, 14:59
-
By dholtmann in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 11-05-18, 15:38
-
By whitie59 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 27-09-17, 11:47
-
By heynem in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 11-09-02, 14:13
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks