ORA-08103: object no longer exists
Author JP Vijaykumar
Date March 8th 2017

Recently, I worked on an issue,while executing a select on a view,
it failed with error "ORA-08103: object no longer exists"

select count(*) from MY_VIEW where companion_id='SETTLE';

Performed troubleshooting with no luck.

In the meantime, I researched on work around for the issue, and the following methods worked
successfully.

connect saketh/veeksha

01) --USE PARALLEL HINT IN THE SELECT QUERY
select /*+ parallel(a 2)*/ count(*) from MY_VIEW a where companion_id='SETTLE';


COUNT(*)
----------
44036

Elapsed: 00:01:42.67

02) --THE VIEW WAS CREATED ON 4 TABLES + ONE VIEW
--ALTER BASE TABLES' PARALLELISM TO 2

set timing on
select count(*) from MY_VIEW where companion_id='SETTLE';


COUNT(*)
----------
44036

Elapsed: 00:01:46.34

03) --RE-WRITE THE VIEW DEFINITION, TUNING ALL THE TABLE JOINS FOR BETTER THROUGHPUT

04) --LASTLY, THE BASE TABLES ARE HAVING MULTIPLE SINGLE COLUMN BITMAP INDEXES.
--I MADE ALL THE BITMAP INDEXES UNUSABLE, THE QUERY WORKED EXECUTED WITHOUT ERROR  SUCCESSFULLY
--I WILL INVESTIGATE ON THIS WORKAROUND FURTHER

References:
Metalink ID# 8103.1
https://translate.google.com/translate?hl=en&sl=zh-CN&u=http://www.parnassusdata.com/en/node/669%3Flanguage%3Den&prev=search
https://translate.google.com/translate?hl=en&sl=ru&u=http://my-oracle.it-blogs.com.ua/post-510.aspx&prev=search --analyze table validate structure/dbv