Вие декларирате типа на записа, типа колекция/таблица и функцията, всички в рамките на един и същи пакет.
Когато извиквате функцията, трябва да използвате същия тип от този пакет.
Но не е. Той има същата структура - полета и типове данни - но не е същият, що се отнася до Oracle. Oracle трябва да знае това точно същият тип се използва, отчасти за да може да следи зависимостите между обектите.
Вашият анонимен блок трябва да препраща към типовете пакети, вместо да декларира свой собствен - подобен, но противоречив - тип(ове):
DECLARE
managers hr_package.managers_table_type;
BEGIN
managers := hr_package.managers_multiple_departments;
END;
Като бонус включва много по-малко въвеждане и означава, че не е нужно да управлявате дублиращи се типове.
Това обаче също така означава, че декларациите за тип трябва да са в спецификацията на пакета - което важи за всичко, което искате да бъде публично видимо, разбира се.