Bonjour,

Je n'arrive pas à exécuter ma query SQL qui a cette tê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
WITH params AS (
	SELECT  
--		'D476' fund_num, 
--		'EUR' fund_cur, 
--		to_date('20110630', 'YYYYMMDD') report_date1, 
--		to_date('20110930', 'YYYYMMDD') report_date2
 $P{fundNumb} fund_num
, $P{fundCurrency} fund_cur
, $P{reportDate1} report_date1
, $P{reportDate2} report_date2 
	FROM DUAL
)
SELECT ...
FROM ...
pendant l'exécution iReport remplace tous les $P{} par les valeurs de paramètres indiquées.
La requête ci-dessus ne se termine jamais.
Si je commente la partie avec les $P et je décommente la partie avec les vraies valeurs la requête s'exécute.
Je n'arrive pas à trouver pourquoi cela se produit

Petite précision :
Lorsque iReport exécute la requête, elle replace tous les $P{} par des ?. Ensuite il précompile la requête puis il l'exécute en passant les paramètres. Je soupçonne le process de précompilation qui lorsque les paramètres sont placés en dur il arrive à trouver le bon plan pour exécuter la requête, alors qu'avec des paramètre un mauvais plan (non optimisé) est exécuté. J'aimerais savoir s'il est possible de spécifier dans la requête une option qui va rechercher un plan optimal en live plutôt que le plan déjà précalculé.
Existe-t-il une OPTION RECOMPILE comme chez SQL Server équivalent en Oracle?