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.