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 :

PLSQL: placer une variable dans une clause FROM


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut Postgres SQL: placer une variable dans une clause FROM
    Bonjour je voudrais avoir une variable dans la clause from d'une procedure SQL

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE FUNCTION selectionner(IN nomTable CHARACTER)
    RETURNS REFCURSOR AS'
    DECLARE
    	result refcusor;
    BEGIN
        OPEN result FOR
    		SELECT * FROM nomTable;
        RETURN result;
    END;
    j'ai essayé avec des doubles quote, simple quote, double simple quotes ....
    Mais rien ne fonctionne et je me demande si c'est possible a faire cde cette facon ???
    Si quelqu'un a deja réussi ...?

  2. #2
    Membre actif
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Points : 289
    Points
    289
    Par défaut
    Tu peux utiliser le sql dynamique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    FUNCTION Compte_rec
      (
            PC$Table IN VARCHAR2,
            PC$ClauseWhere IN VARCHAR2
      ) RETURN PLS_INTEGER
    IS
      LC$Requete      VARCHAR2(512) ;
      LN$Total        PLS_INTEGER ;
    BEGIN
      LC$Requete := ‘Select count(*) From ‘ || PC$Table || ‘ where ‘ || PC$ClauseWhere ;
      EXECUTE IMMEDIATE LC$Requete INTO LN$Total ;
      return LN$Total ;
    END ;
    "J'adorerais changer le monde, mais pas moyen de mettre la main sur le code source."
    chez moi

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE OR REPLACE function selectionner(nomTable In varchar2) return sys_refcursor
    AS
      result sys_refcursor;
    BEGIN
        OPEN result FOR
        'SELECT * FROM '||nomTable;
        RETURN result;
    END;

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    OK merci pour les réponses
    J'ai essayer la deuxieme solution de mnitu mais ca ne passe pas, j'ai des erreur de syntaxe

    Pour le sql dynamic il semblerai que ca puisse fonctionner, mais je n'est pas trop le temps de tester, je me suis debrouiller avec une solution de secour qui fonctionne, je repasserai dessus d'ici 2~3 jours

    Merci

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    OK merci pour les réponses
    J'ai essayer la deuxieme solution de mnitu mais ca ne passe pas, j'ai des erreur de syntaxe
    ...
    Quelle erreur ? Quelle version d’Oracle ? Ca doit passer à partir de la version 9.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Autant pour moi mon message a été déplacé ici par un admin

    Je n'utilise pas oracle je suis sous postgresql

    Je vais faire le nécessaire pour qu'il soit lacer ailleurs

  7. #7
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Tiéry Voir le message
    ...
    Je n'utilise pas oracle je suis sous postgresql
    ...
    Et moi j'ai lu à traves.

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Réponses: 3
    Dernier message: 26/09/2008, 10h41
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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