What does Oracle impdp do when a name clashes with a materialized view or synonym?
Naming conflicts will result in an error and generally cause the object in the datapump file to be skipped. This can lead to all sorts of other dependency issues. The simplest way to avoid that is to drop the target application schema/account entirely and recreate it, using a script like the one here: https://oracle-base.com/dba/script?category=script_creation&amp;file=user_ddl.sql to construct the right user DDL for the user in the target database, or by including the application schema definition in the datapump file and letting datapump create it for you. So...
Step 1: run the script to get the create user DDL.
Step 2: drop the user using the cascade option to drop all objects.
Step 3: run the user DDL script from step 1 to recreate the schema, assuming the password is different or there are any other differences between production and development that you need to preserve.
Step 4: run impdp to load all of the schema objects. If datapump tries to create the schema and it already exists it will throw an error, but you can ignore it.
For your second question, materialized views have two parts: a table with data, and the materialized view definition, which includes the query. Both - the table with data and the definition of the MV - are replicated with datapump when you copy a schema.