it just reused the same cursor handle, change the query a teeny tiny bit.
like I did in my original example
ops$tkyte%ORA11GR2> select * from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
ops$tkyte%ORA11GR2> alter session set cursor_sharing = exact /* the default and only correct value! */ ;
Session altered.
ops$tkyte%ORA11GR2> select ',' from dual look_for_me_exact;
'
-
,
ops$tkyte%ORA11GR2> alter session set cursor_sharing = force ;
Session altered.
ops$tkyte%ORA11GR2> select ',' from dual look_for_me_force;
','
--------------------------------
,
ops$tkyte%ORA11GR2> alter session set cursor_sharing = exact /* the default and only correct value! */ ;
Session altered.
ops$tkyte%ORA11GR2> select sql_text from v$sql where sql_text like '% from dual look\_for\_me\_%' escape '\';
SQL_TEXT
-------------------------------------------------------------------------------
select :"SYS_B_0" from dual look_for_me_force
select ',' from dual look_for_me_exact
ops$tkyte%ORA11GR2>