Does the SELECT return any rows?
Syntactically the join is correct now, but logically?
Maybe you have to use some Outer Joins instead, but you must know if the result set is correct or not...
How long does the SELECT run?
What's the Explain/DDL/statistics of the tables?
Running out of spool is a bit strange, there must have been some additional sessions by the same user using spool.
There are lots of "no confidence" retrieve steps, indicating missing statistics. The number of rows is overestimated by a factor of 10000.
Which stats are defined and what's the PI/partitioning?