Bonjour à tous les membres du Forum,
J'espère que vous vous portez bien.
Je viens vers vous avec une question relative à la lecture d'un tag dans un xml.
Mon xml est celui-ci :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <doc:form xmlns:doc="http://www..."> <doc:SuperHeader> <gen:PrintInformation xmlns:gen="http://www..."> <gen:PrInfJobName>CONTROL_STUDENT_DOCUMENT</gen:PrInfJobName> <gen:PrInfTimestamp>2021-09-18T18:10:00.000Z</gen:PrInfTimestamp> <gen:PrInfLogicalAddress>drukkerij</gen:PrInfLogicalAddress> <gen:PrInfArchive>true</gen:PrInfArchive> <gen:PrInfOutput>3</gen:PrInfOutput> <gen:PrInfCorrelationID>100018944090</gen:PrInfCorrelationID> </gen:PrintInformation> </doc:SuperHeader> <doc:Document> <doc:Header> <gen:Message xmlns:gen="http://www..."> <gen:MessageName>P7IT</gen:MessageName> <gen:MessageNameDescription>Étudiants</gen:MessageNameDescription> <gen:MessageOrder>0</gen:MessageOrder> <gen:MessageVersion>3</gen:MessageVersion> <gen:MessageLanguage>FR</gen:MessageLanguage> <gen:MessageID>049714993492</gen:MessageID> <gen:MessageOriginalDate>2021-09-18</gen:MessageOriginalDate> <gen:MessageOriginalName>P7IT</gen:MessageOriginalName> <gen:MessageRegistered>false</gen:MessageRegistered> <gen:MessageDuplicate>false</gen:MessageDuplicate> </gen:Message> </doc:Header> <doc:RequestGeneral> <gen:Office xmlns:gen="http://www..."> <gen:OfficeCode>27</gen:OfficeCode> <gen:OfficeName>Brussel-Bruxelles 27</gen:OfficeName> <gen:OfficeStreet>Rue de ...</gen:OfficeStreet> <gen:OfficeHouseNr>...</gen:OfficeHouseNr> <gen:OfficeZipcode>...</gen:OfficeZipcode> <gen:OfficeCity>...</gen:OfficeCity> <gen:OfficePhone>02-...</gen:OfficePhone> <gen:OfficeFax>02-...</gen:OfficeFax> <gen:OfficeOpen>0830</gen:OfficeOpen> <gen:OfficeClosed>1630</gen:OfficeClosed> <gen:OfficeLanguage>FR</gen:OfficeLanguage> </gen:Office> <gen:Agent xmlns:gen="http://www..."> <gen:AgentTitle>Madame</gen:AgentTitle> <gen:AgentName>ST...</gen:AgentName> <gen:AgentFirstName>AN...</gen:AgentFirstName> <gen:AgentPhone>02-...</gen:AgentPhone> <gen:AgentNumber>00100401</gen:AgentNumber> <gen:AgentEmail>an...@....brussels</gen:AgentEmail> </gen:Agent> <gen:Sender xmlns:gen="http://www..."> <gen:SenderName>It...</gen:SenderName> <gen:SenderFirstName/> <gen:SenderPhone/> <gen:SenderNumber/> <gen:SenderEmail/> </gen:Sender> <gen:Destination xmlns:gen="http://www..."> <gen:DestinationTitleShort>Mme</gen:DestinationTitleShort> <gen:DestinationTitleLong>Madame</gen:DestinationTitleLong> <gen:DestinationName>Ci...</gen:DestinationName> <gen:DestinationFirstName>Ma...</gen:DestinationFirstName> <gen:DestinationStreet>Av...</gen:DestinationStreet> <gen:DestinationHouseNr>...</gen:DestinationHouseNr> <gen:DestinationPostBox>b...</gen:DestinationPostBox> <gen:DestinationZipCode>1...</gen:DestinationZipCode> <gen:DestinationCity>B...</gen:DestinationCity> <gen:DestinationCountry>B...</gen:DestinationCountry> <gen:AddressableId>PERSON_...</gen:AddressableId> <gen:DestinationINSS>81...</gen:DestinationINSS> <gen:DestinationEmail/> <gen:DestinationToTheAttentionOfTitle/> <gen:DestinationCorrespondenceLanguage>FR</gen:DestinationCorrespondenceLanguage> </gen:Destination> <gen:References xmlns:gen="http://www..."> <gen:RefFileNumber>3011149</gen:RefFileNumber> <gen:RefInternalRef>3011149</gen:RefInternalRef> <gen:RefExternalRef/> <gen:RefSignature/> <gen:RefSignatureFunction/> </gen:References> <gen:Child xmlns:gen="http://www..."> <gen:ChildName>Soumaré</gen:ChildName> <gen:ChildFirstName>Boub...</gen:ChildFirstName> <gen:ChildDateOfBirth>2003-04-02</gen:ChildDateOfBirth> <gen:ChildINSS>030402.....</gen:ChildINSS> <gen:ChildSex>1</gen:ChildSex> <gen:ChildChoice>false</gen:ChildChoice> </gen:Child> <gen:Period xmlns:gen="http://www..."> <gen:PeriodStart>2021</gen:PeriodStart> <gen:PeriodEnd>2022</gen:PeriodEnd> </gen:Period> <gen:SuppressionDate xmlns:gen="http://www...">>2021-12-01</gen:SuppressionDate> </doc:RequestGeneral> </doc:Document> </doc:form>
Mon but est de récupérer la valeur des balises PeriodStart (ligne 90) et PeriodEnd (ligne 91).
/!\ Astuce : ces PeriodStart et PeriodEnd peuvent avoir deux formats de données : soit une année - 2021 - soit une date complète - 2021-09-01.
Mon début de sql est celui-ci mais la requête ne renvoie rien.
Qui aurait une bonne idée pour faire avancer mon Schmilblick ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 WITH x AS ( SELECT xmltype.createxml(od.DOCUMENT_XML) xml_data ,dc.FILE_NUMBER AS FileN from DOCUMENT_CONVERSATIONS dc join OUTGOING_DOCUMENTS od on dc.DOCUMENT_CONVERSATION_ID = od.DOCUMENT_CONVERSATION_ID join OUTGOING_DOCUMENT_COPIES odc on od.OUTGOING_DOCUMENTS_ID = odc.OUTGOING_DOCUMENTS_ID where DOCUMENT_TEMPLATE in ('BHR402','BEISR402','BETN402','BM25','BRM402','BT25','BY30','E402','E403','P7A','P7INT','P9AIT','P9IT','TW_STU_RIP', 'P7IT') and to_char(odc.SEND_DATE,'yyyymm') > ('202109') AND dc.FILE_NUMBER = 3011149 ) SELECT xt.* --, x.niss --, x.FileN FROM x, XMLTABLE('//Period' PASSING x.xml_data COLUMNS Start_Period DATE PATH 'PeriodStart', End_period DATE PATH 'PeriodEnd' ) xt ;
Merci d'avance,
Lionel
Partager