This may possibly do what you want.
After your oracle reader, put in a NullAttributeReplacer factory. Connect the reader to that factory. Also put in a Creator factory and connect that to the NullAttributeReplacer factory. Replace all NULLs with 0.
So that any features that may come from the table do not get NULLs replaced, disable the connection between it and the NullAttributeReplacer. It still needs to be in place so that the NULL replacer knows what attributes to use.
This guarantees that at least a single feature goes through with all the attributes and should be discoverable by pythons getAllAttributeNames. That feature can then be thrown away.

Edit
For FME2014 using the NullAttributeMapper You will need to ensure that you are using Selected Attributes and the ones you want to appear are selected.
For the first condition make sure that Missing is selected.
The Map To: value can be anything other than Missing.
