Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Membetulkan ORA-01427 dalam Penyata KEMASKINI Oracle Saya dengan Subquery JOIN?

Bagaimanakah Saya Boleh Membetulkan ORA-01427 dalam Penyata KEMASKINI Oracle Saya dengan Subquery JOIN?

Patricia Arquette
Patricia Arquetteasal
2024-12-17 01:54:25469semak imbas

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

Kemas kini dengan Sertai Pertanyaan dalam Oracle

Pengguna Oracle menghadapi masa pelaksanaan yang tidak berkesudahan untuk pertanyaan berikut:

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

Melainkan subquery SELECT menjamin hasil satu baris, pernyataan UPDATE akan gagal dengan ralat:

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

Kemas kini yang berkaitan memerlukan syarat yang memautkan baris dalam jadual luar (jadual1 dalam kes ini) dan subkueri dalam. Biasanya, keadaan ini muncul:

AND t1.some_key = t2.some_key);

Selain itu, pertanyaan mengemas kini setiap baris dalam jadual1. Jika pengguna berhasrat untuk mengemas kini baris tertentu, klausa WHERE yang menapis berdasarkan syarat gabungan harus ditambah, seperti:

...
WHERE subquery_condition

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan ORA-01427 dalam Penyata KEMASKINI Oracle Saya dengan Subquery JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn