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 :

Returning bulk collect into dans du sql dynamique


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Returning bulk collect into dans du sql dynamique
    Bonjour,

    J'ai un souci avec une de mes procedures...
    Je suis en v10.2.

    Extrait de mon code:

    Code sql : 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
    req_dyn varchar2 (500);
    TYPE type_result_tab IS TABLE OF varchar2(50);
    result_tab type_result_tab;
     
    BEGIN
     req_dyn := 'INSERT INTO TABA (colA1,colA2)
                          SELECT DISTINCT colB1,colB2 FROM TABB B
                          WHERE colB1 is not null
                          AND not exists 
                                 ( SELECT 1 FROM TABA A WHERE A.colA1=B.colB1) 
                          RETURNING colA1 into :1';
     
     execute immediate req_dyn returning bulk collect into result_tab;
     commit;
     
    ....

    A l'execution, j'ai une erreur ORA-00933: la commande SQL ne se termine pas correctement, sur la ligne de l'execute immediate.

    La doc Oracle et les tutoriaux en ligne sur ce site n'ont pas pu éclairer ma lanterne, je ne vois pas où est l'erreur?
    La requête dynamique sans le returning into marche.

    Help...

    Merci!

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Avez-vous essayé de virer le into :1 ?

  3. #3
    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
    Il semblerait que le returning ne marche pas dans ce cas.

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Sheik Yerbouti, ca ne marche pas plus en virant le into :1...

    mnitu, merci! Il semble effectivement que le returning bulk collect ne marche pas dans le cas des insert select... Cette restriction n'est précisée nulle part dans les docs, c'est dommage (ou alors j'ai rien vu!)....

    Un ajout de cette restriction dans les tutoriaux en ligne sur ce site est-elle envisageable? Je pense que ce serait plus facile de trouver l'information dans les tutoriaux que dans le forum des questions déjà posées, non?

  5. #5
    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
    Citation Envoyé par puck78 Voir le message
    ... Cette restriction n'est précisée nulle part dans les docs, c'est dommage (ou alors j'ai rien vu!)....
    ...
    En fait la diagramme de syntaxe précise bien cette restriction
    insert_into_clause
    { values_clause [ returning_clause ]
    | subquery
    }
    [ error_logging_clause ]

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    Désolée du retard dans la réponse...

    Merci mnitu!
    Argh, je viens de comprendre mon erreur... Je me base plutot en général sur le "PL/SQL User's Guide and Reference", et je me suis faite piégée en lisant mal le diagramme de syntaxe!
    Effectivement, dans le "SQL Reference", la syntaxe est plus claire (pour ce problème en tout cas).


    Oups... C'était bien la peine de signer un truc disant que je m'engageais à vérifier que la réponse à ma question était pas déjà dans la doc avant de poster...
    Desolée!

  7. #7
    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
    Citation Envoyé par puck78 Voir le message
    ... C'était bien la peine de signer un truc disant que je m'engageais à vérifier que la réponse à ma question était pas déjà dans la doc avant de poster...
    Ne t’en fait pas! Au début je suis parti comme le Sheik chercher l’erreur dans le code. Seulement après avoir essayé la même chose en SQL statique j’ai commencé à chercher dans la doc SQL.

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    J'ai pas vu que tu m'avais répondu...
    Je viens de cocher la bonne case dans mon profil pour être alertée des réponses sur mes posts.

    J'ai encore un peu de mal à décrypter la doc d'Oracle

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/03/2011, 19h40
  2. Bug PL/SQL ? (forall, bulk collect into)
    Par wondersonic dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/02/2008, 12h05
  3. [9i] Performances du BULK COLLECT INTO ?
    Par AyaGizmo dans le forum SQL
    Réponses: 6
    Dernier message: 18/10/2007, 17h20
  4. 8i bulk collect into
    Par Ujitsu dans le forum SQL
    Réponses: 3
    Dernier message: 11/10/2007, 16h32
  5. [Oracle 8i] returning bulk collect
    Par Febus dans le forum SQL
    Réponses: 6
    Dernier message: 29/09/2006, 09h46

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