lunes, 15 de diciembre de 2014

Después de mucho tiempo

Hola:

Hace mucho tiempo que no escribía nada en este blog  y es extraño como muchas cosas pasan en poco tiempo, antes solía estar escribiendo sobre cosas que me resultaban novedosas y curiosas,  de como es estar enamorado y feliz.

Después de trabajar mucho tiempo (6 años jeje) y conocer a diferentes personas, sigo compartiendo lo poco que se con los que laboro, pero siempre pienso que algún día regresare a este que mi blog y escribiré como antes, antes me gustaba m programar ahora las cosas son diferentes y ya casi no programo, eso no quiere decir que no me guste sino que simplemente la vida cambia y nos tenemos que amoldar y seguir adelante, aprendí algo de mainframe (TWS y JCL) y si nunca hubiera dejado eso que me solía gustar quizás nunca hubiera conocido ese S.O.

No me arrepiento de dejar de programar en Java, PLSQL, Forms, sh, etc.  creo que me han servido de complemento y me han ayudado a ver los sistemas de otra manera, como enfocar eso para hacer mejoras de procesos, hasta ver errores en donde antes hubiera creído que todo estaba bien, creo que hay ocasiones  que tenemos que dejar de voltear atrás y seguir, nunca dejar nada para vuelta esforzamos hoy y creer en este país, en especial esta ciudad que es para mí maravillosa.


Espero que pronto este de vuelta con cosas nuevas o para escribir tontadas... Y para decir que lo siento por no luchar por ti pero sé que estas bien y quiero que nunca te rindas porque yo nunca lo voy hacer...  

lunes, 18 de marzo de 2013

Como re-compilar PROCEDURE,PACKAGE,PACKAGE BODY y FUNCTION en Oracle

Hola :

Cuando creamos campos nuevos en tablas de la base de datos o creamos tablas nuevas, muchos paquetes, procedimientos  y funciones de la base de datos quedan des-compilados debido a la relación que tienen con la nueva creación de objetos, dependiendo el lugar donde trabajen los dba´s se encargan de  re-compilar pero muchas veces no está por demás saberlo así que me puse a investigar una manera de hacerlo espero sea útil.

 Si tienes los suficientes permisos puedes ocupar dba_objects en lugar de all_objects

 /* Hola :-) */
set serverout on;

BEGIN
    FOR compilacion
    IN (  SELECT   'ALTER '
                   || DECODE (object_type,
                              'PACKAGE BODY', 'PACKAGE',
                              object_type)
                   || ' '
                   || owner
                   || '.'
                   || object_name
                   || ' compile '
                   || DECODE (object_type, 'PACKAGE BODY', 'BODY', '')

                       AS com
            FROM   all_objects
           WHERE   owner = 'PRUEBA'
                   AND object_type IN
                              ('PROCEDURE',
                               'PACKAGE',
                               'PACKAGE BODY',
                               'FUNCTION')
                   AND status = 'INVALID'
        ORDER BY   object_id ASC)

    LOOP
        BEGIN

            EXECUTE IMMEDIATE compilacion.com;

            DBMS_OUTPUT.put_line (compilacion.com || ' OK');
        EXCEPTION
            WHEN OTHERS

            THEN
                DBMS_OUTPUT.put_line (compilacion.com);
                DBMS_OUTPUT.put_line (SQLERRM);
        END;
    END LOOP;
END;
/

Saludos.