Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Perbarui dengan permintaan Gabung di Oracle

Kecuali SELECT . Anda subquery mengembalikan satu baris, UPDATE . Anda pernyataan harus gagal dengan kesalahan

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

Umumnya, whey Anda memiliki pembaruan yang berkorelasi, Anda memerlukan beberapa kondisi yang menghubungkan baris di tabel luar T1 ke baris dalam subkueri dalam untuk memastikan bahwa subkueri mengembalikan satu baris. Itu biasanya akan terlihat seperti

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
    AND t1.some_key = t2.some_key);

Akhirnya, UPDATE . ini pernyataan memperbarui setiap baris di T1 . Apakah itu yang Anda niatkan? Atau apakah Anda hanya ingin memperbarui baris di mana, misalnya, Anda menemukan kecocokan di subkueri Anda?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara terhubung ke Oracle DB jarak jauh dengan PL/SQL Developer?

  2. bagaimana cara memberikan hak istimewa pengguna pada skema tertentu?

  3. Bagaimana cara memaksa kasus pascal dengan dukungan Oracle Entity Framework?

  4. Mengapa Oracle menggunakan DBMS_STATS.GATHER_TABLE_STATS?

  5. Cara Memformat Angka dengan Tanda Minus/Plus di Oracle