Sim, é possível com certeza.
É difícil explicar por que você recebe um erro sem amostras de especificações de pacote, mas em geral, para passar um tipo definido pelo usuário como parâmetro, você deve usar definir tipo DDL , ou definindo o tipo na especificação do pacote.
Suponho que você queira a última variante :)
Então aqui vai um exemplo:
create or replace package TestPackage_1
as
type TTestType is table of varchar2(1) index by varchar2(1);
end TestPackage_1;
/
create or replace package TestPackage_2
as
procedure Dummy(aParam TestPackage_1.TTestType);
end TestPackage_2;
/
Você pode usar
TTestType
digite qualquer bloco PL/SQL, mas não em SQL.