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 :

curseur sur une table dont on ne connaît pas le nom


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut curseur sur une table dont on ne connaît pas le nom
    Bonjour,
    Dans ma procédure, j'aimerai traiter des données qui se trouve dans une table dont le nom n'est pas connu à l'avance mais est un paramètre de la procédure.
    Si j'essaye de réaliser un paramètre avec le nom de la table en paramètre, l'erreur "PL/SQL: ORA-00942: Table ou vue inexistante" apparaît :-(

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CURSOR c_export (pe_nomtable VARCHAR2) IS
           SELECT * FROM pe_nomtable;
    Je me dit qu'il y à peut être quelque chos à faire avec l'instruction EXECUTE IMMEDIATE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    VL_REQ := 'SELECT * FROM '||pe_nomtable;
    EXECUTE IMMEDIATE VL_REQ BULK COLLECT INTO MA_COLLECTION
    Le problème est que ma collection devrait pouvoir être multi-dimentionnel (2 dimenssions en l'occurence).

    Enfin, voilà, c'est un peut la merde!!!

    Merci de votre aide.

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Je ne sais pas répondre à ton problème*, mais ce que je sais, c'est que comme ton problème relève du PL/SQL, c'est donc sur le forum Oracle que tu devrais poster

    * : en plus, je devrais savoir y répondre, tu n'es pas le premier à avoir eu ce souci, j'ai déjà vu des demandes analogues, donc peut-être qu'en effectuant une recherche ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    attention, en PL/SQL les droits doivent être donner à l'utilisateur directement, c'est à dire sans passer par les rôles. Si tu as le role SELECT ANY TABLE ça ne suffit pas, il faut faire un GRANT de la table sur le user

  4. #4
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Tu dois utiliser un REF CURSOR pour construire dynamiquement la requête servant de base à ton curseur.


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 81
    Points : 77
    Points
    77
    Par défaut
    Merci, pour votre aide, je devrais pouvoir m'en sortir!
    Pour les intéressé au sujet, pour le REF CURSOR, il y a un exemple dans ce très bon article:

    http://sheikyerbouti.developpez.com/execute_immediate/

    Bonne vacances pour ceux qui y sont ou y seront :-) !!!

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

Discussions similaires

  1. Appel d'un curseur sur une table pas encore créée
    Par coco_mtl dans le forum PL/SQL
    Réponses: 9
    Dernier message: 03/01/2011, 17h17
  2. Requete sur une table dont le nom vient d'une autre requete
    Par specialka dans le forum Requêtes
    Réponses: 9
    Dernier message: 17/03/2009, 11h22
  3. Requete SQL sur une table dont le nom est dans une autre table
    Par orangepresse dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/09/2007, 13h32
  4. Réponses: 6
    Dernier message: 08/02/2007, 14h41
  5. Réponses: 4
    Dernier message: 27/12/2006, 21h53

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