[Oracle] problème UPDATE et SELECT
Nicolas
-
jee pee Messages postés 41520 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 41520 Date d'inscription Statut Modérateur Dernière intervention -
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 !
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:
- [Oracle] problème UPDATE et SELECT
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
4 réponses
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
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
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 :/
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 :/