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

SQL Oracle Discussion :

[PL/SQL] Type d'une colonne défini par une variable dynamique


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Par défaut [PL/SQL] Table dynamique
    Bonjour, je ne sait pas si je poste au bon endroit ...

    J'ai besoin d'une fonction qui utilise un nom de table dynamique et donc avec des ROWtype different.

    J'utilise pour obtenir la description de ma table une variable défini comme suit :

    v_typtable matable%ROWTYPE;

    Ca marche bien quand matable est connu et qu'il s'agit du nom en dur de la table dans la base.

    Par contre dès que j'utilise une variable contenant le nom de table, ca ne marche plus :
    v_matable = "matable";
    v_typtable v_matable%ROWTYPE;


    Si quelqu'un peut m'aider pour faire une telle déclaration !

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    A mon avis, impossible à faire sauf si on génére dynamiquement l'ensemble du code PL/SQL et qu'on essaie de l'exécuter avec EXECUTE IMMEDIATE

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Par défaut
    Merci, mais j'ai finalement trouvé en détournant la solution en passant par un curseur

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Par défaut
    Désolé de pas avoir donné ma réponse plus tot, voici ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    P_enreg.nomtable = "matable"
    -- "matable" étant un paramètre de ma fonction
     
    --Déclaration du curseur :
    cursor listetable  is
    SELECT    *
    FROM	  p_enreg.nomtable
     
    --Déclaration de la structure en fonction du retour du curseur !
    desctable listetable%ROWTYPE;
     
    --Cela fonctionne très bien !!

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Personnellement, je suis surpris.
    Pour utiliser un nom de table dynamique, j'ai toujours été contraint de passer par du SQL dynamique : EXEC_SQL ou EXECUTE IMMEDIATE.

    Peut-on en savoir plus sur le type de :

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Par défaut
    Voici la définition qui est passé en paramètre de ma procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    p_enreg in TA_PARAM_SUIVI%ROWTYPE
    et nomtable est donc un champs de la table TA_PARAM_SUIVI.

Discussions similaires

  1. créer une liste à partir d'une suite définie par récurence
    Par carryPAR dans le forum Général Python
    Réponses: 5
    Dernier message: 02/03/2015, 10h33
  2. Réponses: 8
    Dernier message: 05/04/2011, 08h06
  3. Réponses: 3
    Dernier message: 29/03/2011, 20h38
  4. Réponses: 1
    Dernier message: 22/08/2008, 10h06
  5. colonne définie par une requête imbriquée
    Par lper dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/09/2005, 16h41

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