Error en vistas al exportar un esquema

Al ejecutar un expdp de un esquema en una base de datos Oracle se presenta un error con las vista ya que no pasan completas!, algunas vistas complejas, anidadas, o con caracteres especiales en los alias de la columna no pasan!, después de "lidiar" con este problema muchas veces me toco resolverlo con un script que puedes ejecutar después de hacer tu export del esquema. - como no lo encontré aquí te va -

Exportar los script de las vistas de un esquema
--Este procedimiento exporta los scripts de creación de las vistas de un esquema/usuario
--Versión 1.0 by csrbrr

--Preliminares--
otorgar permisos al usuario para ejecutar utilidad de archivos
como sys as sysdba

grant execute on utl_file to iprop;
--donde iprop es el dueño del esquema.

--ruta por defecto en XE (para salida del archivo)
--C:\oraclexe\app\oracle\admin\XE\dpdump
--directorio de salida por defecto: DATA_PUMP_DIR

Procedimiento: 

1. Iniciar la variable p_esquema:='NombreEsquema'
donde NombreEsquema es el dueño de las vistas que quiere exportar.
ejemplo: p_esquema varchar2(15):='IPROP';

2. Ejecutar programa en modo anónimo
desde sqlplus o desde SQLDeveloper.

3. El script:
-------------
declare
  p_esquema varchar2(15):='IPROP';
  v_file utl_file.file_type;
  err_file utl_file.file_type;
  v_filename varchar2(60);
  v_linea    varchar2(500);
  ------------------------------
  cursor c_view
  is
    select view_name,
      text_length,
      text
    from sys.dba_views
    where owner=p_esquema;
  ---------------------------------
  procedure esc(v_linea in varchar2) as
  begin
    utl_file.put_line(v_file,v_linea);
  end;
  ---------------------------------

begin

  v_filename := 'VIEW_'||p_esquema||'.txt';
  --directorio por defecto para el caso de XE
  v_file := utl_file.fopen('DATA_PUMP_DIR',v_filename,'W',250);
  --encabezado
  esc('---------------------------------------');
  esc('--Export View');
  esc('--Esquema: '||p_esquema);
  esc('--Versión: '||to_char(sysdate,'DD/Month/YYYY HH:MI PM'));
  esc('--by csrbrr');
  esc('---------------------------------------');
  --detalle
  for x in c_view
  loop
    esc('CREATE OR REPLACE VIEW '||x.view_name||' AS');
    esc(x.text||';');
    esc('/');
  end loop;
  utl_file.fclose(v_file);

end;

--Recoger el archivo generado en:
--C:\oraclexe\app\oracle\admin\XE\dpdump\
--Final.



Comentarios

Entradas populares de este blog

Buenas Practicas Diseño/Modelado Base de Datos

Instalación y Configuración de APEX 5.0.4 - Completo -

Extraer palabras de un texto ó párrafo

Visitas.