Can select from table across db link but cannot create a materialized view

dblink1 is a private db link (it could also be public)
select count(*) from [email protected];
create materialized view v1 as
select * from [email protected];
select * from [email protected];
ERROR at line 2:
ORA-00942: table or view does not exist
This only applies to this particular db link. For another db link called "dblink2",
create materialized view v2 as
select * from [email protected];
Materialized view created.
What gives? dblink1 and dblink2 are 2 different databases on 2 different machines.


This is the simplest cause:
dblink2 points to a database that has not a t1 table (as the message says, the table does not exist)
This is the following simple cause:
dblink2 uses a remote user user2, that can not select the t1 table because it exist in another schema, and user2 has not a synonym to the table (post the result of a query over dba_db_links that shows the remote users). Database objects has name and schema. If the objects are in your own schema you dont need to write the schema name, nor if you has a synonym to the object. But if the table t1 is in another schema, and you write t1, it means user2.t1 and fail.
I hope this helps