Sie können Operationen erstellen, die eine beliebige von Ihrer Datenbank unterstützte SQL-Anweisung ausführen.
Informationen zu diesem Vorgang
Einschränkungen:- Sie können pro Operation jeweils nur eine Abfrage einschließen. Namensbereiche werden für SQL/XML und für XQuery vollständig unterstützt.
- Jede Operation in einem Web-Service muss einen eindeutigen Namen haben.
Sie können in den SQL-Anweisungen alle von JDBC 3.0 unterstützten Datentypen verwenden. Hiervon ausgenommen sind: ARRAY, DISTINCT, JAVA_OBJECT, OTHER, REF und STRUCT. Sie können außerdem den DB2-Datentyp XML und den von DB2 for z/OS unterstützten Datentyp ROWID verwenden.
Verwenden Sie benannte Parameter oder positionsgebundene Parameter in WHERE-Klauseln und Anweisungen, die Werte akzeptieren.
- Benannte Parameter
- Die Verwendung benannter Parameter hat zwei Vorteile:
- Durch Namen wird das Standard-XML-Schema ausführlicher. Außerdem können Namen den Clientanwendungen die Bedeutung des Parameters mitteilen.
- Sie können einen Parameter mehr als einer Hostvariable zuordnen. Dies ist für UNION ALL-Sichten nützlich.
Benannte Parameter beginnen mit einem Doppelpunkt und werden in der Regel entsprechend ihrer Hostvariablen benannt, wie das nachfolgende Beispiel zeigt. Hier ist :empno der Parameter und empno stellt die Hostvariable dar:SELECT * FROM employee where empno=:empno
Im resultierenden XML-Schema könnte der Eintrag für den Parameter wie folgt aussehen:<element name="empno" type="xsd:string"/>
Bei den Namen muss die Groß-/Kleinschreibung beachtet werden und es muss sich um gültige XML-Tagnamen handeln. Wenn der Name eines Parameters Zeichen oder Zeichenfolgen enthält, die in XML nicht gültig sind, wendet die Workbench automatisch SQL/XML-Regeln zur Codierung mit Escapezeichen auf den Namen an. Ein Parameter, der z. B. xml genannt wird, wird in _xFFFF_xml umgewandelt. Wenn Sie diesen Parameter als Eingabeparameter in einer HTTP GET-Anforderung verwenden würden, müsste die URL dem folgenden Beispiel ähneln:http://localhost:8080/ContextRoot/rest/MyService?_xFFFF_xml=1234
- Positionsgebundene Parameter
- Diese Parameter sind Fragezeichen, die Hostvariablen darstellen.
Werte werden nach Position und nicht nach Namen zugeordnet. Die folgende Anweisung INSERT verwendet positionsgebundene Parameter:
INSERT INTO employee VALUES (?, ?, ?, ?)
Im resultierenden XML-Schema könnten die Einträge für die Parameter wie folgt aussehen:<element name="p1" type="xsd:int"/>
<element name="p2" type="xsd:string"/>
<element name="p3" type="xsd:string"/>
<element name="p4" type="xsd:anyType" nillable="true"/>
Vorgehensweise
Gehen Sie wie folgt vor, um einem Web-Service eine Operation hinzuzufügen, die auf einem SQL-Script basiert:
- Ist das SQL-Script bereits in einem Projekt Ihres Arbeitsbereichs vorhanden, ziehen Sie das SQL-Script und übergeben Sie es im Web-Service des Datenprojektexplorers. Wenn Sie ein SQL-Script aus einem Projekt in ein anderes ziehen, muss eine der folgenden Bedingungen zutreffen:
- Beide Projekte sind derselben Datenquelle zugeordnet.
- Ein Projekt ist einer Momentaufnahme der Datenbank zugeordnet, die dem anderen Projekt zugeordnet ist.
Verwenden Sie benannte Parameter oder positionsgebundene Parameter, wenn die Übergabe von Werten durch Clientanwendungen für die Operation erforderlich ist.
- Wenn Sie ein neues SQL-Script erstellen wollen, erstellen Sie es direkt im Assistenten Neue Operation. Benennen Sie die Operation im Assistenten und erstellen Sie das SQL-Script, das der Operation zugrunde liegen soll. Sie können den Assistenten auf zwei unterschiedliche Arten öffnen.
- Klicken Sie im Datenprojektexplorer mit der rechten Maustaste auf den Web-Service, dem Sie die Operation hinzufügen wollen. Wählen Sie Neue Operation aus.
Das Öffnen des Assistenten auf diese Weise ermöglicht es Ihnen, die Operation einem einzelnen Web-Service hinzuzufügen.
- Wählen Sie Datei > Neu > Andere aus.
Erweitern Sie Daten im Assistenten Neu und wählen Sie Operation aus.
Das Öffnen des Assistenten auf diese Weise ermöglicht es Ihnen, die Operation mindestens einem Web-Service hinzuzufügen, der in einem Datenentwicklungsprojekt definiert ist.
Verwenden Sie benannte Parameter oder positionsgebundene Parameter, wenn die Übergabe von Werten durch Clientanwendungen für die Operation erforderlich ist.