IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Fonction récursive sous oracle


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Points : 68
    Points
    68
    Par défaut Fonction récursive sous oracle
    Bonjour,

    J'ai une table qui est composée de plusieurs colonnes. Cette table est alimentée quotidiennement via un service ou job qui effectue plusieurs traitement et chaque colonne reçois sa valeur.
    La table a la forme suivante (forme simplifiée car elle est composée d'un grand nombre de colonnes)
    (Date_jour,val1,val2,val3)


    Val3=val3 de la journée précédente + calcul correspondant à la journée courante.

    J'ai pensé à créer une fonction sous oracle qui récupère la valeur de val3 de la journée précédente et aditionné au calcul effectué aussi dans cette fonction.

    Est ce une bonne solution ou y a-t-il une solution propre à ceci ?
    Merci de m'orienter

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bonjour,

    Pas besoin de faire du récursif. Tu récupères la dernière valeur et tu fais l'insert. Un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    insert into t(col_date, val1,val2,val3)
    with v as (select id, val3, row_number() over (partition by id order by col_date desc) rn
                  from t
                 )
    select sysdate, s.val1, s.val2, v.val3 + ....
    from table_staging s
    left join v
    on (s.id = v.id and v.rn = 1)              
    where...

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 80
    Points : 68
    Points
    68
    Par défaut
    Bonjour vanagreg,
    Merci beaucoup pour ta proposition.
    Je vais l'appliquer et reviendrai vers le forum pour faire part du résultat.

Discussions similaires

  1. Fonction IIF sous Oracle
    Par noirot dans le forum Oracle
    Réponses: 8
    Dernier message: 27/04/2009, 17h13
  2. Fonction not sous Oracle
    Par 18Marie dans le forum Oracle
    Réponses: 5
    Dernier message: 06/03/2007, 10h37
  3. les fonctions mathematiques sous oracle
    Par sylab_ dans le forum Oracle
    Réponses: 3
    Dernier message: 30/01/2007, 13h19
  4. Problème de requête récursive sous Oracle 10
    Par boulgom12 dans le forum Oracle
    Réponses: 1
    Dernier message: 13/12/2006, 09h54
  5. Equivalent de la fonction NVL sous oracle en SQL-server
    Par MorbidAngel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/09/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo