Prb! Requete SQL, insert avec select
Cire
-
massimo501 Messages postés 37 Statut Membre -
massimo501 Messages postés 37 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:
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
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
A voir également:
- Prb! Requete SQL, insert avec select
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Requete sql pix ✓ - Forum MySQL
- Pas de touche insert sur mon clavier - Forum Clavier
- Reboot and select proper boot device or insert boot media in selected boot device and press a key - Forum Windows
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
à 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
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.
(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.
C'est pas fou du tout!
Je vais l'écrire!
Merci
Cire