I had the same codes P0138 in my case. "oxygen sensor maintained above
the normal operating range" It was the upstream sensor on my 5.2 L.
I bought them from Ebay motors (Denso) which had the 4 pin connectors
to match up with the Dakota ones. They were quite reasonable ($30 a
piece, so I bought 2 since my truck has a crossover exhaust and only
uses a upstream (before the cat) and a downstream (after the cat).
Changing them out, I discovered that even both sensors are the same,
the connector indexing is not the same. I got two upstream sensors,
one fit the connector index on the upstream, but the other connector
on the second 02, did not fit the index on the downstream 02 connector.
I had to get the mechanic to order a new 02 to fit that at much higher cost,
since the truck was on the hoist already at the time.
(Now I have a spare O2 for the upstream position, should it fail again. )
These sensors eventually get contaminated so the voltage they
produce is "out of range" within the programme specified within
the PCM. When that happens, the PCM just ignores the sensor
o/p and goes into open loop..which in most cases means a slightly
richer fuel mixture (14.7:1) and higher fuel consumption as a result.
The downstream sensor is just used by the PCM to cross check the
data on the upstream, to allow the PCM to determine if the upstream
is out of range.
I decided to change out both 02 sensors on mine since the truck
was 13 years old, and the check engine light kept coming back,
even though I would reset the code.
2003, 4.7, club cab sport. My code came up as bank 1 sensor 2 so I bought a downstream one to install. Climbed underneath and there is no cat on the driver's or passenger sides as in all the photos and diagrams I have seen, there is only one and it is further back after the two pipes merge. At that location there is an up and downstream sensor so I replaced the downstream. Have not reset the code yet or run it for any length of time. Am I missing something with the 2 banks and the location of the sensors? Thanks