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.
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