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 :

execute immediate oracle8i


Sujet :

SQL Oracle

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut execute immediate oracle8i
    Execute immediate.

    --------------------------------------------------------------------------------

    Je suis sous ORACLE8i. J'appelle une procedure stockée sur une autre base de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    s_req:='begin pa.ppax_cre_affectation_ap@GA(:sdsc_param_i,
    :SDate_Bandeau_1,
    :scod_coll_i,
    :snum_exbudg_i,
    :scod_budg_i,
    :sidoperat_i,
    :sidphase_i,
    :SMnt_TTc_i,
    :Smnt2_i,
    :SMnt3_i,
    :SMnt4_i,
    :SMnt5_i,
    :SMnt6_i,
    :SMnt7_i,
    :SMnt8_i,
    :SMnt9_i, 
    :SMnt10_i,
    :SNum_Aff_io,
    :SCod_Etat_io); 
    end;';
     
     
    EXECUTE IMMEDIATE s_req using out SNum_Aff_io,SCod_Etat_io;
    Là j'ai un message d'erreur comme quoi les variables ne sont pas liées alors qu'elles sont toutes renseignées. Pouvez-vous m'aider ?

  2. #2
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    Meme reponse/question que dans ton autre message :
    --
    C'est quoi out ? Tu devrais renseigner chaque variable dans la clause USING.

    Nicolas.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Excuse-moi, je ne connais pas bien oracle peux-tu me préciser ce que tu veux dire ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    As-tu lu http://sheikyerbouti.developpez.com/execute_immediate/ ?
    Es-tu vraiment obligé de passer par du sql Dynamique ?

  5. #5
    Membre chevronné Avatar de NGasparotto
    Inscrit en
    Janvier 2007
    Messages
    421
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 421
    Par défaut
    J'essairais quelque chose comme cela plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    EXECUTE IMMEDIATE s_req using sdsc_param_i,
    SDate_Bandeau_1,
    scod_coll_i,
    snum_exbudg_i,
    scod_budg_i,
    sidoperat_i,
    sidphase_i,
    SMnt_TTc_i,
    Smnt2_i,
    SMnt3_i,
    SMnt4_i,
    SMnt5_i,
    SMnt6_i,
    SMnt7_i,
    SMnt8_i,
    SMnt9_i, 
    SMnt10_i,
    SNum_Aff_io,SCod_Etat_io;
    Et pourquoi utiliser un appel sous sa forme dynamique ?

    Un example d'appel dynamique :
    http://forums.oracle.com/forums/mess...sageID=2063272

    Nicolas.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    En fait, j'ai crée une procedure stockée sur une base qui en appelle deux autres sur une autre base. Quand j'exécute ma première procedure stockée j'ai le message suivant :

    ORA-20000: ORA-02064: opération distribuée non supportée (PPaX_Cre_Affectation_AP)

    J'essaie de trouver une solution ?

  7. #7
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    ORA-02064: distributed operation not supported
    Cause: One of the following unsupported operations was attempted:
    1. array execute of a remote update with a subquery that references a dblink, or

    2. an update of a long column with bind variable and an update of a second column with a subquery that both references a dblink and a bind variable, or

    3. a commit is issued in a coordinated session from an RPC procedure call with OUT parameters or function call
    Ca doit être le point 3 : Un commit fait par la procédure distante.
    Il me semble qu'il faut que le commit soit fait par celui qui appelle. (Une appli externe appelait un de nos packages qui faisait un COMMIT, ils nous l'avait fait enlever)

Discussions similaires

  1. [PLSQL] Erreur 00922 sur Execute immediate
    Par Henrisbg dans le forum Oracle
    Réponses: 5
    Dernier message: 17/11/2005, 16h06
  2. [PL/SQL] Execute immediate
    Par BiM dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/08/2005, 11h13
  3. Equivalents de EXECUTE IMMEDIATE ... RETURNING INTO ... ?
    Par swirtel dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2005, 10h21
  4. [pl/sql] execute immediate
    Par Nadine dans le forum Oracle
    Réponses: 16
    Dernier message: 23/02/2005, 17h37
  5. Execute immediate et nom reserves
    Par nuke_y dans le forum Oracle
    Réponses: 3
    Dernier message: 22/11/2004, 18h17

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