-
Bug
-
Resolution: Done
-
Major
-
3.0.4.Final
-
None
-
False
-
None
-
False
-
-
The ReselectColumnPostProcessor relies on the Flashback Area to capture the column state for a change vector, but if the SCN when the change occurred has since aged from the undo retention and flashback area, the connection will use a fallback query to fetch the data out of bands.
The problem is when the connection uses a PDB, the first call to the reselect helper method shifts the connection into the pluggable database; however, upon the error, it calls the same method again, attempting to re-execute
ALTER SESSION SET CONTAINER=<pdb_name>
This results in the ORA-01003 error as the session is already in the PDB.
We should sanity check the `setsSessionToPdb` method by first querying the current container state before attempting to ALTER, optionally logging a warning/debug message when we're already in the PDB, i.e.:
SELECT SYS_CONTEXT('USERENV','CON_NAME') FROM DUAL
If the result of this query matches the PDB name, we skip the ALTER.