Je pense qu'en simplifiant la requête vous avez supprimé la véritable cause du bug :-)
Quelle version d'oracle utilises-tu ? Oracle 10g ( 10.2.0.1.0 ) donne :
create table parts (ptno number , ptnm number , catcd number);
create table CATEGORIES (catcd number);
select PTNO,PTNM,CATCD from PARTS
left join CATEGORIES on (CATEGORIES.CATCD=PARTS.CATCD);
J'obtiens ORA-00918 :colonne définie de manière ambiguë