IBM Buch

Verwaltung und Programmierung für OS/400

Ausführen von SQL-Anweisungen

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) %}

Unterstützte Sprachumgebungsvariablen

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.

Unterstützte Datentypen

Die SQL-Sprachumgebung unterstützt die in Tabelle 5 aufgelisteten Datentypen.

Tabelle 5. 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.

Einschränkungen der SQL-Sprachumgebung

Berücksichtigen Sie die folgenden Einschränkungen, wenn Sie Ihre Umgebung planen:


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]