Bonjour,
Je me permets d'écrire car je bloque depuis ce matin sur un problème :
Je possède une table AJOUT_TEMPS de la sorte
--------------------------------------------------------------------------
Type de traitement Type de durée Durée
--------------------------------------------------------------------------
Annuel----------------------------A------------------------------1
Mensuel--------------------------M------------------------------3
Hebdomadaire-------------------H------------------------------5
Journalier-------------------------J------------------------------15
Annuel_BIS-----------------------A------------------------------10
Journalier_2-----------------------J-----------------------------12
Le type de traitement (Annuel, Mensuel, ....) est également présent dans une autre table ELEMENT_A_AJOUTER avec d'autres données (nom du traitement, propriétaire, date de dernier lancement, type de traitement)
Je dois déterminer la date de prochain lancement d'un traitement à partir de la date du dernier lancement et du type de traitement
Par exemple, si mon traitement est de type Annuel et qu'il a été lancé le 13/12/2015, la date de prochain lancement sera
date de dernier lancement + interval 1 year
Cet interval 1 year, je veux le récupérer depuis la table AJOUT_TEMPS (j'ai des milliers de traitements à traiter)
Le but final étant de spooler dans un fichier les résultats,
i.e. :
spool monFichier;
SELECT nomtraitement, proprietaire, datedernierlancement, dateprochainlancement <== doit être calculé, type
FROM ELEMENT_A_AJOUTER;
spool off;
J'ai tenté un bloc PL/SQL, avec dans le "declare" une fonction prenant en paramètre le type de traitement pour retourner la bonne valeur ('interval 1 year', 'add_months(datederniertraitem ent, 2)',....) mais lorsque je l'utilise dans mon select, une erreur PLS sort et dit qu'on ne peut pas utiliser de fonction dans un select.
J'ai également essayé de multiples choses (plusieurs curseurs, ...) sans aucun succès
Avez-vous une idée et/ou essayer de faire quelque chose de la sorte ?
Je suis preneur de toutes les pistes !
Je suis en Oracle 10
Je vous remercie par avance !
-----