ermet d'éviter de saisir une macro SQL/XML dans la définition d'un trigger, d'une procédure ou d'une fonction. Vous pouvez utiliser l'un des outils suivants :
L'outil Insérer une macro SQL/XML affiche une boîte de sélection dans laquelle vous choisissez un élément global dans un modèle XML ouvert dans l'espace de travail, mis en correspondance avec un modèle XML et lié à la définition étendue de modèle SQL/XML. Cliquez sur OK dans la boîte de dialogue. La macro SQLXML apparaît alors dans le code de la définition, avec le code du modèle XML (facultatif) ainsi que le code de l'élément global
L'outil Macros permet de sélectionner .SQLXML( ) dans la liste. La macro SQLXML apparaît vide dans le code de la définition. Vous devez spécifier entre les parenthèses le code d'un modèle XML (facultatif), suivi des signes :: puis du code d'un élément global. Le modèle XML dans lequel vous choisissez un élément global doit être ouvert dans l'espace de travail, mis en correspondance avec un modèle XML et lié à la définition étendue de modèle SQL/XML
A l'issue de la génération, la macro SQLXML est remplacée par la requête SQL/XML de l'élément global.
.SQLXML(code d'un modèle XML::code d'un élément global)
Remarque : le code d'un modèle XML est facultatif.
Dans un trigger pour la table SALARIE, la macro suivante :
.SQLXML(PersonnelSociété::SERVICE)
Génère le script de trigger suivant :
select XMLELEMENT( NAME "Service", XMLATTRIBUTES (NUMSERVICE,NOMSERVICE), (select XMLAGG ( XMLELEMENT( NAME "SALARIE", XMLATTRIBUTES (NUMSERVICE,IDSALARIE,PRENOM,NOM)) ) from SALARIE where NUMSERVICE = NUMSERVICE)) from SERVICE