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

PL/SQL Oracle Discussion :

Fonction avec différentes tables en entrée


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Fonction avec différentes tables en entrée
    Bonjour à tous,

    J'ai une query qui me retourne une valeur de disponibilité par rapport à un lot de données.

    En voici une version très simplifiée (pour la compréhension):
    select sum(date2-date1) as Mavaleurfinale from matable.

    J'aimerai en créer une fonction pour que ce même calcul soit disponible pour d'autres lots de données provenant de différentes tables.

    Par exemple
    select fGet_Availability(select startdate as date1, enddate as date2 from uneTable) from dual

    select fGet_Availability(select dateA as date1, dateB as date2 from uneautreTable where colX = 'server1') from dual


    avec une fonction (ou peut-être une procédure) dans un package qui serait quelque chose comme:

    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
    TYPE T_Avail_Record IS RECORD (StartDate date, EndDate date);
       TYPE InputRowset  IS TABLE OF T_Avail_Record;
     
    FUNCTION fGet_Availability( InputRowset )
        RETURN NUMERIC
    IS 
       t_Mavaleurfinale numeric;
     
    BEGIN
     
        select sum(date2-date1) into Mavaleurfinale from InputRowset 
     
        RETURN (t_Mavaleurfinale);
     
    END
    Je n'ai trouvé sur aucun forum la possibilité de faire un SELECT sur un lot de donnée en entré de fonction.
    Est-ce possible sous Oracle (version 11.2.0.3.0) ?

    En espérant avoir été clair,
    D'avance merci pour votre aide,
    Eric.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Une fonction pipelined
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select avg( date1 - date2) from table(ma_fonction('l_ma_table'))

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    Je vais regarder pour une solution dans ce sens.

    Eric

Discussions similaires

  1. Fonction avec return table
    Par Aethia dans le forum Sybase
    Réponses: 6
    Dernier message: 11/12/2013, 18h39
  2. Fonction avec parametre table
    Par Renaud° dans le forum Développement
    Réponses: 5
    Dernier message: 06/10/2011, 21h13
  3. Réponses: 2
    Dernier message: 16/10/2010, 18h07
  4. [WD15] Tableau croisé avec une table en entrée est ce possible ?
    Par Therion dans le forum WinDev
    Réponses: 2
    Dernier message: 12/03/2010, 08h15
  5. Fonction avec 2 données en entrée
    Par Stéphane Olivier BERNARD dans le forum Access
    Réponses: 2
    Dernier message: 29/04/2006, 20h34

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