[Oracle] problème UPDATE et SELECT

Fermé
Nicolas - Modifié par Nicolas le 31/10/2011 à 09:37
jee pee Messages postés 39828 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 9 juin 2024 - 31 oct. 2011 à 16:16
Bonjour à tous et à toutes !

Je vous explique mon soucis.

J'ai plusieurs tables :



- ARTICLE
- GAMME
- PHASE
- PH_NAT

Le fonctionnement est simple : Un article est fait suivant sa gamme de fabrication qui se divise en phases. Chaque phase possède une nature (PH_NAT)

Ne me demandez pas pourquoi cette organisation, je ne suis pas à l'origine de cette base.

En français dans le texte je désirerai : Pour chaque article, dont le libellé de la nature de phase contient "DECO", le champs LOT_ECO reçoit 0, QTE_ECO reçoit 0, PERTE_EXCEP reçoit 3 et TYPE_PERTE reçoit 0

Ma requête donne :

update ARTICLE A
set LOT_ECO = 0,
QTE_ECO = 0,
PERTE_EXCEP = 3,
TYPE_PERTE = 0
where A.ID_ARTICLE in (
select A.ID_ARTICLE
from ARTICLE A, PHASE P, GAMME G, PH_NAT N
where A.CD_GAMME = G.CD_GAMME
and G.CD_GAMME = P.CD_GAMME
and P.CD_PH_NAT = N.CD_PH_NAT
and N.LIBELLE like '%DECO%')

Le problème c'est que Oracle me retourne : ORA-24333 : décompte d'itération égal à zéro.
J'ai testé ma sous requete, elle me retourne les bons champs. La syntaxe de mon update n'est donc pas correcte mais je ne vois vraiment pas où. J'ai cherché des réponses mais rien ne m'a sauté aux yeux malheureusement.

Une petite idée ?

Merci d'avance !


A voir également:

4 réponses

jee pee Messages postés 39828 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 9 juin 2024 9 217
31 oct. 2011 à 14:08
Salut,

Une petite suggestion je n'utiliserais pas 2 fois le préfixe A pour la table article. Dans le sous select je mettrais une autre lettre.

cdlt
0
Salut,

Oui merci j'ai modifié ça, donc maintenant j'ai
update ARTICLE A
set LOT_ECO = 0,
QTE_ECO = 0,
PERTE_EXCEP = 3,
TYPE_PERTE = 0
where A.ID_ARTICLE in (
select A.ID_ARTICLE
from ARTICLE AR, PHASE P, GAMME G, PH_NAT N
where AR.CD_GAMME = G.CD_GAMME
and G.CD_GAMME = P.CD_GAMME
and P.CD_PH_NAT = N.CD_PH_NAT
and N.LIBELLE like '%DECO%')

Mais toujours le ORA-24333 :/
0
jee pee Messages postés 39828 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 9 juin 2024 9 217
Modifié par jee pee le 31/10/2011 à 14:22
where A.ID_ARTICLE in (
select A.ID_ARTICLE

C'est pas modifié partout ;-)

Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Woups :/ Merci c'est bon mais toujours le même message :/
0
jee pee Messages postés 39828 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 9 juin 2024 9 217
31 oct. 2011 à 16:16
Désolé, pas d'autre idée.
0