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 :

vraiment pas de merge into dans un execute immediate?


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut vraiment pas de merge into dans un execute immediate?
    Bonjour,
    je dois faire l'équivalent d'un merge into dans une fonction, mais apparement le execute immediate ne supporte que les insert, update, select.

    c'est vraiment mort de chez mort? (je dois juste construire la condition moi-même en somme)

    je suis en oracle 9.2.0.6

    merci a vous

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    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
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Non, ça marche bien, j'ai testé et je suis en 9.2.0.6
    C'est ton merge qui doit être foireux, ou alors ton appel.
    Comment tu l'appeles ta fonction ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    comme c'était du test je l'ai betement mis dans un select from dual avec mon jeu de donnée.
    je devrais mettre un pragma autonomous transaction ou en faire une procedure?

    le merge est normalement ok vu que je l'ai testé classiquement et que je l'ai repris juste en remplacant par :1,:2, etc pour le USING

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par ukanoldai Voir le message
    Bonjour,
    je dois faire l'équivalent d'un merge into dans une fonction, mais apparement le execute immediate ne supporte que les insert, update, select.
    Qu'est-ce qui vous fait dire ça ? Il y a un message d'erreur ? Vous avez lu cette restriction dans la doc ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    sorry je me suis viandé, en réalité j'avais un "ORA-14551: cannot perform a DML operation inside a query", ce que j'ai corrigé en mettant "pragma autonomous_transaction;
    " dans ma fonction

    Le message d'erreur que j'avais était: "ORA-06547: RETURNING clause must be used with INSERT, UPDATE, or DELETE statements". et j'aurai du le lire jusqu'au bout mais j'étais un peu énervé car j'avais viré toute une partie de code pour le merge et comme un âne je n'avais pas sauvegardé et toad est contre le ctrl-z après avoir recompilé ^^
    j'ai juste viré le returning et ca roule.

    merci tout de même pour votre aide et j'essayerai de garder la tête claire avant de poster la prochaine fois

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/03/2014, 10h19
  2. SQL Merge into - delete ne marche pas
    Par Javotte dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/06/2008, 09h29
  3. Réponses: 5
    Dernier message: 02/08/2004, 17h11
  4. [CR8.5] Ne peut pas insérer de carte dans un rapport
    Par liberio dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 14/06/2004, 22h07
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

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