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 :
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;
Je dois pouvoir récupérer les tables :
- 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