title: How to invalidate a SQL statement in the Oracle SQL area so that a new plan is produced when collecting statistics
body: <p>I have a table and a query (within a PL/SQL packge) accessing that table.  Statistics are collected weekly normally.</p>
  
  <p>A large update has been run on the table, resulting in significantly different data distribution on a particular indexed column.  The query plan used by Oracle (which I can see from <code>v$sqlarea</code>) is sub-optimal.  If I take an <code>explain plan</code> on the same* query from SQL*Plus, a good plan is returned.</p>
  
  <p>I have since collected statistics on the table.  Oracle is still using the query plan that it originally came up with.  <code>v$sqlarea.last_load_time</code> suggests this was a plan generated prior to the statistics generation.  I thought regenerating statistics would have invalidated plans in the SQL cache.</p>
  
  <p>Is there any way to remove just this statement from the SQL cache?</p>
  
  <p>(* Not character-for-character, matches-in-the-SQL-cache same, but the same statement).</p>