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

FeldbezeichnungErklärung
Beschreibung des SQL-Befehls
Beschreibung der SQL-Anweisung für die History der SQL-Zentrale

  • Keine Stichwörter