Maison > base de données > tutoriel mysql > Comment corriger l'erreur ORA-00933 dans la requête Oracle UPDATE à l'aide d'un JOIN ?

Comment corriger l'erreur ORA-00933 dans la requête Oracle UPDATE à l'aide d'un JOIN ?

Susan Sarandon
Libérer: 2024-12-28 05:07:13
original
987 Les gens l'ont consulté

How to Fix ORA-00933 Error in Oracle UPDATE Query Using a JOIN?

Résolution de l'erreur ORA-00933 dans la requête de mise à jour Oracle à l'aide de la jointure

Lors d'une tentative de mise à jour de la colonne de montant à l'aide d'une requête de jointure, une exception a été rencontrée : ORA- 00933, indiquant une commande SQL mal terminée.

La requête initiale was :

UPDATE tab1
SET tab1.total_adjusted_cost = tab1.total_adjusted_cost + t1.total
FROM table1 tab1, 
(SELECT tab3.name, tab3.add, SUM(tab2.amount) AS total
FROM table2 tab2,
table3 tab3,
table4 tab4
WHERE tab2.id = tab3.id
AND tab3.id = tab4.id
AND tab4.indicator = 'Y'
GROUP BY tab3.name, tab3.add ) t1
WHERE tab1.id = t1.id;
Copier après la connexion

Pour rectifier cette erreur et exécuter avec succès votre mise à jour, il est recommandé d'utiliser une instruction de fusion au lieu d'une requête de jointure. L'instruction de fusion suivante peut être utilisée :

merge into table1 tab1 
using
(
SELECT tab3.name, tab3."add", SUM(tab2.amount) AS total
FROM table2 tab2,
table3 tab3 ,
table4 tab4
WHERE tab2.id        = tab3.id
AND tab3.id            = tab4.id
AND tab4.indicator             ='Y'
GROUP BY tab3.name,
tab3."add"
)t1
on(tab1.id      = t1.id)
when matched then 
update set tab1.total_adjusted_cost = tab1.total_adjusted_cost + t1.total
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal