martes, 4 de abril de 2017

Uso de los LOOPS en Oracle 11g

En PL/SQL podemos salir de un LOOP con la cláusula EXIT. Típicamente la usamos para la condición de salida de un loop:

 BEGIN
   LOOP
       ...  
       EXIT WHEN condición ;
   END LOOP;
   -- el control sigue aquí
   ...
 END;

Ahora la versión 11g agrega un nivel intermedio: CONTINUE. Con esta sentencia, podemos cancelar la iteración del loop actual y pasar a la siguiente, sin abortar el loop. Puede usarse simplemente CONTINUE o CONTINUE WHEN. En este último caso podremos evitar el uso de la sentencia IF para controlar la condición de salida de la iteración.

 BEGIN
   LOOP
     ...
    CONTINUE WHEN condicion;  --vuelve al comienzo del loop

    -- si condicion=true, esta parte no se ejecuta
    ...   END LOOP;
 END;

Oracle: Cómo detectar caracteres extraños o no imprimibles

Muchas veces pasa que en las cargas de datos aparecen caracteres de control como ^M o símbolos ilegibles, y no es deseable que estos queden almacenados entre los datos.
¿Cómo detectar si existen?

Es sencillo si contamos con expresiones regulares en SQL como en 10g, pero en 9i igualmente podemos crear una función que recorra cada uno de los caracteres y verifique si pertenece al juego de caracteres 'raros'.

Esta es una sencilla implementación compatible con todas las versiones de Oracle, pero puede considerarse utilizar compilación condicional para utilizar expresiones regulares cuando sea posible.

Eliminar caracteres no imprimibles en Excel

Muchas veces cuando se importan archivos o alguna información la cual debemos analizar, éstas se añaden con caracteres imprimibles(que son los que se ven) y caracteres no imprimibles, que en su mayoría son invisibles; como los saltos de línea, retornos de carro, y espacios de no separación. Es por ello seria difícil aplicar tan solo con un buscar y reemplazar.
Una manera más práctica es a través de una macro en la que le decimos a Excel que buscar, indicándole los códigos de caracteres para especificar nuestro texto de búsqueda, y con que reemplazar con la función Replace; ya que cada carácter tiene un código ASCII, así como los caracteres invisibles también tienen un código, como por ejemplo:
(Ver imagen en el articulo original, relacionado al final del artículo)
Apliquemos un ejemplo:

Google y YouTube, víctimas de sus anuncios

Empresas europeas y estadounidenses han eliminado sus anuncios de YouTube y Google por aparecer junto a publicidad con contenido sexista, homófobo o que incitan al terrorismo.

AT&T y Verizon han sido las dos últimas empresas que se han unido a la campaña contra YouTube y Google por el contenido ofensivo en los anuncios publicados en las páginas.

Muchas empresas han visto que, junto a sus anuncios, aparecen otros que fomentan el odio, el nacionalismo, la homofobia o la incitación al terrorismo. Las críticas han aumentado para Google y YouTube, los cuales están siendo víctimas de un complot por parte de empresas europeas y estadounidenses para cambiar su imagen publicitaria y evitar este tipo de publicidad con contenido peligroso.

Un portavoz de AT&T afirmó que la empresa está preocupada de que sus anuncios puedan haber aparecido junto a otros que fomenten el odio o que promuevan el terrorismo. "Hasta que Google pueda asegurar que esto no vuelva a ocurrir, estamos eliminando nuestros anuncios de las plataformas", informó Recode.

Cómo eliminar saltos de línea en Excel

Si tienes una lista de contactos en tu archivo de Excel con el nombre y los apellidos que aparecen en dos líneas distintas (ejemplo de la imagen siguiente), tendrás que editar el archivo para que el nombre y apellido aparezcan todos en una sola línea, eliminando el salto de línea de las celdas.

Aquí está un ejemplo de cómo la lista puede parecer:

Imagen del artículo original.