Prb! Requete SQL, insert avec select

Fermé
Cire - 19 janv. 2005 à 15:44
massimo501 Messages postés 37 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 2 janvier 2006 - 21 janv. 2005 à 13:20
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

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
Merci,

C'est pas fou du tout!

Je vais l'écrire!

Merci

Cire
0
massimo501 Messages postés 37 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 2 janvier 2006 1
21 janv. 2005 à 13:20
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