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

Memanggil Fungsi Oracle PL SQL dari Excel VBA

Pekerjaan Anda dengan tanggal sama sekali tidak benar. Sulit untuk menunjukkan tempat yang tepat karena ada beberapa tempat yang potensial. Saya akan menjelaskan apa yang salah dengan potongan kode ini (diambil dari pernyataan "baris 89" Anda):

... FP_BASIC_BD."DATE">=TO_CHAR(TRUNC(TO_DATE(GTT_DWM_STATS.CLOSINGDATE,'DD-MON-YY'), 'IW'),'DD-MON-YY') ...

GTT_DWM_STATS.CLOSINGDATE memiliki format tanggal (sesuai dengan pernyataan DDL Anda). Tapi to_date fungsi mengambil string sebagai parameter pertama. Di tempat ini, Oracle melakukan hal berikut:

  • secara implisit mengonversi tanggal menjadi string (menggunakan format sesi)
  • lalu to_date fungsi mencoba mengubahnya kembali menjadi tanggal, memperlakukan string sebagai tanggal yang ditulis dalam 'DD-MON-YY' format
  • lalu trunc memotong tanggal
  • lalu to_char mengubahnya lagi menjadi string, dan Anda membandingkan string Anda dengan tanggal (saya kira) FP_BASIC_BD."DATE"
  • jika FP_BASIC_BD."DATE" adalah tanggal, Oracle secara implisit mengonversi hasil ekspresi di sebelah kanan tanda sama dengan lagi menjadi tanggal
  • atau jika FP_BASIC_BD."DATE" adalah string, Oracle membandingkan string menurut aturan perbandingan string.

Yang Anda butuhkan di sini adalah menyingkirkan semua transformasi yang tidak perlu:

FP_BASIC_BD."DATE" >= TRUNC(GTT_DWM_STATS.CLOSINGDATE, 'IW')

Dan setelah itu Anda harus memeriksa dengan cermat semua pernyataan lain di mana Anda bekerja dengan tanggal. Jika suatu fungsi mengambil tanggal sebagai parameter input, Anda harus melewatkan tanggal, jika suatu fungsi mengambil string - berikan string. Sama halnya dengan perbandingan:bandingkan string dengan string dan tanggal dengan tanggal.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cara mengonversi csv ke tabel di oracle

  2. Nilai tertinggi kedua dari tabel Oracle DB

  3. Perbedaan antara notasi Oracle plus (+) dan notasi ANSI JOIN?

  4. Cara menguji koneksi ke Oracle Database menggunakan Java

  5. PHP OCI, Oracle, dan format angka default