Ich denke, durch die Vereinfachung der Abfrage haben Sie die eigentliche Ursache des Fehlers beseitigt :-)
Welche Oracle-Version verwendest du? Oracle 10g ( 10.2.0.1.0 ) ergibt:
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);
Ich erhalte ORA-00918:Spalte mehrdeutig definiert