could be a slow or bad 02 sensor, i usually find when i get 02 control codes and theres no other problem like a air leak or bad temp sensor the sensor is probably tired and getting slow, once it throws the 02 control code the computer will ignore the sensor inputs and run off a preset safe fueling map, if you have access to a graphing multi meter you can test the sensor a analog/digital meters display doesn't react fast enough, if not it would be cheeper to just replace the two sensors then to buy a meter to test and find out that the sensor/sensors are bad. chances are if they have much over 100k miles on them they need to be replaced anyway and are costing you power and mpg, the easy way to test for air leaks is spray around the intake with carb cleaner while it's idling, try it cold and hot looking for a change in the idle
all america wants is cold beer warm cat and a place to take a poop with a door on it