SQL-Zentrale
Funktionsbeschreibung
Die SQL-Zentrale ermöglicht es, SQL-Abfragen direkt an die Datenbank zu senden. Das Ergebis wird in einer Tabelle angezeigt. Über den Button "History" können vergangener Abfragen angezeigt und erneut ausgeführt werden.
WITH-Schlüsselwort in SQLs
WITH common_table_expression
Die SQL Zentrale ist bei der Verwendung von einer common_table_expression mit dem Schlüsselwort WITH am Anfang, nur für Select Anweisungen (DQL) ausgelegt: Bei Verwendung von updates wird die Anweisung zwar ausgeführt, aber anschließend eine Fehlermeldung ausgegeben (fehlendes "result set"). Im Zusammenspiel mit aktiver Hochverfügbarkeitsoption, wird es aber zu einem endlosen wiederholten Ausführen kommen, das erst durch ein kontrolliertes Beenden von dem interaktiven Job beendet werden kann.
Per SQL-Zentrale Datenbankübergreifend kopieren:
Die SQL-Zentrale bietet auch die Möglichkeit, Daten in unterschiedlichen Datenbanken auszugeben.
Wie?
Dem select-Statement wird eine "AusgabeDatei" angehängt, also:
Select .... from ... where ... ->[(Datenbankverbindung)][Schema.]Datei [*ADD/*REPLACE/*REPLACETABLE]
(die Angaben in [] sind optional; *ADD
ist default)
Beschreibung
Die (Datenbankverbindung) muss einen gültigen Wert aus OSQLCP.SQLD (=Beschreibung!) angeben.
Gibt es eine Datenbankverbindung in OP10470 für den aktuellen Nutzer, werden deren Verbindungsdaten vorrangig verwendet.
Beispiel:
select * from utlstp where tlidnr = 'HUGO' ->temp.utlsthugo *replacetable
Damit wird eine Tabelle UTLSTHUGO
im aktuellen Temp-Schema
angelegt
Nun sollen aber Daten von der i5 geholt werden.
In der SQL-Zentrale die Datenbankverbindung OXP8M1
auswählen und dann:
select * from cmddtar7_2/utlstp where tlidnr = 'HUGO' ->(*local)temp.utlsthugo *replacetable
Beschreibung
*LOCAL meint die Standard Datenbankverbindung des Systems (vgl. SYSINFO) und entspricht damit der Verbindung "Aktuelle Datenbank" in der SQL-Zentrale.
Dasselbe geht natürlich umgekehrt, z.B.:
select * from cmddtar7_2/utlstp where tlidnr = 'HUGO' ->(orm)temp.utlsthugo *replacetable
Was ist zu beachten?
*REPLACETABLE
löscht zuvor den gesamten Inhalt (nicht satzweise !!!)
Die Spalten werden "namentlich" verglichen (evalCorresponding
)
Felder
Parameter wählen
Feldbezeichnung | Erklärung |
---|---|
Beschreibung des SQL-Befehls | Beschreibung der SQL-Anweisung für die History der SQL-Zentrale
|