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

Literal tidak cocok dengan format string untuk Oracle SQL to_date pada kolom string

Urutan bahwa Oracle mengevaluasi kondisi yang ditemukan di klausa where tidak diperbaiki. Artinya, ia dapat memilih untuk mengevaluasi kondisi yang berisi TO_DATE sebelum kriteria lainnya, dalam hal ini kueri akan gagal. Untuk mencegahnya, tambahkan petunjuk orders_predicates ke kueri Anda, tetapi perlu diketahui bahwa ini mungkin memerlukan penyetelan manual tambahan untuk meningkatkan kinerja.

SELECT /*+ ordered_predicates */
               To_Date(c.Value, 'MM/DD/YYYY HH24:MI:SS') somedate 
          FROM properties$aud a, 
               template_properties$aud b, 
               consumable_properties$aud c 
         WHERE Lower(a.name) = 'somedate' 
           AND a.id = b.property_id 
           AND b.id = c.template_property_id 
           AND To_Date(c.Value, 'MM/DD/YYYY HH24:MI:SS') IS NOT NULL

Rupanya ordered_predicates sudah usang dimulai dengan 10g. Dalam hal ini, saya pikir satu-satunya pilihan Anda adalah menggunakan sub-kueri sedemikian rupa sehingga pengoptimal dipaksa untuk mengevaluasinya terlebih dahulu (yaitu tidak dapat menggabungkan kueri). Cara termudah untuk melakukannya adalah dengan meletakkan rownum dalam pernyataan where dari kueri dalam.

SELECT To_Date(c.Value, 'MM/DD/YYYY HH24:MI:SS') somedate 
  FROM (SELECT value 
          FROM properties$aud a, 
               template_properties$aud b, 
               consumable_properties$aud c 
         WHERE Lower(a.name) = 'somedate' 
           AND a.id = b.property_id 
           AND b.id = c.template_property_id
           AND rownum > 0) 
 WHERE To_Date(c.Value, 'MM/DD/YYYY HH24:MI:SS') IS NOT NULL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kompatibilitas versi Oracle Client dan ODP.NET

  2. ORA-20001 di R12 Kumpulkan statistik skema pada 11g(FND_HISTOGRAM_COLS)

  3. Downtime dan Hotpatch menerapkan mode di adop R12.2

  4. Akses layanan Web dari prosedur tersimpan Oracle

  5. Bantu saya memasukkan terminologi Oracle ke dalam terminologi SQL Server