Damn codes. Codes don't tell you what part is wrong, they tell you what part is sending an error code. There is a go/no go diagnostic tree that goes along with each code. You can get an O2 code because of a vacuum leak(leans out the mixture, O2 sensor tries to compensate...can't anymore, so it sets a code). Anyway, you can waste your money replacing parts, or you can get ahold of the diagnostic tree, a good, high-tech mechanic should be able to help you out here.