rb, I realise it's a little late now, but a couple of things that I've found useful:
If you 'bind_param' before you 'execute', then you get to find out whether it's the executing or the binding which is failing, and if it's the binding, which binding.
Oracle lets you use numbered placedholders - this can be convenient.