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

Kueri yang menampilkan gabungan luar berperilaku berbeda di Oracle 12c

PERBARUI: Ini diperbaiki di 12.1.0.2.

Ini jelas terlihat seperti bug di 12.1.0.1. Saya akan mendorong Anda untuk membuat permintaan layanan melalui dukungan Oracle. Mereka mungkin dapat menemukan perbaikan atau pekerjaan yang lebih baik. Dan semoga Oracle dapat memperbaikinya di versi mendatang untuk semua orang. Biasanya bagian terburuk tentang bekerja dengan dukungan adalah mereproduksi masalah. Namun karena Anda sudah memiliki kasus uji yang sangat baik, masalah ini mungkin mudah diselesaikan.

Mungkin ada banyak cara untuk mengatasi bug ini. Tetapi sulit untuk mengatakan metode mana yang akan selalu berhasil. Penulisan ulang kueri Anda mungkin berfungsi sekarang, tetapi jika statistik pengoptimal berubah, mungkin rencananya akan berubah kembali di masa mendatang.

Opsi lain yang cocok untuk saya di 12.1.0.1.0 adalah:

ALTER SESSION SET optimizer_features_enable='11.2.0.3';

Namun Anda harus ingat untuk selalu mengubah setelan ini sebelum kueri dijalankan, lalu mengubahnya kembali ke '12.1.0.1' setelahnya. Ada beberapa cara untuk menyematkannya dalam petunjuk kueri, seperti /*+ OPT_PARAM('optimizer_features_enable' '11.2.0.3') */ . Tetapi untuk beberapa alasan itu tidak berfungsi di sini. Atau mungkin Anda dapat menyetelnya untuk sementara waktu untuk seluruh sistem dan mengubahnya kembali setelah perbaikan atau solusi yang lebih baik tersedia.

Solusi apa pun yang Anda gunakan, ingatlah untuk mendokumentasikannya. Jika kueri terlihat aneh, pengembang berikutnya mungkin mencoba "memperbaikinya" dan menemukan masalah yang sama.



  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 mengatur wilayah zona waktu untuk Koneksi JDBC dan menghindari wilayah zona waktu SqlException tidak ditemukan?

  2. ORA-30926:tidak bisa mendapatkan set baris yang stabil di tabel sumber saat Menggabungkan tabel

  3. Oracle:Memperbarui kolom tabel menggunakan ROWNUM bersama dengan klausa ORDER BY

  4. Bagaimana cara menulis kueri yang melakukan sesuatu yang mirip dengan GROUP_CONCAT MySQL di Oracle?

  5. Oracle SQL - REGEXP_LIKE berisi karakter selain a-z atau A-Z