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 :

Passage en paramètre d'un tableau dans un appel de procédure dynamique [11g]


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Passage en paramètre d'un tableau dans un appel de procédure dynamique
    Bonjour,

    J'aimerais savoir si il est possible d'appeler une procédure dans un EXECUTE IMMEDIATE avec en paramètre un tableau de type varchar2 index by varchar2.

    Voici les morceaux de code que j'ai testé :

    Premier test :
    Création du type dans la spec du package :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TYPE g_tab_varchar2 IS TABLE OF VARCHAR2(255) INDEX BY VARCHAR2(255);
    Création tableau local avec ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_tab_str_params    g_tab_varchar2;
    Mon appel de procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    EXECUTE IMMEDIATE 'BEGIN ' || l_va_code_env || '.' || l_va_data_pkg || '.' || l_va_data_proc || '(:v_in); END;'
    USING l_tab_str_params;
    Avec ça, j'ai le message d'erreur à la compilation : "Les expressions doivent être de type SQL".


    Deuxième test :
    J'ai tenté de créer un type stocké de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE OR REPLACE TYPE type_tab_varchar2 AS TABLE OF VARCHAR2(255) INDEX BY VARCHAR2(255);
    Mais ça ne marche pas, il n'aime pas l'INDEX.
    J'ai testé donc de ne pas le mettre (l'INDEX) mais de le placer au niveau de ma procédure comme pour mon l_tab_str_params initialement, dans ce genre là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_tab_str_params    type_tab_varchar2 index by varchar2(255);
    Mais il n'aime pas non plus.

    Auriez-vous une méthode pour exécuter ceci ?

    Merci à vous

  2. #2
    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
    Les faits !

    PL/SQL supporte 3 types des collections :
    • vecteur associatif (associative array),
    • tableau imbriqué (nested table)
    • vecteur variable (varray).

    De plus les vecteurs associatifs peuvent être indexés par entier ou par une chaine des caractères.

    La création des type SQL de type collection ne supporte, jusqu’à la version 12c, que le tableau imbriqué et le vecteur variable.
    L’appel du moteur SQL à partir du PL/SQL via execute immediate implique un passage des données au format reconnue par le moteur SQL ce qui exclue tous les types qui sont propre qu'au PL/SQL: booléen, vecteur associatif, record, etc.

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

Discussions similaires

  1. Passage de paramètres vers un Simulink dans une fonction
    Par littlebigman dans le forum Simulink
    Réponses: 2
    Dernier message: 11/02/2011, 11h39
  2. Réponses: 7
    Dernier message: 30/10/2010, 21h06
  3. [WD15] Passage en paramètre d'un tableau à 2 dimentions
    Par Laurent_m_paris dans le forum WinDev
    Réponses: 5
    Dernier message: 15/09/2010, 16h49
  4. passage par paramètre d'un tableau dynamique bidimensionnel
    Par shaftJackson dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/07/2006, 13h28
  5. [ADO] Passage de paramètre de type Date dans une requête
    Par e-ric dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/01/2006, 12h36

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