I've used drain oil on my trucks,it doesnt take long for it to wash off though,unless you use oil drained from diesel engines,the soot in it makes it cling longer and the bit of diesel in it lets it penetrate somewhat better...
Some off roaders I knew used Linseed Oil to coat the undersides of their Jeeps and the frame rails,once it dries it stays on pretty well,and dont need to be re-applied all that often they claimed--said it made mud a lot easier to wash off too..
I would say oiling a truck is easier and probably works better that just paint or undercoating does..it'll creep into areas paint would never see,and at least delay rust longer than paint or undercoating will...and drain oil is FREE too,where as the other 2 choices would cost you...I have seen 60's cars that were serviced at a local gas station since new,and the guy always sprayed the drained oil onto the cars to "get rid of it" ,they still look like new underneath,and most were driven year round too..
One elderly lady's '67 Impala was so clean underneath I'd have sworn it was a southern or arizona car all its life,but it never left Cape Cod!..