Myslím, že zjednodušením dotazu jste odstranili skutečnou příčinu chyby :-)
Jakou verzi oracle používáš? Oracle 10g (10.2.0.1.0) poskytuje:
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);
Dostávám ORA-00918:sloupec nejednoznačně definován