Wash the surface with warm soapy water and seal the stained area with Polycell Stain Stop (1 litre treats up to 9sq m).
This dries to form a barrier between the stain and the new paint and will stop the oil bleeding through. If you don’t seal the stain, the oil will come through, no matter how many layers of paint you apply. When you apply the Stain Stop, cover a slightly larger area than the stain.
When it’s dry, repaint the whole wall.