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 :

Utiliser une variable comme table du FROM


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 60
    Points : 54
    Points
    54
    Par défaut Utiliser une variable comme table du FROM
    Bonjour,
    souhaitant comparer les nombres d'enregistrements de diverses tables, parfois sur d'autres schémas, j'ai fait un petit script plsql qui marche, mais pas comme je le souhaitais à l'origine:

    J'ai plusieurs tableaux qui listent des noms de tables (en varchar2). Je compare le nombre de lignes des tables du même rang.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        TYPE TABLE_TAB IS VARRAY (100) OF VARCHAR2(50);
        TAB_ODS TABLE_TAB := TABLE_TAB(  'NOM TABLE 1', 'NOM TABLE 2', ......);
    Ce qui marche: un execute d'une requete construite à partir d'un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       requete:='select count(*) from ' || TAB_ODS(I) ||  ' where OPERATION$=''I'' ';    
       execute immediate requete into nbLigne1;
    Ce qui ne marche pas: un select direct.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       select count(*) into nbLigne1 from TAB_ODS(I) where OPERATION$='I' ;
    car bien sûr TAB_ODS(I) est considéré comme un nom de table et non une variable.

    Je n'ai pas trouvé comment le faire marcher bien qu'ayant testé et cherché sur le net. Non pas que je ne puisse m'en passer, mais j'aimerais bien connaitre la solution.
    De plus les noms de tables peuvent devoir être préfixées par un schema, ou suffixées par un dblink. Avec la 1ere méthode c'est facile, mais avec la seconde?

    Bien cordialement

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Parce que la première méthode est LA bonne méthode...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    ... et que comme tu l'as remarqué, la deuxième méthode ne marche pas, que tu précises le schéma ou non ! (certainement pour cela que tu n'as pas trouvé sur le net comment la faire marcher )

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

Discussions similaires

  1. Utiliser une variable comme nom de table Access dans une requête SQL
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/10/2011, 17h11
  2. Réponses: 2
    Dernier message: 12/04/2011, 09h21
  3. [AC-2007] Utiliser une variable comme alias lors de la création de table via Vba
    Par Tipstitou dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/09/2010, 10h29
  4. Utiliser une variable comme nom de fichier
    Par lo00_ dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/06/2006, 13h57
  5. [curseurs] utiliser une variable comme nom de champ
    Par Christian31 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2005, 14h12

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