Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
td_histoire_numerique:exercice_3 [2016/01/04 19:13] Francesco Beretta [Transformation des textes encodés en XML] |
td_histoire_numerique:exercice_3 [2016/01/04 21:50] Francesco Beretta [Requêtes SQL / XPath] |
||
---|---|---|---|
Ligne 93: | Ligne 93: | ||
* le résultat apparaîtra immédiatement dans votre navigateur web | * le résultat apparaîtra immédiatement dans votre navigateur web | ||
- | Provisoire: | + | Un exemple de requête: |
<code sql> | <code sql> | ||
- | SELECT ??? | + | WITH tw1 AS |
- | FROM ??? | + | ( |
+ | SELECT UNNEST(xpath ('//in',texte_xml)) texte_xml | ||
+ | FROM objets.objet | ||
+ | WHERE pk_objet = 3 | ||
+ | ) | ||
+ | SELECT tw1.texte_xml, | ||
+ | (((xpath ('/in/@ana',tw1.texte_xml))[1])::text)::integer cle_type_information, | ||
+ | t1.nom type_information, | ||
+ | ((xpath('/in/dat/@when',tw1.texte_xml))[1])::text date, | ||
+ | ((xpath('/in/en/@ref',tw1.texte_xml))[1])::text acteur, | ||
+ | t2.nom nom_acteur | ||
+ | FROM tw1 | ||
+ | JOIN vues.vm_objet_vue_de_base t1 ON t1.pk_objet = ( ( (xpath ('/in/@ana',tw1.texte_xml))[1])::text)::integer | ||
+ | LEFT JOIN vues.vm_objet_vue_de_base t2 ON t2.pk_objet = ( ((xpath('/in/en/@ref',tw1.texte_xml))[1])::text)::integer | ||
</code> | </code> | ||
+ | |||
+ | Pour des exemples d'application, voir les exercices 4 et 5. | ||
====== Documentation ====== | ====== Documentation ====== |