WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Funktion PASSTHRU

Die PASSTHRU-Funktion wertet einen Ausdruck aus und führt die daraus resultierende Zeichenfolge als Datenbankanweisung aus; anschließend wird eine Ergebnisliste ausgegeben.

Syntax

Syntaxdiagramm lesenSyntaxdiagramm überspringen
>>-PASSTHRU--(--Ausdruck--+----------------------------------------------------------+--)-><
                          +-+----------------------+--+----------------------------+-+      
                          | '-TO--Datenbankverweis-'  |            .-,--------.    | |      
                          |                           |            V          |    | |      
                          |                           '-VALUES--(----Ausdruck-+--)-' |      
                          |          .-,--------.                                    |      
                          |  (1)     V          |                                    |      
                          '-------,----Ausdruck-+------------------------------------'      

WHERE

|--Datenbankverweis =  --Database--.--Datenquellenklausel-------|

|--Datenquellenklausel =  --+-Datenquellenname-----------+------|
                            '-{--Datenquellenausdruck--}-'   

Anmerkungen:
  1. In der unteren Hälfte des Hauptsyntaxdiagramms wird die Syntax beschrieben, die aus Gründen der Abwärtskompatibilität beibehalten wurde.

Die PASSTHRU-Funktion ähnelt der PASSTHRU-Anweisung, die unter PASSTHRU-Anweisung beschrieben wird.

Verwendung

Die PASSTHRU-Funktion wird hauptsächlich zur Ausführung komplexer SELECT-Anweisungen, die vom Broker momentan nicht unterstützt werden, für Datenbanken verwendet. (Beispielsweise werden SELECT-Anweisungen, die GROUP BY- oder HAVING-Klauseln enthalten, vom Broker derzeit nicht unterstützt.)

Der erste Ausdruck wird bewertet, und anschließend wird die resultierende Zeichenfolge zur Ausführung an die Datenbank übermittelt, auf die die Datenbankreferenz (in der TO-Klausel) verweist. Wenn Sie keine TO-Klausel angeben, wird die Datenbank verwendet, auf die das Datenquellattribut des Knotens verweist.

Verwenden Sie Fragezeichen (?) in der Datenbankzeichenfolge, um Parameter anzugeben. Die Parameterwerte werden von der VALUES-Klausel geliefert.

Wenn die VALUES-Klausel angegeben ist, werden ihre Ausdrücke ausgewertet und als Parameter an die Datenbank übergeben (d. h. in der Datenbankanweisung werden die Fragezeichen durch die Werte der Ausdrücke ersetzt).

Wenn nur ein VALUE-Ausdruck existiert, kann das Ergebnis u.U. eine Liste sein. Ist dies der Fall, werden die Fragezeichen nacheinander durch die skalaren Werte der Liste ersetzt. Ist das Ergebnis keine Liste, wird das (einzelne) Fragezeichen mit dem einzelnen skalaren Wert in der Datenbankanweisung ersetzt. Bei mehreren VALUE-Ausdrücken erfolgt die Auswertung nicht in einer Liste. Stattdessen werden die Fragezeichen nacheinander durch die skalaren Werte der Ausdrücke ersetzt.

Da die Datenbankanweisung vom Benutzerprogramm erstellt wird, müssen nicht unbedingt Parameterkennzeichner (Fragezeichen) oder die VALUES-Klausel verwendet werden, da die Datenbankanweisung in ihrer Gesamtheit vom Programm als Literalzeichenfolge bereitgestellt werden könnte. Verwenden Sie jedoch möglichst Parameterkennzeichner, da dadurch die Anzahl unterschiedlicher Anweisungen verringert wird, die vorbereitet und in der Datenbank und im Broker gespeichert werden müssen.

Datenbankreferenz

Eine Datenbankreferenz ist ein Sonderfall für eine Feldreferenz, mit der auf Nachrichtenbaumstrukturen verwiesen wird. Sie besteht aus dem Wort Database (Datenbank), gefolgt vom Namen einer Datenquelle (d. h. dem Namen einer Datenbankinstanz).

Sie können den Name der Datenquelle direkt oder durch einen Ausdruck in Klammern ({...}) angeben. Der direkt angegebene Name einer Datenquelle kann ersetzt werden. Das bedeutet, dass wenn der Name als bekannter Name deklariert wurde, nicht der Name selbst verwendet wird, sondern der Wert des deklarierten Namens (siehe DECLARE-Anweisung).

Wenn Sie einen Nachrichtenfluss mit einem der folgenden Knoten erstellt haben, und die diesem Knoten zugeordnete ESQL eine PASSTHRU-Anweisung sowie eine Datenbankreferenz enthält, müssen Sie einen Wert für die Eigenschaft Datenquelle des relevanten Knotens angeben:
  • Compute
  • Datenbank
  • Filter

Fehler behandeln

Während der PASSTHRU-Vorgänge können Fehler auftreten, beispielsweise könnte die Datenbank nicht betriebsbereit sein, oder die Anweisung könnte ungültig sein. In diesen Fällen wird eine Ausnahme ausgelöst (ausgenommen, die Knoteneigenschaft Ausnahme für Datenbankfehler ausgeben wurde inaktiviert). Diese Ausnahmen richten die entsprechenden Wert für den SQL-Code, den Status, den systemeigenen Fehler und den Fehlertext ein und können von Fehlerbehandlungsprogrammen bearbeitet werden (siehe Anweisung DECLARE HANDLER).

Weitere Informationen zur Behandlung von Datenbankfehlern finden Sie unter Datenbankstatus erfassen.

Beispiel

Im folgenden Beispiel wird eine SELECT-Anweisung für die Tabelle Tabelle1 im Schema Schema1 der Datenbank DSN1 ausgeführt, mit der zwei Parameter an die WHERE-Klausel übergeben werden und angegeben wird, dass die Ergebnisliste nach Namen in aufsteigender Reihenfolge sortiert wird. Das Ergebnis wird dem Ordner SelectResult zugewiesen:
SET OutputRoot.XML.Data.SelectResult.Row[] = 
  PASSTHRU('SELECT R.* FROM Schema1.Tabelle1 AS R WHERE R.Name = ? OR R.Name = ? ORDER BY Name'
   TO Database.DSN1
   VALUES ('Name1', 'Name4'));

Im vorhergehenden Beispiel wird die Ergebnisliste der Nachrichtentextbaumstruktur OutputRoot zugeordnet, deren Eigner der generische XML-Parser ist, welcher selbstdefinierende Nachrichten zulässt.

Wenn die Ergebnisliste einer zu einem der MRM-Parser gehörigen Nachrichtenbaumstruktur zugeordnet wird und die Struktur der Ergebnisliste exakt mit der MRM-Nachrichtendefinition übereinstimmt, kann die Ergebnisliste direkt der Nachrichtentextbaumstruktur OutputRoot zugeordnet werden.

Bei nicht genauer Übereinstimmung zwischen der Struktur der Ergebnisliste und der MRM-Nachrichtendefinition muss zunächst die Ergebnisliste einem Datentyp ROW (Zeile) oder einer Umgebungsbaumstruktur ohne zugeordnete Parser zugeordnet werden. Die erforderlichen Daten können dann OutputRoot zugeordnet werden, um eine der Nachrichtendefinition entsprechende Nachrichtenbaumstruktur aufzubauen.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:37


ReferenzthemaReferenzthema | Version 8.0.0.5 | ak05890_