Ajout d'opérations reposant sur des scripts SQL

Vous pouvez créer des opérations qui exécutent n'importe quelle instruction SQL prise en charge par votre base de données.

Pourquoi et quand exécuter cette tâche

Restrictions :
  • Vous ne pouvez inclure qu'une requête par opération. Les espaces de nom sont totalement pris en charge pour SQL/XML et XQuery
  • Chaque opération d'un service Web doit avoir un nom unique.

Dans les instructions SQL, vous pouvez utiliser tous les types de données pris en charge par JDBC 3.0, sauf ARRAY, DISTINCT, JAVA_OBJECT, OTHER, REF et STRUCT. Vous pouvez aussi utiliser le type de données XML de DB2 et le type de données ROWID pris en charge par DB2 for z/OS.

Utilisez les paramètres nommés et les paramètres positionnels dans les clauses WHERE et les instructions admettant des valeurs.

Paramètres nommés
L'utilisation de paramètres nommés présente deux avantages :
  • les noms rendent le schéma XML par défaut plus prolixe et permettent de décrire les paramètres aux applications client,
  • vous pouvez associer un paramètre à plusieurs variables hôte, opération utile dans les vues UNION ALL.
Les paramètres nommés commencent par un deux-points et leur nom est généralement celui de la variable hôte correspondante. Dans l'exemple suivant, :empno est le paramètre et empno la variable hôte :
SELECT * FROM employee where empno=:empno
Dans le schéma XML résultant, l'entrée du paramètre peut ressembler à l'extrait suivant :
<element name="empno" type="xsd:string"/>
La distinction minuscules/majuscules est appliquée pour les noms, qui doivent être des noms de balise XML valides. Si le nom d'un paramètre contient des caractères ou des suites de caractères qui ne sont pas admis dans les documents XML, le plan de travail lui applique automatiquement les règles d'échappement SQL/XML. Par exemple, un paramètre appelé xml devient _xFFFF_xml. Par conséquent, si vous utilisiez ce paramètre comme paramètre d'entrée dans une requête HTTP GET, l'adresse URL ressemblerait à :
http://localhost:8080/ContextRoot/rest/MyService?_xFFFF_xml=1234
Paramètres positionnels
Ces paramètres sont des points d'interrogation qui représentent des variables hôte. Les valeurs sont associées en fonction de leur position plutôt que de leur nom. L'instruction INSERT suivante utilise des paramètres positionnels :
INSERT INTO employee VALUES (?, ?, ?, ?)
Dans le schéma XML résultant, les entrées des paramètres ressemblent à :
<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"/>

Procédure

Pour ajouter un service Web à une opération reposant sur un script SQL :


Commentaires