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 :

[Error] ORA-00933 RETURNING INTO TABLE


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Points : 25
    Points
    25
    Par défaut [Error] ORA-00933 RETURNING INTO TABLE
    * Bonjour, *

    Je veux faire une insertion dans une table en récupérant les données à partir d'une autre table et les sauvegarder dans une collection.
    j ai fait comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     TYPE t_array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
      vt_array  t_array ;
    INSERT INTO Table1(c1,c2) SELECT c3,c4  FROM Table2
    RETURNING c1 INTO vt_array;
    em compilant la procedure, un message d'erreur
    [Error] ORA-00933 (380: 10): PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
    * Merci *

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Vous devez BULK COLLECT les données dans votre collection :
    http://sheikyerbouti.developpez.com/...age=Chap5#L5.5

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 139
    Points : 25
    Points
    25
    Par défaut
    voici mon code:
    l'erreur persiste encore.
    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
    24
    25
    26
     
     
    DECLARE
       TYPE t_rec_unit IS TABLE OF NUMBER
          INDEX BY PLS_INTEGER;
     
       vt_rec_unit   t_rec_unit;
    BEGIN
       INSERT INTO G_REC_GROUP_MEMBERS (rec_group_id, rec_unit_id)
          SELECT rec_unit_id
            FROM G_REC_GROUP_MEMBERS SM
           WHERE rec_group_id = pn_source_group_id
             AND closed IS NULL
             AND NOT EXISTS
                        (SELECT NULL
                           FROM G_REC_GROUP_MEMBERS MM
                          WHERE rec_group_id IN
                                   (SELECT rec_group_id
                                      FROM G_REC_UNIT_GROUP
                                     WHERE activity_id = pv_activity_id
                                       AND entity_id = pn_entity_id
                                       AND TYPE = 'M')
                            AND MM.rec_unit_id = SM.rec_unit_id)
         RETURNING rec_unit_id
              BULK COLLECT INTO vt_rec_unit;
    END;

  4. #4
    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
    Pour l'instant (10 et 11g) ça ne marche pas. Lisez returning with insert..select pour une solution de contournement

    /Edit
    C'est pareil en 12g la diagramme de syntaxe n'a pas changé
    insert_into_clause
    { values_clause [ returning_clause ]
    | subquery
    } [ error_logging_clause ]

Discussions similaires

  1. Insert depuis plusieurs tables - ORA-00933
    Par feldi dans le forum SQL
    Réponses: 9
    Dernier message: 11/01/2012, 16h43
  2. Réponses: 5
    Dernier message: 19/10/2009, 16h01
  3. insert into table values/ insert into table select
    Par aaronw dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/05/2005, 15h14
  4. Equivalents de EXECUTE IMMEDIATE ... RETURNING INTO ... ?
    Par swirtel dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2005, 10h21
  5. Réponses: 3
    Dernier message: 10/12/2004, 09h42

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