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

PostgreSQL Discussion :

Une table en paramètre de fonction


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Une table en paramètre de fonction
    Bonjour,

    Lors de la création d'une fonction, nous pouvons mettre en paramètre les type simple.

    exemple:
    CREATE FUNCTION F_nom_ma_function(INTEGER) RETURNS integer ....

    Est-il possible de mettre en paramètre, une table car dans une de mes base de donnée, j'ai plusieurs action identique sur plusieurs tables différentes? A la place de créé une fonction pour chaque table, je voudrais en créé qu'une seul et mettre en paramètre le nom de la table (select F_nom_ma_function(nom_de_la_table)).

    Si possible, comment faire car CREATE FUNCTION F_nom_ma_function(TABLE) RETURNS integer .... ne fonctionne pas?

    Merci d'avance pour vos contribution.

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Une solution avec EXECUTE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    create or replace function essai(t varchar) returns int
    as
    $$
    declare
    r int;
    begin
    EXECUTE 'select count(*) from ' || t into r;
    return r;
    end
    $$
    language 'plpgsql'
    Exécution...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select essai('personne.televes')
    Résultat
    1471
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci alassanediakite, d'avoir répondu aussi vite et surtout ça fonctionne.

    Je met le sujet en résolu.

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une structure en paramètre de fonction
    Par nikita_sophie dans le forum Débuter
    Réponses: 68
    Dernier message: 02/09/2008, 10h55
  2. Efficacité avec une table de paramètres
    Par pfredin dans le forum Oracle
    Réponses: 1
    Dernier message: 11/01/2007, 09h59
  3. Passage d'une table en paramètre d'une fonction
    Par Noir-Bizarre dans le forum 4D
    Réponses: 2
    Dernier message: 03/08/2006, 13h56
  4. Passer une table en paramètre à l'aide d'un curseur
    Par lalyly dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/06/2006, 11h49
  5. Faire passer une table en paramètre pour une procedure
    Par samplaid dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/02/2006, 11h26

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