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

ORA-21700:objek tidak ada atau ditandai untuk dihapus untuk Associative Array sebagai parameter input yang dipanggil dari ODP.NET

setelah beberapa hari googling, saya mengubah kodenya dengan cara ini:

CREATE OR REPLACE PACKAGE Support_Data_Types AS
            TYPE ttDate            IS TABLE OF DATE
END Support_Data_Types;
PROCEDURE GetData
(
    tabDates IN SUPPORT_DATA_TYPES.TTDATE,
)
AS
    v_temp SUPPORT_DATA_TYPES.TTDATE:= tabDates;  -- assigned the parameter to a temporary variable
BEGIN
    SELECT count(*) INTO n FROM table(v_temp);
END GetData;

satu-satunya hal yang saya lakukan adalah menggunakan v_temp yang terlihat cukup berlebihan. tapi itu berhasil. Saya membuat perubahan ini karena saya mencari artikel ini di sini ... disebutkan:

Namun, perhatikan bahwa mulai 12.1, Anda tidak dapat memanggil fungsi tabel secara langsung di dalam operator TABLE. Anda harus memanggilnya di PL/SQL, menetapkan hasil ke variabel, dan kemudian mereferensikan variabel di dalam TABLE.

meskipun situasinya berbeda dalam kasus saya (saya menggunakan 12.2), itu memecahkan masalah saya.




  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 Menghitung Perbedaan Antara Dua Timestamp di Oracle

  2. Oracle MENGEMBALIKAN KE penggunaan di Jawa (JDBC, Pernyataan yang Disiapkan)

  3. ORA-01652:tidak dapat memperpanjang segmen temp sebesar 128 di tablespace SISTEM:Bagaimana cara memperpanjang?

  4. Pertarungan Urutan RAC

  5. Agregasi string Oracle