Xquery et sql
Résolu
subgenk
Messages postés
85
Date d'inscription
Statut
Membre
Dernière intervention
-
subgenk Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
subgenk Messages postés 85 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye actuellement d'interroger une base depuis une xquery cependant je ne sais pas du tout comment m'y prendre et j'avoue que même après avoir passer 1 heure à lire de la doc je ne sais pas comment amorcer des choses toutes simples comme
-> Spécifier l'adresse de la base
-> récupérer le resultat d'une requete
-> ecrire une requete.
Par exemple j'ai le cas d'exemple suivant.
J'ai une base qui contient une table 'transcod' dans cette table il y a 4 colonnes (tr_id : integer, tr_cod : char(30), tr_value : char(30), tr_type : char(30)).
Côté Xquery j'ai en entrée un fichier xml de cette définition :
j'aimerai en fait faire du passe plat au niveau de ma xquery mais pouvoir modify mes country code et currency code qui sont répertorié en base.
Exemple : la base a une ligne
1, '1','France','country'
2,'1','EUR','currency'
dans le xml j'ai
et j'aimerai le transformer en
Grâce à ma xquery.. et donc en allant rechercher les valeurs en base de donnée..
Quelqu'un pourrait m'expliquer ? ou me renvoyer vers une doc explicite ?parce que je n'ai réellement rien trouvé avec un exemple concret... =/
Merci d'avance
J'essaye actuellement d'interroger une base depuis une xquery cependant je ne sais pas du tout comment m'y prendre et j'avoue que même après avoir passer 1 heure à lire de la doc je ne sais pas comment amorcer des choses toutes simples comme
-> Spécifier l'adresse de la base
-> récupérer le resultat d'une requete
-> ecrire une requete.
Par exemple j'ai le cas d'exemple suivant.
J'ai une base qui contient une table 'transcod' dans cette table il y a 4 colonnes (tr_id : integer, tr_cod : char(30), tr_value : char(30), tr_type : char(30)).
Côté Xquery j'ai en entrée un fichier xml de cette définition :
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="SourceMessage"> <xsd:complexType> <xsd:sequence> <xsd:element name="firstName"> <xsd:simpleType> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="name"> <xsd:simpleType> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="country"> <xsd:simpleType> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="currency"> <xsd:simpleType> <xsd:restriction base="xsd:string"> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
j'aimerai en fait faire du passe plat au niveau de ma xquery mais pouvoir modify mes country code et currency code qui sont répertorié en base.
Exemple : la base a une ligne
1, '1','France','country'
2,'1','EUR','currency'
dans le xml j'ai
<SourceMessage> <firstName>Test</firstName> <lastName>Test</lastName> <country>1</country> <currency>1</currency> </SourceMessage>
et j'aimerai le transformer en
<SourceMessage> <firstName>Test</firstName> <lastName>Test</lastName> <country>France</country> <currency>EUR</currency> </SourceMessage>
Grâce à ma xquery.. et donc en allant rechercher les valeurs en base de donnée..
Quelqu'un pourrait m'expliquer ? ou me renvoyer vers une doc explicite ?parce que je n'ai réellement rien trouvé avec un exemple concret... =/
Merci d'avance
A voir également:
- Xquery et sql
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
1 réponse
J'ai résolu partiellement mon problème il fallait déjà créer un jndi datasource pour pointer vers ma base puis m'en servir dans ma requete.
Dans la requete que j'ai créée :
j'obtiens une erreur qui me dit que la fonction n'existe pas ou que le nombre de paramètres est mauvais...
là je suis à sec u_u je trouve pas pourquoi workshop ne reconnait pas la fonction vu que c'est à la base lui qui me l'a proposé... =/
Dans la requete que j'ai créée :
fn-bea:execute-sql( 'ds.MyJDBCDataSource', xs:QName('countryCode'), 'select tr_value from TRANSCODIFICATION.TRANSCOD where tr_code=? AND tr_type=?', data($sourceMessage1/countryCode/text()), xs:string('country')
j'obtiens une erreur qui me dit que la fonction n'existe pas ou que le nombre de paramètres est mauvais...
là je suis à sec u_u je trouve pas pourquoi workshop ne reconnait pas la fonction vu que c'est à la base lui qui me l'a proposé... =/