Bonjour à tous,
J'ai un soucis avec mon regex et je suis coincée depuis un jours.
J'ai une requête sql complexe sur plusieurs lignes, je dois récupérer les tables qui se trouvent après le FROM d'un SELECT.
Ceci est une partie de la requête :
Je dois pouvoir récupérer les tables :
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 DELETE FROM hrep_item_prestatie_year_activitylevel; INSERT INTO hrep_item_prestatie_year_activitylevel(orgnum, activity_id, mandays, YEAR) SELECT hrep_item_prestatie_year.orgnum, hrep_item_prestatie_year.activity_id, SUM(hrep_item_prestatie_year.mandays), hrep_item_prestatie_year.year FROM hrep_item_prestatie_year GROUP BY orgnum, activity_id, YEAR; INSERT INTO hrep_item_prestatie_year_activitylevel(orgnum, activity_id, mandays, YEAR) SELECT claudia.orgnum, claudia.activity_id, SUM(claudia.mandays), claudia.year FROM claudia GROUP BY orgnum, activity_id, YEAR; SELECT a.asset, a.nsn, a.serial AS MAC, (SELECT c.value FROM MRQR_DYNAMIC_CHARACTERISTICS c WHERE c.udt_table = 'ASSETS' AND c.name = 'ASS_CIS_INSTALLTYPE' AND c.descriptor_value = a.asset) AS INSTALL, FROM MRQR_ASSETS a;
- hrep_item_prestatie_year
- claudia
- MRQR_DYNAMIC_CHARACTERISTICS
- MRQR_ASSETS
J'ai essayé avec plusieurs regex, mais du fait que j'ai le FROM après plusieurs ligne du SELECT ça ne marche pas...
Et je dois absolument lui dire que c'est le FROM du SELECT si non il ira me prendre la table de la première ligne (celle du DELETE).
En utilisant "(?m)(?s)SELECT\\s.*\\W+FROM?\\s+(\\w*)" je récupère seulement la dernière table MRQR_ASSETS.
Pouvez-vous m'aider svp?
Merci d'avance,
Claudia
Partager