Maison > base de données > tutoriel mysql > Comment puis-je corriger ORA-01427 dans mon instruction Oracle UPDATE avec une sous-requête JOIN ?

Comment puis-je corriger ORA-01427 dans mon instruction Oracle UPDATE avec une sous-requête JOIN ?

Patricia Arquette
Libérer: 2024-12-17 01:54:25
original
466 Les gens l'ont consulté

How Can I Fix ORA-01427 in My Oracle UPDATE Statement with a JOIN Subquery?

Mise à jour avec la requête de jointure dans Oracle

Un utilisateur Oracle a rencontré un temps d'exécution interminable pour la requête suivante :

UPDATE table1 t1 SET (t1.col,t1.Output) = (
  SELECT t2.col, t3.Output + t2.col
  FROM tabl2 t3 
  LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
  WHERE t2.col is not NULL);
Copier après la connexion

À moins que la sous-requête SELECT ne garantisse un résultat sur une seule ligne, l'instruction UPDATE échouera avec le error :

ORA-01427: single-row subquery returns more than one row
Copier après la connexion

Les mises à jour corrélées nécessitent une condition liant les lignes de la table externe (table1 dans ce cas) et la sous-requête interne. Généralement, cette condition apparaît :

AND t1.some_key = t2.some_key);
Copier après la connexion

De plus, la requête met à jour chaque ligne de la table1. Si l'utilisateur a l'intention de mettre à jour des lignes spécifiques, une clause WHERE qui filtre en fonction de la condition de jointure doit être ajoutée, telle que :

...
WHERE subquery_condition
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