Prb! Requete SQL, insert avec select

Cire -  
massimo501 Messages postés 39 Date d'inscription   Statut Membre -
Bonjour, j'ai un problème, je fais des requête SQL dans Oracle.

Je recois le message du genre: "paramètre insuffisant."

J'ai une variable de type SEQUENCE: seqRetraite

Voici ma requête:

INSERT INTO  retraite
(noRet, dateRetraite, nomR, noDept, dateEmbauche)
    VALUES(seqRetratraite.NEXTVAL, SYSDATE, 
          (SELECT nomE, noDept, dateEmbauche
              FROM emp
              WHERE dateEmbauche < 
                             TO_DATE('01/01/1982', 'DD/MM/YYYY')));


Je cherche à ajouter plusieur ligne dans "retraite" d'où 3 variables viennent de "emp' sous une certaine condition.

Quelqu'un peut-il voir le problème?

Merci de votre précieuse aide!

Cire

2 réponses

  1. Mattiou
     
    Salut,
    à mon avis le pb vient de la syntaxe : je crois pas qu'on puisse faire un medley des deux formes d'insert possible à savoir
    "Insert into TABLE values(...)"
    et
    "Insert into TABLE select ........"
    Du coup je pense que tu devrais utiliser la 2eme syntaxe en écrivant :
    "INSERT INTO retraite(noRet, dateRetraite, nomR, noDept, dateEmbauche) SELECT seqRetratraite.NEXTVAL, SYSDATE, nomE, noDept, dateEmbaucheFROM emp WHERE dateEmbauche < TO_DATE('01/01/1982', 'DD/MM/YYYY') ".
    Voili voilou,
    amuses toi bien

    Mattiou
    1
    1. Cire
       
      Merci,

      C'est pas fou du tout!

      Je vais l'écrire!

      Merci

      Cire
      0
  2. massimo501 Messages postés 39 Date d'inscription   Statut Membre 1
     
    Le souci est très clair, ton "insert" attend 5 paramètres
    (noRet, dateRetraite, nomR, noDept, dateEmbauche)
    alors
    que ton "select" (ta sous-requête)
    ne revoie que 3 paramètres ...
    soit tu peux remplir via un null pour les paramètres vides
    soit tu t'arranges pour que ton select revoie les 5 paramètres
    avec les types correspondant
    voilà.

    bon travail.
    -1