Problemas al ejecutar jobs simultanemente en 11g

Estoy usando jobs para extraer información de varias base de datos remotas atrvez de un dblink para cada base. Los jobs los mando ejecutar desde un shell de unix. El problema que se me presenta es que al principio lo haci de manera simultanea y el proceso tardaba minutos en terminar de un tiempo para acá el proceso se ha vuelto muy lento y veo que la información se la trae de una por una cuando antes lo hacia de manera simultanea. ¿Qué puede ser?

1 Respuesta

Respuesta
1
Todo depende de lo que estés haciendo, y la manera en que tengas configurado el dblink
Puedes ser más especifico, y si puedes me envías la instrucción que estas ejecutando, ¿para poderte ayudar?
Mientras... revisa si ha habido un cambio an las claves primarias de lo que estas trayendo.
Gracias por contestar oraphp, el esquema que manejo es de una base de datos central voy por información de 2 tablas a varias bases de datos remotas, posteriormente a esto se ejecuta otro proceso que actualiza de la base central a las bases remotas varias tablas pero este proceso en ocasiones se ejecuta y en otras no, cuando no se ejecuta no marca ningún error.
Valide las claves primarias pero estas no han cambiado, te anexo el proceso que utilizo
procedure spinsertadatos_ttp_eje(sql_dblink     in varchar2, sql_trama in varchar2);
procedure spinsertadatos_ttp_ate(sql_dblink     in varchar2, sql_trama in varchar2, fecha_inicio date);
procedure spinsertadatos_ttp_ate_mot(sql_dblink in varchar2, sql_trama in varchar2, fecha_inicio date);
procedure spinsertadatos_ttp_eje_edo(sql_dblink in varchar2, sql_trama in varchar2, fecha_inicio date);
procedure spinserta_tt_procesa(sql_trama in varchar2, fecha_inicio date);
end insercion_tturno;
/
create or replace package body admtomtur.insercion_tturno as
procedure spinsertadatos_ttp_eje(sql_dblink in varchar2, sql_trama in varchar2)
is
sql_cadena varchar2(1000);
sql_aux varchar2(4);
cursor_id       number;
sql_dummy       integer;
sql_proceso     varchar2(5);
sql_fecha_inf   varchar2(10);
sql_codigo      varchar2(5);
sql_descrip     varchar2(50);
sql_fecha_hoy   varchar2(10);
fecha_ini                date;
sql_mensaje     varchar2(100);
sql_namedir        varchar2(60) := 'dir_tt';
sql_namefile_bita  varchar2(15) := 'tturno.log';
sql_buffer         varchar2(3000);
sql_file_bita      utl_file.file_type;
my_exception_bita_audi exception;
sin_conexion exception;
pragma exception_init (sin_conexion, -12514);
partition_key exception;
pragma exception_init (partition_key, -14400);
extend_index exception;
pragma exception_init (extend_index, -01654);
null_value exception;
pragma exception_init (null_value, -01400);
connect_timeout exception;
pragma exception_init (connect_timeout, -12170);
tns_could_not_resolve_connect exception;
pragma exception_init (tns_could_not_resolve_connect, -12154);
tns_receptor exception;
pragma exception_init (tns_receptor, -12541);
            begin
    sql_file_bita       := utl_file.fopen(sql_namedir,sql_namefile_bita,'a');
    if not utl_file.is_open(sql_file_bita)  then
       raise  my_exception_bita_audi;
    end if;
    sql_buffer := 'entrando spinsertadatos_ttp_eje trama: >'||sql_trama||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    sql_aux        := substr(sql_trama,1,4);
    sql_proceso    := substr(sql_trama,5,5);
    sql_fecha_inf  := substr(sql_trama,10,10);
    sql_cadena    := 'insert into ttp_eje (select id_eje, ejecutivo from ttp_eje@'||sql_dblink||' where id_eje not in (select id_eje from ttp_eje))';
              cursor_id := dbms_sql.open_cursor;
              dbms_sql.parse(cursor_id, sql_cadena, dbms_sql.native);
              sql_dummy     := dbms_sql.execute(cursor_id);
   --commit;
   sql_buffer := 'inserto ttp_eje sucursal: >'||sql_aux||'< fecha de inf: >'||sql_fecha_inf||'< no proceso: >'||sql_proceso||'<';
   utl_file.put_line(sql_file_bita,sql_buffer);
   utl_file.fflush(sql_file_bita);
   utl_file.fclose(sql_file_bita);
   dbms_sql.close_cursor(cursor_id);
   fecha_ini := sysdate;
   spinsertadatos_ttp_ate(sql_dblink, sql_trama, fecha_ini);
exception
when no_data_found then
            raise_application_error( -20301 , '@insercion_tturno.spinsertadatos_ttp_eje: no existen datos a procesar@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: no existen datos a procesar@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
when invalid_cursor then
            raise_application_error( -20302 , '@insercion_tturno.spinsertadatos_ttp_eje: cursor invalido@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: cursor invalido@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when not_logged_on then
            raise_application_error( -20303 , '@insercion_tturno.spinsertadatos_ttp_eje: desconexin o no estß firmado en la base de datos@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when login_denied then
            raise_application_error( -20304 , '@insercion_tturno.spinsertadatos_ttp_eje: acceso denegado@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
when timeout_on_resource then
            raise_application_error( -20305 , '@insercion_tturno.spinsertadatos_ttp_eje: se ha agotado el tiempo de espera@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: se ha agotado el tiempo de espera@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when dup_val_on_index then
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje: se intent insertar un valor duplicado@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
    sql_codigo := substr(sqlerrm,5,5);
    sql_descrip := sql_codigo||substr(sqlerrm,10,45);
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when sin_conexion or connect_timeout or tns_could_not_resolve_connect or tns_receptor then
    --sql_buffer := 'insercion_tturno.spinsertadatos_ttp_eje: ' || sqlcode || ' descripcion: ' || sqlerrm;
    utl_file.fflush(sql_file_bita);
    utl_file.put_line(sql_file_bita,'@insercion_tturno.spinsertadatos_ttp_eje: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'<');
    utl_file.fflush(sql_file_bita);
    rollback;
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '12514' or sql_codigo = '12170' or
       sql_codigo = '12154' or sql_codigo = '12541' then
       sql_descrip := sql_codigo||': error al conectarse a la base de datos';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when partition_key or extend_index or null_value then
            if dbms_sql.is_open(cursor_id) then
       dbms_sql.close_cursor(cursor_id);
    end if;
    rollback;
    utl_file.put_line(sql_file_bita,'insercion_tturno.spinsertadatos_ttp_eje: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'< error: > '||sqlcode||'< descripcion: >'||sqlerrm||'<');
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '14400' then
       sql_descrip := sql_codigo||': error de particion en la base de datos';
    elsif sql_codigo = '01654' then
       sql_descrip := sql_codigo||': error en indice';
    elsif sql_codigo = '01400' then
       sql_descrip := sql_codigo||': intento de insercin de un valor nulo';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when others then
            raise_application_error( -20306 , '@insercion_tturno.spinsertadatos_ttp_eje:' || sqlerrm || '@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje >'||sqlerrm||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
     sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje >'||sqlerrm||'< punto de venta >'||sql_aux||'<';
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     sql_codigo := substr(sqlerrm,5,5);
     sql_descrip := sql_codigo||substr(sqlerrm,10,25);
     sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
     sql_buffer := sql_mensaje;
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     utl_file.fclose(sql_file_bita);
     fecha_ini := sysdate;
     insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
     sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
     sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
     insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
end spinsertadatos_ttp_eje;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure spinsertadatos_ttp_ate(sql_dblink in varchar2, sql_trama in varchar2, fecha_inicio date)
Is
sql_formato_fecha varchar2(10) := 'dd-mm-yyyy';
sql_cadena varchar2(1000);
sql_aux varchar2(4);
cursor_id       number;
sql_dummy       integer;
sql_proceso     varchar2(5);
sql_fecha_inf   varchar2(10);
sql_codigo      varchar2(5);
sql_descrip     varchar2(50);
sql_fecha_hoy   varchar2(10);
fecha_ini                date;
sql_mensaje     varchar2(100);
sql_namedir        varchar2(60) := 'dir_tt';
sql_namefile_bita  varchar2(15) := 'tturno.log';
sql_buffer         varchar2(3000);
sql_file_bita      utl_file.file_type;
my_exception_bita_audi exception;
sin_conexion exception;
pragma exception_init (sin_conexion, -12514);
partition_key exception;
pragma exception_init (partition_key, -14400);
extend_index exception;
pragma exception_init (extend_index, -01654);
null_value exception;
pragma exception_init (null_value, -01400);
connect_timeout exception;
pragma exception_init (connect_timeout, -12170);
tns_could_not_resolve_connect exception;
pragma exception_init (tns_could_not_resolve_connect, -12154);
tns_receptor exception;
pragma exception_init (tns_receptor, -12541);
            begin
    sql_file_bita       := utl_file.fopen(sql_namedir,sql_namefile_bita,'a');
    if not utl_file.is_open(sql_file_bita)  then
       raise  my_exception_bita_audi;
    end if;
    sql_buffer := 'entrando spinsertadatos_ttp_ate trama: >'||sql_trama||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    sql_aux        := substr(sql_trama,1,4);
    sql_proceso    := substr(sql_trama,5,5);
    sql_fecha_inf  := substr(sql_trama,10,10);
    sql_cadena    := 'insert into ttp_ate (select id_oficina, id_serie, turno, fh_emi, id_eje, id_seriem, id_esc, turnoo, id_serieo, perdido, valor,';
    sql_cadena    := sql_cadena||' tpo_esp, tpo_lla, tpo_ate, fh_llama, fh_ateini, fh_atefin, id_cliente, cliente';
    sql_cadena    := sql_cadena||' from ttp_ate@'||sql_dblink||' where to_char(fh_emi,';
    sql_cadena := sql_cadena||''''||sql_formato_fecha||''''||') = ';
    sql_cadena := sql_cadena||''''||sql_fecha_inf||''''||' and id_oficina = '''||sql_aux||''')';
              cursor_id := dbms_sql.open_cursor;
              dbms_sql.parse(cursor_id, sql_cadena, dbms_sql.native);
              sql_dummy     := dbms_sql.execute(cursor_id);
   --commit;
   sql_buffer := 'inserto ttp_ate informacin faltante';
   utl_file.put_line(sql_file_bita,sql_buffer);
   utl_file.fflush(sql_file_bita);
   utl_file.fclose(sql_file_bita);
   dbms_sql.close_cursor(cursor_id);
   fecha_ini := sysdate;
   spinsertadatos_ttp_ate_mot(sql_dblink, sql_trama, fecha_ini);
exception
when no_data_found then
            raise_application_error( -20307 , '@insercion_tturno.spinsertadatos_ttp_ate: no existen datos a procesar@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: no existen datos a procesar@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
when invalid_cursor then
            raise_application_error( -20308 , '@insercion_tturno.spinsertadatos_ttp_ate: cursor invalido@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: cursor invalido@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when not_logged_on then
            raise_application_error( -20309 , '@insercion_tturno.spinsertadatos_ttp_ate: desconexin o no estß firmado en la base de datos@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when login_denied then
            raise_application_error( -20310 , '@insercion_tturno.spinsertadatos_ttp_ate: acceso denegado@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
when timeout_on_resource then
            raise_application_error( -20311 , '@insercion_tturno.spinsertadatos_ttp_ate: se ha agotado el tiempo de espera@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: se ha agotado el tiempo de espera@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
when dup_val_on_index then
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate: se intent insertar un valor duplicado@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
    sql_codigo := substr(sqlerrm,5,5);
    sql_descrip := sql_codigo||substr(sqlerrm,10,45);
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when sin_conexion or connect_timeout or tns_could_not_resolve_connect or tns_receptor then
    --sql_buffer := 'insercion_tturno.spinsertadatos_ttp_ate: ' || sqlcode || ' descripcion: ' || sqlerrm;
    utl_file.fflush(sql_file_bita);
    utl_file.put_line(sql_file_bita,'@insercion_tturno.spinsertadatos_ttp_ate: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'<');
    utl_file.fflush(sql_file_bita);
    rollback;
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '12514' or sql_codigo = '12170' or
       sql_codigo = '12154' or sql_codigo = '12541' then
       sql_descrip := sql_codigo||': error al conectarse a la base de datos';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when partition_key or extend_index or null_value then
            if dbms_sql.is_open(cursor_id) then
       dbms_sql.close_cursor(cursor_id);
    end if;
    rollback;
    utl_file.put_line(sql_file_bita,'insercion_tturno.spinsertadatos_ttp_ate: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'< error: > '||sqlcode||'< descripcion: >'||sqlerrm||'<');
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '14400' then
       sql_descrip := sql_codigo||': error de particion en la base de datos';
    elsif sql_codigo = '01654' then
       sql_descrip := sql_codigo||': error en indice';
    elsif sql_codigo = '01400' then
       sql_descrip := sql_codigo||': intento de insercin de un valor nulo';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when others then
            raise_application_error( -20312 , '@insercion_tturno.spinsertadatos_ttp_ate:' || sqlerrm || '@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate >'||sqlerrm||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
     sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate >'||sqlerrm||'< punto de venta >'||sql_aux||'<';
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     sql_codigo := substr(sqlerrm,5,5);
     sql_descrip := sql_codigo||substr(sqlerrm,10,25);
     sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
     sql_buffer := sql_mensaje;
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     utl_file.fclose(sql_file_bita);
     fecha_ini := sysdate;
     insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
     sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
     sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
     insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
end spinsertadatos_ttp_ate;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure spinsertadatos_ttp_ate_mot(sql_dblink in varchar2, sql_trama in varchar2, fecha_inicio date)
Is
sql_formato_fecha varchar2(10) := 'dd-mm-yyyy';
sql_cadena varchar2(1000);
sql_aux varchar2(4);
cursor_id       number;
sql_dummy       integer;
sql_proceso     varchar2(5);
sql_fecha_inf   varchar2(10);
sql_codigo      varchar2(5);
sql_descrip     varchar2(50);
sql_fecha_hoy   varchar2(10);
fecha_ini                date;
sql_mensaje     varchar2(100);
sql_namedir        varchar2(60) := 'dir_tt';
sql_namefile_bita  varchar2(15) := 'tturno.log';
sql_buffer         varchar2(3000);
sql_file_bita      utl_file.file_type;
my_exception_bita_audi exception;
sin_conexion exception;
pragma exception_init (sin_conexion, -12514);
partition_key exception;
pragma exception_init (partition_key, -14400);
extend_index exception;
pragma exception_init (extend_index, -01654);
null_value exception;
pragma exception_init (null_value, -01400);
connect_timeout exception;
pragma exception_init (connect_timeout, -12170);
tns_could_not_resolve_connect exception;
pragma exception_init (tns_could_not_resolve_connect, -12154);
tns_receptor exception;
pragma exception_init (tns_receptor, -12541);
            begin
    sql_file_bita       := utl_file.fopen(sql_namedir,sql_namefile_bita,'a');
    if not utl_file.is_open(sql_file_bita)  then
       raise  my_exception_bita_audi;
    end if;
    sql_buffer := 'entrando spinsertadatos_ttp_ate_mot trama: >'||sql_trama||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    sql_aux        := substr(sql_trama,1,4);
    sql_proceso    := substr(sql_trama,5,5);
    sql_fecha_inf  := substr(sql_trama,10,10);
    sql_cadena    := 'insert into ttp_ate_mot (select id_oficina, id_serie, turno, fh_mot, id_motivo, cantidad';
    sql_cadena    := sql_cadena||' from ttp_ate_mot@'||sql_dblink||' where to_char(fh_mot,';
    sql_cadena := sql_cadena||''''||sql_formato_fecha||''''||') = ';
    sql_cadena := sql_cadena||''''||sql_fecha_inf||''''||' and id_oficina = '''||sql_aux||''')';
              cursor_id := dbms_sql.open_cursor;
              dbms_sql.parse(cursor_id, sql_cadena, dbms_sql.native);
              sql_dummy     := dbms_sql.execute(cursor_id);
   --commit;
   sql_buffer := 'inserto ttp_ate_mot informacin faltante';
   utl_file.put_line(sql_file_bita,sql_buffer);
   utl_file.fflush(sql_file_bita);
   utl_file.fclose(sql_file_bita);
   dbms_sql.close_cursor(cursor_id);
   fecha_ini := sysdate;
   spinsertadatos_ttp_eje_edo(sql_dblink, sql_trama, fecha_ini);
exception
when no_data_found then
            raise_application_error( -20313 , '@insercion_tturno.spinsertadatos_ttp_ate_mot: no existen datos a procesar@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: no existen datos a procesar@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
when invalid_cursor then
            raise_application_error( -20314 , '@insercion_tturno.spinsertadatos_ttp_ate_mot: cursor invalido@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: cursor invalido@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
when not_logged_on then
            raise_application_error( -20315 , '@insercion_tturno.spinsertadatos_ttp_ate_mot: desconexin o no estß firmado en la base de datos@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
when login_denied then
            raise_application_error( -20316 , '@insercion_tturno.spinsertadatos_ttp_ate_mot: acceso denegado@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
              eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
when timeout_on_resource then
            raise_application_error( -20317 , '@insercion_tturno.spinsertadatos_ttp_ate_mot: se ha agotado el tiempo de espera@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: se ha agotado el tiempo de espera@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
when dup_val_on_index then
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot: se intent insertar un valor duplicado@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
    eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
    sql_codigo := substr(sqlerrm,5,5);
    sql_descrip := sql_codigo||substr(sqlerrm,10,45);
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when sin_conexion or connect_timeout or tns_could_not_resolve_connect or tns_receptor then
    --sql_buffer := 'insercion_tturno.spinsertadatos_ttp_ate_mot: ' || sqlcode || ' descripcion: ' || sqlerrm;
    utl_file.fflush(sql_file_bita);
    utl_file.put_line(sql_file_bita,'@insercion_tturno.spinsertadatos_ttp_ate_mot: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'<');
    utl_file.fflush(sql_file_bita);
    rollback;
    eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '12514' or sql_codigo = '12170' or
       sql_codigo = '12154' or sql_codigo = '12541' then
       sql_descrip := sql_codigo||': error al conectarse a la base de datos';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when partition_key or extend_index or null_value then
            if dbms_sql.is_open(cursor_id) then
       dbms_sql.close_cursor(cursor_id);
    end if;
    rollback;
    eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
    utl_file.put_line(sql_file_bita,'insercion_tturno.spinsertadatos_ttp_ate_mot: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'< error: > '||sqlcode||'< descripcion: >'||sqlerrm||'<');
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '14400' then
       sql_descrip := sql_codigo||': error de particion en la base de datos';
    elsif sql_codigo = '01654' then
       sql_descrip := sql_codigo||': error en indice';
    elsif sql_codigo = '01400' then
       sql_descrip := sql_codigo||': intento de insercin de un valor nulo';
    end if;
    sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when others then
            raise_application_error( -20318 , '@insercion_tturno.spinsertadatos_ttp_ate_mot:' || sqlerrm || '@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot >'||sqlerrm||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
    eliminacion_tturno.spelimina_ttp_ate(sql_aux, sql_fecha_inf);
     sql_buffer := '@insercion_tturno.spinsertadatos_ttp_ate_mot >'||sqlerrm||'< punto de venta >'||sql_aux||'<';
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     sql_codigo := substr(sqlerrm,5,5);
     sql_descrip := sql_codigo||substr(sqlerrm,10,25);
     sql_mensaje := sql_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
     sql_buffer := sql_mensaje;
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     utl_file.fclose(sql_file_bita);
     fecha_ini := sysdate;
     insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
     sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
     sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
     insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
end spinsertadatos_ttp_ate_mot;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure spinsertadatos_ttp_eje_edo(sql_dblink in varchar2, sql_trama in varchar2, fecha_inicio date)
Is
sql_formato_fecha varchar2(10) := 'dd-mm-yyyy';
sql_cadena varchar2(1000);
sql_aux varchar2(4);
cursor_id          number;
sql_dummy          integer;
sql_cve_proceso    varchar2(5);
sql_fecha_inf      varchar2(10);
sql_codigo         varchar2(5);
sql_descrip        varchar2(50);
sql_fecha_hoy      varchar2(10);
fecha_ini                   date;
sql_mensaje        varchar2(100);
sql_namedir        varchar2(60) := 'dir_tt';
sql_namefile_bita  varchar2(15) := 'tturno.log';
sql_buffer         varchar2(3000);
sql_file_bita      utl_file.file_type;
my_exception_bita_audi exception;
sin_conexion exception;
pragma exception_init (sin_conexion, -12514);
partition_key exception;
pragma exception_init (partition_key, -14400);
extend_index exception;
pragma exception_init (extend_index, -01654);
null_value exception;
pragma exception_init (null_value, -01400);
connect_timeout exception;
pragma exception_init (connect_timeout, -12170);
tns_could_not_resolve_connect exception;
pragma exception_init (tns_could_not_resolve_connect, -12154);
tns_receptor exception;
pragma exception_init (tns_receptor, -12541);
            begin
     sql_file_bita       := utl_file.fopen(sql_namedir,sql_namefile_bita,'a');
     if not utl_file.is_open(sql_file_bita)  then
        raise  my_exception_bita_audi;
     end if;
    sql_buffer := 'entrando spinsertadatos_ttp_eje_edo trama: >'||sql_trama||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    sql_aux         := substr(sql_trama,1,4);
    sql_cve_proceso  := substr(sql_trama,5,5);
    sql_fecha_inf    := substr(sql_trama,10,10);
    sql_cadena    := 'insert into ttp_eje_edo (select id_oficina, id_eje, evento, fh_eve, id_esc, id_pausa';
    sql_cadena    := sql_cadena||' from ttp_eje_edo@'||sql_dblink||' where to_char(fh_eve,';
    sql_cadena := sql_cadena||''''||sql_formato_fecha||''''||') = ';
    sql_cadena := sql_cadena||''''||sql_fecha_inf||''''||' and id_oficina = '''||sql_aux||''')';
              cursor_id := dbms_sql.open_cursor;
              dbms_sql.parse(cursor_id, sql_cadena, dbms_sql.native);
              sql_dummy     := dbms_sql.execute(cursor_id);
              commit;
    sql_buffer := 'inserto ttp_eje_edo sucursal: >'||sql_aux||'< fecha de inf: >'||sql_fecha_inf||'< no proceso: >'||sql_cve_proceso||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    dbms_sql.close_cursor(cursor_id);
    sql_mensaje := sql_cve_proceso||sql_aux||'0'||'tt-00000'||'sucursal cargada exitosamente';
    utl_file.fclose(sql_file_bita);
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_inicio);
exception
when no_data_found then
            raise_application_error( -20319 , '@insercion_tiras.spinsertadatos_ttp_eje_edo: no existen datos a procesar@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: no existen datos a procesar@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
when invalid_cursor then
            raise_application_error( -20320 , '@insercion_tturno.spinsertadatos_ttp_eje_edo: cursor invalido@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: cursor invalido@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
when not_logged_on then
            raise_application_error( -20321 , '@insercion_tturno.spinsertadatos_ttp_eje_edo: desconexin o no estß firmado en la base de datos@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: desconexin o no estß firmado en la base de datos@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
when login_denied then
            raise_application_error( -20322 , '@insercion_tturno.spinsertadatos_ttp_eje_edo: acceso denegado@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: acceso denegado@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
when timeout_on_resource then
            raise_application_error( -20323 , '@insercion_tturno.spinsertadatos_ttp_eje_edo: se ha agotado el tiempo de espera@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: se ha agotado el tiempo de espera@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
when dup_val_on_index then
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo: se intent insertar un valor duplicado@ >'||sqlcode||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
    sql_codigo := substr(sqlerrm,5,5);
    sql_descrip := sql_codigo||substr(sqlerrm,10,45);
    sql_mensaje := sql_cve_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when sin_conexion or connect_timeout or tns_could_not_resolve_connect or tns_receptor then
    --sql_buffer := 'insercion_tturno.spinsertadatos_ttp_eje_edo: ' || sqlcode || ' descripcion: ' || sqlerrm;
    utl_file.fflush(sql_file_bita);
    utl_file.put_line(sql_file_bita,'@insercion_tturno.spinsertadatos_ttp_eje_edo: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'<');
    utl_file.fflush(sql_file_bita);
    rollback;
              eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '12514' or sql_codigo = '12170' or
       sql_codigo = '12154' or sql_codigo = '12541' then
       sql_descrip := sql_codigo||': error al conectarse a la base de datos';
    end if;
    sql_mensaje := sql_cve_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when partition_key or extend_index or null_value then
            if dbms_sql.is_open(cursor_id) then
       dbms_sql.close_cursor(cursor_id);
    end if;
    rollback;
    eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
    utl_file.put_line(sql_file_bita,'insercion_tturno.spinsertadatos_ttp_ate_mot: detectada como contingente: >'||sql_aux||'< dblink: >'||sql_dblink||'< error: > '||sqlcode||'< descripcion: >'||sqlerrm||'<');
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    sql_codigo := substr(sqlerrm,5,5);
    if sql_codigo = '14400' then
       sql_descrip := sql_codigo||': error de particion en la base de datos';
    elsif sql_codigo = '01654' then
       sql_descrip := sql_codigo||': error en indice';
    elsif sql_codigo = '01400' then
       sql_descrip := sql_codigo||': intento de insercin de un valor nulo';
    end if;
    sql_mensaje := sql_cve_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
    fecha_ini := sysdate;
    insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
    sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
    sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
    insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
when others then
            raise_application_error( -20324 , '@insercion_tturno.spinsertadatos_ttp_eje_edo:' || sqlerrm || '@' );
            if dbms_sql.is_open(cursor_id) then
      dbms_sql.close_cursor(cursor_id);
    end if;
    sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo >'||sqlerrm||'<';
    utl_file.put_line(sql_file_bita,sql_buffer);
    utl_file.fflush(sql_file_bita);
    utl_file.fclose(sql_file_bita);
    rollback;
    eliminacion_tturno.spelimina_ttp_ate_mot(sql_aux, sql_fecha_inf);
     sql_buffer := '@insercion_tturno.spinsertadatos_ttp_eje_edo >'||sqlerrm||'< punto de venta >'||sql_aux||'<';
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     sql_codigo := substr(sqlerrm,5,5);
     sql_descrip := sql_codigo||substr(sqlerrm,10,25);
     sql_mensaje := sql_cve_proceso||sql_aux||'1'||'tt-'||sql_codigo||sql_descrip;
     sql_buffer := sql_mensaje;
     utl_file.put_line(sql_file_bita,sql_buffer);
     utl_file.fflush(sql_file_bita);
     utl_file.fclose(sql_file_bita);
     fecha_ini := sysdate;
     insercion_tturno.spinserta_tt_procesa(sql_mensaje, fecha_ini);
     sql_fecha_hoy := to_char(sysdate,'dd-mm-yyyy');
     sql_mensaje := sql_aux||sql_fecha_inf||sql_fecha_hoy||'000'||rpad(sql_descrip,50,' ')||0;
     insercion_succontin.spinsertacon_tt_suc_contin(sql_mensaje);
end spinsertadatos_ttp_eje_edo;
-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
procedure spinserta_tt_procesa(sql_trama in varchar2, fecha_inicio date)
Is
sql_proceso...
Mirando tu código no veo que el problema esté en el (aunque si se ve que exige bastante de la conexión que estés utilizando), de otra manera no te habría funcionado antes, pero ahora me dices que el proceso se ejecuta unas veces si y otras no, lo que me hace pensar en el ancho de la banda que estas utilizando, te comento que ese dato es clave, ya que oracle no te va a informar nada por tratarse de una base de datos externa.
Revisa por favor lo siguiente:
1. Ancho de banda
2.Si se ha instalado un firewall que esté demorando el proceso de listener y se cae el servicio de la base de datos.
3.El estado de los paquetes, si de pronto alguno de esos paquetes o una de las vistas si utilizas alguna no esté descompilada
Intenta también borrar el dblink y volverlo a crear, en ocasiones me ha funcionado esto y (eso si... no preguntes porque... los sistemas son misteriosos.. a veces parece que hasta pensaran en nuestra contra...)
Gracias validare los puntos que me comentas, solo una duda hoy por la mañana revisando los logs de los procesos veo que cuando no se ejecutan los procesos es debido a que hay jobs que están atorados, ¿sera por lo mismo?
Es muy posible, porque oracle te garantiza integridad en los datos, y si hay un trabajo previo que no se ha terminado, podría darte un estado inconsietente de la base de datos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas