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

Kesalahan pengidentifikasi tidak valid untuk v_MONTH dalam kueri dinamis

Karena Anda menyusun pernyataan SQL sebagai string, mesin PLSQL TIDAK menggantikan nama variabel (hanya bagian dari string literal), oleh karena itu mesin SQL melihat string 'V_MONTH' tetapi tidak ada kolom dengan nama itu sehingga pengidentifikasi tidak valid . Jika Anda tetap menggunakan SQL dinamis, Anda harus melakukan substitusi nilai sendiri. Hal yang sama juga berlaku untuk variabel lainnya. Jadi:

  EXECUTE IMMEDIATE UTL_LMS.FORMAT_MESSAGE(
  'UPDATE /*+ index(a LEDGER_STAT_DLY_IDX02_IN) */ LEDGER_STAT_DLY A
      SET %s =  NVL(%s,0) + NVL(%s ,0)
    WHERE IDENTITY_CODE =  NVL(%s ,0)
      AND YEAR_S =  NVL(%s ,0)
      AND MONTH_NO = NVL(%s ,0)'
     ,V_TARGET_COLUMN, V_TARGET_COLUMN ,V_AMOUNT,V_IDENTITY_CODE,V_YEAR_S,V_MONTH);

Anda mungkin juga perlu melakukan konversi format yang diperlukan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 40 pertanyaan yang harus Anda ketahui tentang R12.2

  2. Oracle 10g Connect By Sebelumnya - Masalah Performa

  3. Gabungkan node XMLType dalam kueri Oracle

  4. Rutin yang Ditentukan Pengguna dengan DBMS_STATS, Bagian II

  5. Kapan sinonim basis data digunakan?