Los dos problemas que planteas (importar datos a una tabla existente y/o borrar datos antes de importar) se pueden resolver con el parámetro del import TABLE_EXISTS_ACTION, donde los valores posibles son:
SKIP: Si la tabla existe, el import no hace nada y pasa a la tabla siguiente. Esto es útil cuando se quiere importar tablas nuevas sobre un modelo dado sin modificar los datos existentes.
APPEND: Si la tabla existe y tiene datos, el import agrega o suma las filas del .dmp sin modificar las existentes. Esto es útil en modelos tipo data warehouse o de datos históricos.
TRUNCATE: Si la tabla existe y tiene datos, el import borra las filas existentes y después carga las filas del .dmp. Este parece ser el parámetro que soluciona tu problema, está para reemplazar los datos en casos donde la estructura de la tabla se mantiene.
REPLACE: Si la tabla existe, el import elimina la tabla existente (drop table), y después crea la tabla y carga las filas según la definición del .dmp. Esto es útil cuando se necesita reemplazar los datos y además cambia la estructura de la tabla (ej: se agrega o elimina una columna).
En primer lugar, prueba con:
Código:
IMPDP ORSYSTEM/B6J4RR0N
DIRECTORY=BACKUP_ORACLE
DUMPFILE=%FECHA%.dmp
TABLE_EXISTS_ACTION=TRUNCATE
Pero en caso de tener problemas con el truncate, ya que tiene limitaciones si las tablas están relacionadas con constraints tipo FK/PK, prueba con los siguientes pasos (siempre conectado a la base con el usuario propietario de las tablas):
1. Disable de las constraints tipo FK
Código:
begin
for rec in (select table_name, constraint_name
from user_constraints
where constraint_type = 'R') loop
execute immediate 'alter table ' || rec.table_name ||
' disable constraint ' || rec.constraint_name;
end loop;
end;
/
2. Delete de las filas
Código:
begin
for rec in (select table_name from user_tables) loop
execute immediate 'delete from ' || rec.table_name;
commit;
end loop;
end;
/
3. Import con append
Código:
IMPDP ORSYSTEM/B6J4RR0N
DIRECTORY=BACKUP_ORACLE
DUMPFILE=%FECHA%.dmp
TABLE_EXISTS_ACTION=APPEND
4. Enable de las constraints FK
Código:
begin
for rec in (select table_name, constraint_name
from user_constraints
where constraint_type = 'R') loop
execute immediate 'alter table ' || rec.table_name ||
' enable validate constraint ' || rec.constraint_name;
end loop;
end;
/
Saludos