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 :

[9i] Créer dynamiquement des procédures et les utiliser


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut [9i] Créer dynamiquement des procédures et les utiliser
    Bonjour

    Je souhaite pouvoir, dans un bloc PL/SQL conventionnel, créer une procédure pour m'en servir dans ce même bloc.

    La procédure étant implémentée en fonction d'un paramètre, j'ai procédé par SQL Dynamique soit en utilisant EXECUTE IMMEDIATE.

    Toutefois, les appels successifs à la procédure du reste du code échouent, "l'identificateur procedure_name doit être déclaré."

    Je ne comprends pas pourquoi.

    Quelques questions :

    1) lorsque je crée ma procédure, dois-je ajouter un "/" à la fin :

    EXECUTE IMMEDIATE 'CREATE PROCEDURE ... IS BEGIN END; /';

    ou pas ?

    2) Lorsque j'appelle ladite procédure, puis-je utiliser EXECUTE IMMEDIATE procedure_name() ?

    Merci de votre aide

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Bonjour,

    Pour voir où est l'erreur, je te conseille d'afficher le résultat de ta chaine de création (via dbms_output par exemple) et de l'exécuter sous SQL*Plus. Sans avoir ton code, je ne peux pas t'aider davantage.

    Pour pouvoir appeler la procédure stockée il faut que tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate 'begin ' || procedure_name || ';' || ' end;';
    car tu ne peux exécuter une procédure que dans un bloc PL.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Merci j'ignorais ce dernier point, qui solutionne mon problème

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

Discussions similaires

  1. créer dynamiquement des controles
    Par WELCOMSMAIL dans le forum ASP.NET
    Réponses: 10
    Dernier message: 07/11/2007, 13h02
  2. Créer dynamiquement des label
    Par flamel dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/08/2007, 14h44
  3. Réponses: 1
    Dernier message: 17/04/2007, 14h43
  4. [D5] Créer dynamiquement des variables dans une fonction
    Par MelkInarian dans le forum Delphi
    Réponses: 11
    Dernier message: 14/04/2007, 12h16
  5. Réponses: 2
    Dernier message: 02/06/2006, 12h59

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