SQL-Anweisungen ausführen mit SQL EXECUTE

Anwendung

SQL EXECUTE verwenden Sie in Verbindung mit verschiedenen SQL-Anweisungen.

Voraussetzungen

  • Schlüsselzahl 555343
  • Tabelle vorhanden
  • Geeigneter Tabellenname
  • Die Namen von Tabellen und Tabellenspalten müssen mit einem Buchstaben beginnen und dürfen keine Rechenzeichen, z. B. + beinhalten. Diese Zeichen können aufgrund von SQL-Befehlen beim Einlesen oder Auslesen von Daten zu Problemen führen.

Funktionsbeschreibung

SQL EXECUTE_01
Schwarze Pfeile und zugehörige Syntax zeigen interne Abläufe von SQL EXECUTE. Graue Pfeile und zugehörige Syntax gehören nicht unmittelbar zu dem Befehl SQL EXECUTE.

Die Steuerung bietet folgende SQL-Anweisungen im Befehl SQL EXECUTE:

Anweisung

Funktion

SELECT

Daten selektieren

CREATE SYNONYM

Synonym erstellen (lange Pfandangaben durch kurzen Namen ersetzen)

DROP SYNONYM

Synonym löschen

CREATE TABLE

Tabelle erzeugen

COPY TABLE

Tabelle kopieren

RENAME TABLE

Tabelle umbenennen

DROP TABLE

Tabelle löschen

INSERT

Tabellenzeilen einfügen

UPDATE

Tabellenzeilen aktualisieren

DELETE

Tabellenzeilen löschen

ALTER TABLE

  • Mit ADD Tabellenspalten einfügen
  • Mit DROP Tabellenspalten löschen

RENAME COLUMN

Tabellenspalten umbenennen

SQL EXECUTE mit der SQL-Anweisung SELECT

Der SQL-Server legt die Daten zeilenweise im Result-set (Ergebnismenge) ab. Die Zeilen werden, mit 0 beginnend, fortlaufend nummeriert. Diese Zeilennummer (der INDEX) verwenden die SQL-Befehle FETCH und UPDATE.

SQL EXECUTE in Verbindung mit der SQL-Anweisung SELECT wählt Tabellenwerte, transferiert sie in den Result-set und eröffnet dabei immer eine Transaktion. Im Gegensatz zum SQL-Befehl SQL SELECT ermöglicht die Kombination aus SQL EXECUTE und der Anweisung SELECT eine gleichzeitige Auswahl mehrerer Spalten und Zeilen.

In der Funktion SQL ... "SELECT...WHERE..." geben Sie die Suchkriterien an. Damit grenzen Sie die Anzahl der zu transferierenden Zeilen bei Bedarf ein. Wenn Sie diese Option nicht verwenden, werden alle Zeilen der Tabelle geladen.

In der Funktion SQL ... "SELECT...ORDER BY..." geben Sie das Sortierkriterium an. Die Angabe besteht aus der Spaltenbezeichnung und dem Schlüsselwort ASC für aufsteigende oder DESC absteigende Sortierung. Wenn Sie diese Option nicht verwenden, werden die Zeilen in einer zufälligen Reihenfolge abgelegt.

Mit der Funktion SQL ... "SELECT...FOR UPDATE" sperren Sie die selektierten Zeilen für andere Anwendungen. Andere Anwendungen können diese Zeilen weiterhin lesen, aber nicht ändern. Wenn Sie Änderungen an den Tabelleneinträgen vornehmen, verwenden Sie diese Option unbedingt.

Leerer Result-set: Wenn keine Zeilen dem Suchkriterium entsprechen, liefert der SQL-Server ein gültiges HANDLE ohne Tabelleneinträge zurück.

Bedingungen der WHERE-Angabe

Bedingung

Programmierung

gleich

= ==

ungleich

!= <>

kleiner

<

kleiner oder gleich

<=

größer

>

größer oder gleich

>=

leer

IS NULL

nicht leer

IS NOT NULL

Mehrere Bedingungen verknüpfen:

Logisches UND

AND

Logisches ODER

OR

Hinweise

  • Sie können auch für noch nicht erzeugte Tabellen Synonyme definieren.
  • Die Reihenfolge der Spalten in der erzeugten Datei entspricht der Reihenfolge innerhalb der AS SELECT-Anweisung.
  • Sie können für die Anweisungen innerhalb vom SQL-Befehl ebenfalls einfache oder zusammengesetzte QS-Parameter verwenden.
  • Alpha-numerische Werte verketten

  • Wenn Sie den Inhalt eines QS-Parameters in der zusätzlichen Statusanzeige (Reiter QPARA) prüfen, sehen Sie ausschließlich die ersten 30 Zeichen und somit nicht den vollständigen Inhalt.
  • Reiter QPARA

Beispiel

Beispiel: Tabellenzeilen selektieren

11 SQL BIND Q881 "Tab_Example.Position_Nr"

12 SQL BIND Q882 "Tab_Example.Measure_X"

13 SQL BIND Q883 "Tab_Example.Measure_Y"

14 SQL BIND Q884 "Tab_Example.Measure_Z"

. . .

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example"

Beispiel: Tabellenzeilen mit Funktion WHERE selektieren

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr<20"

Beispiel: Tabellenzeilen mit Funktion WHERE und Q-Parameter selektieren

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM Tab_Example WHERE Position_Nr==:’Q11’"

Beispiel: Tabellenname durch absolute Pfadangabe definieren

20 SQL Q5 "SELECT Position_Nr,Measure_X,Measure_Y, Measure_Z FROM ’V:­\table­\Tab_Example’ WHERE Position_Nr<20"

0 BEGIN PGM SQL_CREATE_TAB MM

1 SQL Q10 "CREATE SYNONYM NEW FOR 'TNC:\table\NewTab.TAB'"

Synonym erstellen

2 SQL Q10 "CREATE TABLE NEW AS SELECT X,Y,Z FROM 'TNC:\prototype_for_NewTab.tab'"

Tabelle erstellen

3 END PGM SQL_CREATE_TAB MM

0 BEGIN PGM SQL_CREATE_TABLE_QS MM

1 DECLARE STRING QS1 = "CREATE TABLE "

2 DECLARE STRING QS2 = "'TNC:\nc_prog\demo\Doku\NewTab.t' "

3 DECLARE STRING QS3 = "AS SELECT "

4 DECLARE STRING QS4 = "DL,R,DR,L "

5 DECLARE STRING QS5 = "FROM "

6 DECLARE STRING QS6 = "'TNC:\table\tool.t'"

7 QS7 = QS1 || QS2 || QS3 || QS4 || QS5 || QS6

8 SQL Q1800 QS7

9 END PGM SQL_CREATE_TABLE_QS MM