Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Unusable partition index -- working funny

Re: Unusable partition index -- working funny

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: Wed, 21 Jan 2004 00:24:25 -0800
Message-ID: <F001.005DDB13.20040121002425@fatcity.com>

It's probably the case that the trigger fires the first time - but at parse/optimise time Oracle had already determined the sequence of actions needed to execute the statement based on the then session state, so that sequence is played out, irrespective of the fact that you changed the session state in the middle of the sequence.

By analogy, consider an update to an
updatable join view which defaults to
using a hash join. If you create a "before row update" trigger to disable hash joins, would you expect Oracle to not do a hash join the first time the statement executes ?

Regards

Jonathan Lewis
http://www.jlcomp.demon.co.uk

  The educated person is not the person
  who can answer the questions, but the
  person who can question the answers -- T. Schick Jr

Next public appearance2:
 March 2004 Hotsos Symposium - Keynote
 March 2004 Charlotte NC - OUG Tutorial
 April 2004 Iceland

One-day tutorials:
http://www.jlcomp.demon.co.uk/tutorial.html

Three-day seminar:
see http://www.jlcomp.demon.co.uk/seminar.html ____UK___February

The Co-operative Oracle Users' FAQ
http://www.jlcomp.demon.co.uk/faq/ind_faq.html

> Hello All,
> I have a strange problem...
> I have a table on which i am doing an update. Its a partition table and
> the local index on the column which is being updated is in an unusable
> state.
> I have a database trigger at statement level (before update of col_a for
> ....) where i do an execute immediate ' alter session set
> skip_unusable_indexes = true';
>
> i log into sqlplus as the owner of the table and do the following
> ----------------------------------------------------------------
>
> SQL> connect nevadmin_at_nv_prod
> Enter password: ******
> Connected.
> SQL> UPDATE nevadmin.DM_MORTGAGE_LOAN_HIST SET ORIGINATION_SOURCE_KEY =
> 11111 where
> 2 mortgage_loan_key = 11111 and period_key = '30-JUN-03';
> UPDATE nevadmin.DM_MORTGAGE_LOAN_HIST SET ORIGINATION_SOURCE_KEY =
> 1166444 where
> *
> ERROR at line 1:
> ORA-01502: index 'NEVADMIN.DM_MORTGAGE_LOAN_HIST_BK13' or partition of
> such
> index is in unusable state
>
> SQL> /
>
> 1 row updated.
> --------------------------------------------------------------------------



>
> My question is why does the trigger not fire for the first time...
> When i do the / i am able to update the table which means the trigger is
> firing the 2nd time.
>
> Any help would be greatly appriciated..
>
> thanks,
>
> sathish.
>
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jonathan Lewis
  INET: jonathan_at_jlcomp.demon.co.uk

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Wed Jan 21 2004 - 02:24:25 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US