Eine Artikelergänzung zu:
Interactives SQL
Fortsetzung des Artikels aus NEWS/400 – November 98 Seite 51
Sie verknüpft (join) mehrere Dateien.
Eine in der Klausel SELECT angegebene Datei ist eine schreibgeschützte Sicht.
Sie verwendet das Schlüsselwort DISTINCT.
Sie enthält zusammengefaßte Daten.
Sie verwendet ein äußeres und ein inneres SELECT an derselben Datei.
SQL-Befehlszeile verwenden
Wenn die SQL-Syntax und -Anweisungen bekannt sind, ist die Bedienerführung für Anweisungssätze nicht erforderlich. In der Befehlszeile der interaktiven Sitzung können Sie SQL-Anweisungen direkt angeben und durch Drücken der Eingabetaste die Anweisung verifizieren und verarbeiten lassen. Enthält die Anweisung einen Fehler, erscheint unter der ursprünglichen Anweisung eine Fehlermeldung. Die Anweisung wird erneut auf einer Befehlszeile angezeigt, wobei der Positionsanzeiger auf dem Fehler positioniert ist (Abbildung 7). Sie können den Positionsanzeiger auf die Fehlermeldung stellen und entweder mit der Hilfetaste oder F1 sowohl eine vollständige Fehlerbeschreibung als auch Hinweise zur Fehlerbehebung aufrufen.
Das Eingeben von SQL-Anweisungen auf der Befehlszeile wird durch einige Funktionstasten erleichtert. Mit F6 werden Zeilen nach der Zeile, auf der sich der Positionsanzeiger befindet, eingefügt. Durch wiederholtes Drücken von F6 können Sie die Befehlszeile auf eine vollständige Seite mit Zeilen erweitern. Mit F9 können frühere Anweisungen abgerufen werden. Blättern Sie im Anweisungsprotokoll, stellen Sie den Positionsanzeiger auf die gewünschte Anweisung und drücken Sie F9. Mit F10 wird die Zeile, auf der sich der Positionsanzeiger befindet, in die folgende Zeile kopiert. Alle der folgenden Zeilen werden eine Zeile nach unten verschoben. Mit F13 können verschiedene Sitzungseinstellungen geändert werden (Sitzungseinstellungen werden im nächsten Abschnitt detaillierter behandelt.) Mit F14 wird die Zeile, auf der sich der Positionsanzeiger befindet, gelöscht. Alle folgenden Zeilen werden eine Zeile nach oben verschoben. Mit F15 wird die Zeile an der Stelle geteilt, an der sich der Positionsanzeiger befindet. Alle Einträge nach dem Positionsanzeiger werden auf die nächste Zeile verschoben. Wenn Ihnen die SQL-Syntax vertrauter ist, werden Sie Anweisungen angeben, die sich über mehrere Zeilen erstrecken.
Beim Einfügen und Löschen von Zeichen bricht SQL die Zeilen nicht um. Wenn Sie versuchen, etwas in eine Zeile einzufügen, können Sie Zeichen bis zum Zeilenende einfügen, dann erscheint eine Nachricht, die darauf hinweist, daß das Zeilenende erreicht und für weitere Daten kein Platz vorhanden ist. Mit F15 können Sie die Anweisung genau dort trennen, wo Sie es für Änderungen und Aktualisierungen benötigen. Vielleicht wollen Sie aber auch nur erreichen, daß die Anweisung beim Anzeigen übersichtlicher aussieht.
SQL Services-Anzeige verwenden
Mit F13 rufen Sie die Serviceanzeige auf. In dieser Anzeige können Sie mit Auswahl 1 (Change Session Attributes) die Sitzungsattribute für die Sitzung ändern. Die Attribute, die im allgemeinen geändert werden, werden durch den Parameter für die Anweisungsverarbeitung und den SELECT-Ausgabeparameter gesteuert .
Der Parameter für die Anweisungsverarbeitung legt die Verarbeitungsart der Anweisung fest. *RUN verifiziert und führt die Anweisung aus, dazu können das Aktualisieren, Hinzufügen oder Löschen von Sätzen gehören. *VLD überprüft die Syntax der Anweisung und die Gültigkeit der Tabellenverweise. *SYN überprüft nur die Syntax der Anweisung. *VLD und *SYN führen keine Dateiaktualisierungen durch.
Der Ausgabeparameter der SELECT-Anweisung legt fest, wohin die Ausgabe der Anweisung gestellt werden soll. Mit Auswahl 1 (Standard) wird die Ausgabe am Bildschirm angezeigt. Mit Auswahl 2 wird die Ausgabe an einen Drucker geschickt. Mit Auswahl 3 wird die Ausgabe an eine von Ihnen angegebene Datei umgeleitet. Wenn die angegebene Datei noch nicht vorhanden ist, wird eine neue Datei erstellt. Das Satzformat einer schon vorhandenen Datei muß mit dem Format der Ausgabe übereinstimmen.
Durch Auswahl 2 (Print Current Session) in der SQL Services-Anzeige wird die vollständige Sitzung gedruckt. Auswahl 3 (Remove all entries from current session) löscht alle Einträge im Sitzungsprotokoll. Nachdem der Inhalt des Sitzungsprotokolls gelöscht ist, können vorher eingegebene SQL-Anweisungen nicht mehr abgerufen werden. Mit Auswahl 4 (Save session in source file) schreiben Sie die Sitzung in eine Quellendatei. Diese Textdatei (Abbildung 8) enthält das Sitzungsprotokoll als eine Quellenteildatei, mit der Sie das Fundament für eine Teildatei mit SQL-Anweisungen legen können, die zu einem späteren Zeitpunkt mit dem Befehl RUNSQLSTM ausgeführt werden soll.
Sitzungen mit TCP/IP sichern
SQL-Sitzungsinformationen werden mit dem Benutzerprofil- und dem Datenstationsnamen gespeichert. Wenn Sie für Connectivity TCP/IP einsetzen, werden bei jedem Anmelden neue Datenstationsnamen erstellt. Ohne den Namen, den Ihre Datenstation bei der letzten Sitzung hatte, können Sie die Informationen Ihrer letzten Sitzung nicht abrufen. IBM hat dieses Problem erst mit V4R2 gelöst.
Seit V4R2 können Sie beim Einsatz von TCP/IP benannte Einheiten behalten. Benutzer älterer Versionen lösen dieses Problem am besten folgendermaßen: Sichern Sie Ihre Sitzungsinformationen in einer Textdatei, so daß Sie häufig verwendete Anweisungen durch Kopieren und Einfügen in Ihre interaktive SQL-Sitzung übertragen können.
Tips zum Interaktiven SQL
Die SQL-Anweisung CREATE TABLE ist oft ein guter Weg, um Dateien zu erstellen. DDS ist nicht erforderlich.
Auch wenn Sie nur eine kurze SQL-Anweisung in der Befehlszeile angeben, sollten Sie für jede Klausel eine neue Zeile verwenden. Spätere Änderungen werden dadurch vereinfacht.
Mit SQL können die Dateien aus durch Komma getrennten Werten, die von PC-Programmen so oft benötigt werden, sehr gut erstellt werden. Folgendes Beispiel soll das verdeutlichen:
SELECT DIGITS( CustID ) || ‚,“‚ ||
TRIM( CustName ) || ‚“,‘ ||
DIGITS( DECIMAL(Balance,5,0))
FROM CustMast
Die Funktion DIGITS wandelt ein numerisches Feld (z.B. CustID) in ein Zeichenfeld um. (Nicht angezeigt ist die Funktion CHAR, die Zeichenfelder in numerische Felder umsetzt.) Mit dem Zeichen || können Sie Kommas einbinden (concatenate), wo immer Sie sie brauchen. Die Funktion DECIMAL innerhalb der Funktion DIGITS gibt den ganzzahligen Teil eines Felds zurück. Die Funktion TRIM entfernt führende und nachfolgende Leerzeichen aus Zeichenfeldern wie CustName. Da dieses Beispiel alle Felder verknüpft, besteht das Ergebnis aus einem langen Feld, das dann mit der SQL-Anweisung INSERT in eine AS/400-Datei eingefügt werden kann.
Wenn Sie auf der AS/400 noch nicht mit NULL-Werten gearbeitet haben, müssen Sie sich mit dem Einsatz vertraut machen. NULL hat weder etwas mit der Zahl 0 noch etwas mit Leerzeichen zu tun, NULL bedeutet nichts. SQL bietet volle Unterstützung für NULL-Felder.
Die Datums- und Zeitformate, die der SQL-Sitzung angegeben werden, überschreiben die internen Datenbankformate. Wenn beispielsweise für ein Feld in einer Datenbankdatei als Format *ISO angegeben ist und *MDY das Format der SQL-Sitzung ist, wird das Datum im *MDY-Format angezeigt. Mit F13 rufen Sie das SQL Services-Menü auf. Mit Auswahl 1 in diesem Menü können Sie das Datums- oder Zeitformat ändern.
SQL-Sitzung verlassen
Durch Drücken der Taste F3 verlassen Sie die interaktive SQL-Sitzung. Mit Auswahl 1 in der erscheinenden Anzeige „Exit Interactive SQL“ sichern Sie Ihre aktuelle Sitzung und verlassen SQL. Mit Auswahl 2 verlassen Sie SQL, ohne die Aktionen der aktuellen Sitzung zu protokollieren. Eingegebene Anweisungen werden bei dieser Auswahl nicht gesichert. Mit Auswahl 3 kehren Sie zur aktuellen SQL-Sitzung zurück. Mit Auswahl 4 werden die Anweisungen der aktuellen Sitzung in einer Quellenteildatei gesichert. Vorteile haben neue und erfahrene SQL-Benutzer, die bereits Kenntnisse des interaktiven SQL-Programms besitzen. Als neuer Benutzer können Sie mit Hilfe der interaktiven Features schneller in SQL einsteigen. Als erfahrener Benutzer unterstützten Sie die interaktiven Features beim Codieren von sehr komplexen Klauseln. Die interaktive SQL-Einrichtung ist auf jeden Fall eine hervorragende Einsatzmethode für SQL.
Übersetzt von Susanne Groß


