You may be mixing-up regular views with materialized views.
You can't index a plain old view:
create table t (
c1 int
);
create or replace view vw as
select * from t;
insert into t values ( 1 );
select * from vw;
C1
1
create index i on vw ( c1 );
ORA-01702: a view is not appropriate here
All it does is store the text of the query. Not the data it returns. Querying a view is the same as running the query within it.
On the other hand, a materialized view does store the result of the query. This you
can index. And have to refresh to see changes in the underlying tables:
create materialized view mv as
select * from t;
create index i on mv ( c1 );
insert into t values ( 2 );
commit;
select * from mv;
C1
1
exec dbms_mview.refresh ( 'MV', 'C' );
select * from mv;
C1
1
2
But the index only exists on the MV. Not the table:
select table_name, index_name
from user_indexes
where table_name in ( 'T', 'MV' );
TABLE_NAME INDEX_NAME
MV I