Sie können eine beliebige SQL-Anweisung ausführen, die von dynamischem SQL unterstützt wird.
Definieren Sie zur Ausführung von SQL-Anweisungen eine Funktion, die die SQL-Sprachumgebung (DTW_SQL) verwendet und die SQL-Anweisungen im ausführbaren Abschnitt für die Sprachumgebung der Funktion enthält.
Beispiel: Eine SQL-Funktion, die eine SQL-Anweisung SELECT ausführt:
%function(DTW_SQL) getOrders() {
SELECT cust, custid, custorder FROM mylibrary.customers
%}
COMMIT-Steuerung
Die SQL-Sprachumgebung wird standardmäßig unter COMMIT-Steuerung ausgeführt und befolgt alle Regeln zur Verwaltung der COMMIT-Steuerung.
Weitere Informationen zur Transaktionsverwaltung finden Sie in Verwalten von Transaktionen in einer Net.Data-Anwendung.
OUT- und INOUT-Tabellen
Wenn Sie OUT- oder INOUT-Net.Data-Tabellen in der Funktionsdefinition angeben und die SQL-Anweisung Ergebnismengen zurückgibt, speichert die SQL-Sprachumgebung jede Ergebnismenge in den angegebenen Tabellen. Sie können die Tabelle dann später im Makro verwenden. Wird keine OUT-Tabelle angegeben, verwendet die SQL-Sprachumgebung eine Standardtabelle.
Verschachtelte SQL-Anweisungen
Sie können andere SQL-Funktionen von einem ROW-Block einer anderen SQL-Funktion aus aufrufen. Verwenden Sie eindeutige Net.Data-Tabellennamen in allen SQL-Funktionen. Ansonsten kann es zu unvorhersehbaren Ergebnissen kommen.
Beispiel: Aufrufen einer SQL-Funktion vom ROW-Block einer anderen SQL-Funktion aus
%define mytable1 = %TABLE
%define mytable2 = %TABLE
%FUNCTION(DTW_SQL) sql2 (IN p1, OUT t2) {
select * from NETDATA.STAFFINF where projno='$(p1)'
%REPORT {
%ROW { $(N1) is $(V1) %}
%}
%}
%FUNCTION(DTW_SQL) sql1 (OUT t1) {
select * from NETDATA.STAFFINF
%REPORT {
%ROW { @sql2(V1, mytable2) %}
%}
%}
%HTML(netcall1) { @sql1(mytable1) %}
Die SQL-Sprachumgebung unterstützt Variablen zur Unterstützung von DB2. Zum Beispiel gibt die Variable DATABASE die Datenquelle an, zu der die SQL-Sprachumgebung die Verbindung herstellt, wenn eine SQL-Anweisung ausgeführt wird. In der folgenden Liste wird angegeben, welche Variablen für die SQL-Sprachumgebung unterstützt werden. Im Handbuch Net.Data Reference finden Sie eine Beschreibung, eine Syntaxdarstellung und Beispiele für diese Variablen.
Die SQL-Sprachumgebung unterstützt die in Tabelle 5 aufgelisteten Datentypen.
| BLOB(1) | DOUBLE | SMALLINT |
| CHAR | DOUBLEPRECISION | TIME |
| CLOB(1) | FLOAT | TIMESTAMP |
| DATE | GRAPHIC | VARCHAR |
| DBCLOB(1) | INTEGER | VARGRAPHIC |
| DECIMAL | REAL |
|
(1) Diese Datentypen können nicht als Parameter an einen gespeicherten Prozeduraufruf übergeben werden. Informationen dazu, welche Datentypen für gespeicherte Prozeduren unterstützt werden, finden Sie in Syntax für gespeicherte Prozeduren.
In Überlegungen zu Datentypen finden Sie besondere Überlegungen für die Datentypen LOB und DATALINK.
Berücksichtigen Sie die folgenden Einschränkungen, wenn Sie Ihre Umgebung planen:
Weitere Informationen zu diesen Einschränkungen finden Sie in Verwalten von Mehrfachdatenbankverbindungen.