Maison > base de données > tutoriel mysql > Comment corriger l'erreur ORA-00933 lors de la mise à jour des tables Oracle à l'aide de jointures ?

Comment corriger l'erreur ORA-00933 lors de la mise à jour des tables Oracle à l'aide de jointures ?

DDD
Libérer: 2024-12-30 06:17:30
original
620 Les gens l'ont consulté

How to Fix ORA-00933 Error When Updating Oracle Tables Using Joins?

Requête de mise à jour d'Oracle à l'aide d'une jointure : résolution de l'erreur ORA-00933

Dans une tentative de mise à jour de la colonne 'total_adjusted_cost' dans la table1 à l'aide d'une jointure avec la table t1, une erreur ORA-00933 a été rencontrée. Cette erreur indique que la commande SQL n'a pas été correctement terminée.

Pour résoudre ce problème, envisagez plutôt d'utiliser l'instruction MERGE. L'instruction MERGE combine les fonctionnalités des instructions INSERT, UPDATE et DELETE en une seule opération. Voici comment mettre à jour la table à l'aide de l'instruction MERGE :

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

Dans cette instruction MERGE :

  • La clause USING spécifie la table t1 qui fournit les données source pour la mise à jour .
  • La clause ON spécifie la condition de jointure entre la table1 et t1.
  • La clause WHEN MATCHED spécifie l'opération de mise à jour à effectuer sur les lignes correspondantes.

L'utilisation de l'instruction MERGE garantit que la mise à jour est effectuée correctement et évite l'erreur ORA-00933.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal