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

Memperbarui oracle tabel yang dipartisi

Apa masalah yang Anda coba selesaikan? Tidak masuk akal untuk menjalankan UPDATE yang terpisah pernyataan terhadap setiap partisi dalam satu lingkaran. Jika Anda benar-benar ingin memperbarui setiap baris dalam tabel di mana ab = 'c' , cukup keluarkan satu UPDATE pernyataan

UPDATE cdr_data cdt
   SET a = 'B'
 WHERE ab = 'c'

berpotensi dengan PARALLEL petunjuk yang memungkinkan Oracle memperbarui beberapa partisi secara paralel.

Jika Anda benar-benar ingin memperbarui setiap partisi secara independen, akan lebih masuk akal untuk melakukannya berdasarkan kunci partisi. Misalnya, jika tabel Anda memiliki partisi harian berdasarkan tanggal

FOR i IN 1 .. <<number of daily partitions>>
LOOP
  UPDATE cdr_data cdt
     SET a = 'B'
   WHERE ab = 'c'
     AND partition_key = <<minimum date>> + i;
END LOOP;

Menggunakan partition( <<partition name>> ) sintaks adalah pilihan terakhir yang mutlak. Jika Anda benar-benar bertekad untuk menempuh jalan itu, Anda harus menggunakan SQL dinamis, membuat pernyataan SQL dalam loop dan menggunakan EXECUTE IMMEDIATE atau dbms_sql untuk mengeksekusinya.



  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 mendapatkan mili stempel waktu sejak 1970 UTC di Oracle SQL?

  2. Bagaimana cara mengubah format Tanggal Oracle ke Java?

  3. bagaimana cara menambah panjang keluaran kolom sqlplus?

  4. Cara Mempercantik Hasil Kueri Berformat JSON di SQLcl (Oracle)

  5. perbedaan antara menjelaskan rencana dan rencana pelaksanaan