Errore numerico o di valore, eh?
Questo è ciò che potrebbe causare il problema:
and equipID = :P3_EquipID;
Che cos'è equipID
tipo di dati? Se è un NUMBER
, prova
and equipID = to_number(:P3_EquipID);
Dato che non è il caso (come hai commentato), questo aiuterebbe?
declare
v_equipid number;
begin
SELECT count(*)
into v_equipid
from equipment
WHERE equipstatus = 'available'
and equipID = :P3_EquipID;
return v_equipid = 1;
end;