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 :

Problème d'insertion à partir d'un select


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut Problème d'insertion à partir d'un select
    Bonjour,
    j'arrive pas a faire un insert dans une table avec des données récupérées d'un select
    voila mon code
    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
    27
    28
    29
    30
     
    insert into historique_precompte(
    num_historique_precompte,
    NUM_ADHERENT ,
    NUM_AYANT_DROIT,
    CODE_REGION_FISCALE,
    CODE_PRECOMPTE_CSG, 
    BOOL_MAJORATION_FAMILIALE, 
    TYPE_ORIGINE,
    BOOL_PRECOMPTE_COTMAL,
    BOOL_RETENUE_SOURCE, 
    TAUX_COTISATION_EXPATRIE,
    BOOL_VERSEMENT_RMI, 
    CODE_REGION_COURTIER,
    dt_creation,
    user_maj
    ) values (SELECT seq_historique_precompte.nextval as num_historique_precompte, mpp.NUM_ADHERENT , mpp.NUM_AYANT_DROIT, mpp.CODE_REGION_FISCALE ,
                    mpp.CODE_PRECOMPTE_CSG, BOOL_MAJORATION_ENFANT as BOOL_MAJORATION_FAMILIALE , mpp.TYPE_ORIGINE ,
                    mpp.BOOL_PRECOMPTE_COTMAL , mpp.BOOL_RETENUE_SOURCE, , mpp.TAUX_COTISATION_EXPATRIE ,
                    mpp.BOOL_VERSEMENT_RMI , mpp.CODE_REGION_COURTIER , sysdate  , 'systeme'  
               FROM ECRITURE_PAIEMENT ep, MODALITE_PRESTATION_PERSONNE mpp, MODALITE_PRESTATION_REGIME mpr, dual 
              WHERE (mpp.num_adherent = ep.num_adherent
                      AND mpp.num_adherent = mpr.num_adherent
                      AND mpp.num_adherent is not null) 
    			     OR 
    				 (mpp.NUM_AYANT_DROIT = ep.NUM_AYANT_DROIT
               		  AND mpp.NUM_AYANT_DROIT = mpr.NUM_AYANT_DROIT
               		  AND mpp.NUM_AYANT_DROIT is not null )	 
                AND ep.num_caisse = 2
                AND mpp.code_region_fiscale IN ('FRANCE', 'DOM'))
    voila l'erreur affichée par TOAD ou meme par Oracle SQL developper

    ORA-00936: missing expression et il point le select de ma requete !!!


    merci d'avance de me donner votre avis

  2. #2
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    b'jour,

    si tu a utilisé un formateur gratuit

    tu aurais vu ca


    INSERT
    INTO historique_precompte
    (
    num_historique_precompte ,
    NUM_ADHERENT ,
    NUM_AYANT_DROIT ,
    CODE_REGION_FISCALE ,
    CODE_PRECOMPTE_CSG ,
    BOOL_MAJORATION_FAMILIALE,
    TYPE_ORIGINE ,
    BOOL_PRECOMPTE_COTMAL ,
    BOOL_RETENUE_SOURCE ,
    TAUX_COTISATION_EXPATRIE ,
    BOOL_VERSEMENT_RMI ,
    CODE_REGION_COURTIER ,
    dt_creation ,
    user_maj
    )
    VALUES
    (SELECT seq_historique_precompte.NEXTVAL AS num_historique_precompte,
    mpp.NUM_ADHERENT ,
    mpp.NUM_AYANT_DROIT ,
    mpp.CODE_REGION_FISCALE ,
    mpp.CODE_PRECOMPTE_CSG ,
    BOOL_MAJORATION_ENFANT AS BOOL_MAJORATION_FAMILIALE ,
    mpp.TYPE_ORIGINE ,
    mpp.BOOL_PRECOMPTE_COTMAL ,
    mpp.BOOL_RETENUE_SOURCE ,
    ,
    mpp.TAUX_COTISATION_EXPATRIE ,
    mpp.BOOL_VERSEMENT_RMI ,
    mpp.CODE_REGION_COURTIER ,
    sysdate ,
    'systeme'
    FROM ECRITURE_PAIEMENT ep ,
    MODALITE_PRESTATION_PERSONNE mpp,
    MODALITE_PRESTATION_REGIME mpr ,
    dual
    WHERE
    (
    mpp.num_adherent = ep.num_adherent
    AND mpp.num_adherent = mpr.num_adherent
    AND mpp.num_adherent IS NOT NULL
    )
    OR
    (
    mpp.NUM_AYANT_DROIT = ep.NUM_AYANT_DROIT
    AND mpp.NUM_AYANT_DROIT = mpr.NUM_AYANT_DROIT
    AND mpp.NUM_AYANT_DROIT IS NOT NULL
    )
    AND ep.num_caisse = 2
    AND mpp.code_region_fiscale IN ('FRANCE', 'DOM')
    )

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    DZl c'est une faute de frappe quand j'avais faire le copier/coller

    au fait, la requete select toute seule marche bien, elle me revoie bien la liste que j'ai besoin, c'est quand j'ajoute le Insert que ca donne l'erreur !

    donc mon code ne contient pas le vide !!!!

  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
    La syntaxe n'est pas bonne (pas de VALUES)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into emp 
    select * from emp

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    oh c'est réglé , merci quand même fatsora

    pour info, il falait pas que je mets le mot clé VALUES !!!

    genre mettre :

    Insert into Table1(x, y, z)
    select a, b, c
    from Table2
    Where Bla Bla

  6. #6
    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 ISID Voir le message
    oh c'est réglé , merci quand même fatsora

    pour info, il falait pas que je mets le mot clé VALUES !!!

    genre mettre :

    Insert into Table1(x, y, z)
    select a, b, c
    from Table2
    Where Bla Bla
    insert_into_clause { values_clause [returning_clause] | subquery }

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

Discussions similaires

  1. problème d'insertion à partir d'une fonction
    Par abir_rzg dans le forum Débuter
    Réponses: 3
    Dernier message: 19/08/2009, 10h08
  2. Probleme d'insertion à partir d'un select
    Par dubidon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/08/2008, 11h42
  3. une insertion à partir d'une selection + un champ fixe
    Par Smix007 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 14h59
  4. INSERT à partir d'un SELECT avec champ SERIAL
    Par bruno.wiesen dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/03/2007, 11h07
  5. INSERT à partir d'un SELECT
    Par bruno.wiesen dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/03/2007, 10h20

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