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

PLS-00382:ekspresi bertipe salah dengan menjalankan fungsi dan mencoba memasukkan tipe kembali ke dalam variabel

Anda mendeklarasikan tipe record, tipe koleksi/tabel dan fungsi semua dalam paket yang sama.

Saat Anda memanggil fungsi, Anda harus menggunakan jenis yang sama, dari paket itu.

Tapi tidak. Ini memiliki struktur yang sama - bidang dan tipe data - tetapi tidak sama sejauh menyangkut Oracle. Oracle perlu tahu bahwa tepat jenis yang sama sedang digunakan, sebagian sehingga dapat melacak ketergantungan antar objek.

Blok anonim Anda perlu merujuk ke jenis paket, daripada mendeklarasikannya sendiri - serupa tetapi bertentangan - jenis:

DECLARE
    managers hr_package.managers_table_type;
BEGIN
    managers := hr_package.managers_multiple_departments;
END;

Sebagai bonus, ini melibatkan lebih sedikit pengetikan, dan berarti Anda tidak perlu mengelola jenis duplikat.

Ini juga berarti bahwa deklarasi tipe harus dalam spesifikasi paket - yang merupakan kasus untuk apa pun yang Anda inginkan agar terlihat secara publik, tentu saja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan Tanggal ke Oracle

  2. Oracle - Cara menegakkan aturan pada hubungan tergantung pada catatan atribut (contoh sederhana)

  3. Mengoptimalkan kueri Oracle

  4. ORA-29024:Kegagalan validasi sertifikat

  5. Mengoptimalkan kueri SELECT yang berjalan lambat di Oracle yang berjalan cepat di SQL Server