I am very sorry to hear about this Richard!
I had the same issue...
The way I got around this was to create a trigger on an input table in
Oracle to fire off the SP. the table should hold all variables the SP needs
and the trigger should pass those values. on the Oracle side you need to
have the SP load a results table and you need to use openquery to retrieve
the data from the results table.
Real PITA but it works well.
I can't help you with the Oracle side but I can help you with the SQL piece.