ホームページ >データベース >mysql チュートリアル >JOIN サブクエリを使用した Oracle UPDATE ステートメントの ORA-01427 を修正するにはどうすればよいですか?

JOIN サブクエリを使用した Oracle UPDATE ステートメントの ORA-01427 を修正するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 01:54:25381ブラウズ

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

Oracle の結合クエリによる更新

Oracle ユーザーは、次のクエリで無限の実行時間が発生しました:

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);

SELECT サブクエリが単一行の結果を保証しない限り、UPDATE ステートメントは失敗します。エラー:

ORA-01427: single-row subquery returns more than one row

相関更新には、外部テーブル (この場合は table1) と内部サブクエリの行をリンクする条件が必要です。通常、次の条件が表示されます:

AND t1.some_key = t2.some_key);

さらに、クエリは table1 のすべての行を更新します。ユーザーが特定の行を更新する場合は、

...
WHERE subquery_condition
のような結合条件に基づいてフィルタリングする WHERE 句を追加する必要があります。

以上がJOIN サブクエリを使用した Oracle UPDATE ステートメントの ORA-01427 を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。