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
| -- test sous-requête avec mise en évidence du problème lié au CAST (avec commentaires)
SELECT DISTINCT
EYE_DOCUMENT.DOCUMENT_ID AS ID,
CMS_DOCUMENT.CUID,
A.EVENT_ID,
MAX(A.START_TIME) AS DERNIERE_ACTUALISATION
FROM
PBI4360_13135.EYE_DOCUMENT
INNER JOIN PBI4360_13135.EYE_SNAPSHOT ON (EYE_SNAPSHOT.SNAPSHOT_ID = EYE_DOCUMENT.DOCUMENT_SNAPSHOT_ID AND EYE_SNAPSHOT.SNAPSHOT_NAME = 'WEBI' AND EYE_SNAPSHOT.SNAPSHOT_RESULT = 1)
INNER JOIN PBI4360_13135.CMS_DOCUMENT ON (EYE_DOCUMENT.DOCUMENT_ID = CMS_DOCUMENT.ID),
PBI4AUDIT.ADS_EVENT A
WHERE
(
CMS_DOCUMENT.CUID =
(
SELECT DISTINCT
-- pour test : ce CUID explicite correspond à l'évènement d'audit dont l'ID est 17710233064828830405 -> ainsi la requête ramène la ligne attendue
'M18kMqsAAKt6ACMDZgAAR0v.An71mMoAAAA'
-- fin test
-- avec cette fonction et pour ce même CUID (pour mémoire DBMS_LOB.SUBSTR produit toujours un VARCHAR2) -> ainsi la requête ne ramène rien :-(
--DBMS_LOB.SUBSTR(C.EVENT_DETAIL_VALUE, 100, 1)
-- en "castant" ce même CUID au format exact de CMS_DOCUMENT.CUID qui est nativement un VARCHAR2(100) -> ainsi aussi la requête ne ramène rien :-(
--CAST(C.EVENT_DETAIL_VALUE AS VARCHAR2(100))
FROM
PBI4AUDIT.ADS_EVENT B,
PBI4AUDIT.ADS_EVENT_DETAIL C
WHERE
-- pour traiter l'évènement de la requête principale
B.EVENT_ID = A.EVENT_ID
-- pour aller chercher le détail de type 12 (CUID du document parent) dans la table détail des évènements
AND C.EVENT_ID = B.EVENT_ID
AND C.EVENT_DETAIL_TYPE_ID = 12
)
-- pour test : je force l'ID de l'évènement
AND A.EVENT_ID = 17710233064828830405
-- fin test
-- pour limiter le scope sur les 13 derniers mois glissants
AND A.START_TIME >= ADD_MONTHS(SYSDATE, -13)
-- seulement les actualisations, planifications et publications
AND A.EVENT_TYPE_ID IN (1003,1011,1012)
-- seulement ces types d'objets
AND A.OBJECT_TYPE_ID IN ('AYfjfcAV7cNPh33akDfm2RE','AcfGhH5SbBNIsBrpeExxhDQ','AafS60mXMNlMv86vS0DuroU','AVx_3364fDBFni_bGCHtSyQ','AVSAUQfHHtpFsd9M2RM.qJ0')
-- l'objet de l'évènement d'audit doit être dans le répertoire générique de l'établissement
AND A.OBJECT_FOLDER_PATH LIKE '%/ETABLISSEMENTS/313 MP/%'
-- pour utiliser les données du dernier snapshot Eyes360
AND EYE_SNAPSHOT.SNAPSHOT_ID = (SELECT MAX(S.SNAPSHOT_ID) FROM PBI4360_13135.EYE_SNAPSHOT S WHERE S.SNAPSHOT_CMS = '@BI42PRD' AND S.SNAPSHOT_NAME = 'WEBI' AND S.SNAPSHOT_RESULT = 1 GROUP BY S.SNAPSHOT_CMS)
-- par sécurité, je ne sélectionne aussi que les documents se trouvant dans le répertoire générique de l'établissement
AND EYE_DOCUMENT.DOCUMENT_PATH LIKE '%/ETABLISSEMENTS/313 MP/%'
)
GROUP BY
EYE_DOCUMENT.DOCUMENT_ID,
CMS_DOCUMENT.CUID,
A.EVENT_ID
ORDER BY 4 DESC |
Partager