“Con las sucesivas versiones de Oracle Database, Oracle sigue facilitando las tareas de estandarización, consolidación y automatización de servicios de base de datos en la nube para nuestros clientes. Lo que empezó hace más de una década con funciones innovadoras como Oracle Real Application Clusters y Oracle Automatic Storage Management, continúa ahora con Oracle Multinenant que permite a los departamentos de TI aprovechar al máximo las ventajas de la nube, incluido el uso compartido de recursos, la flexibilidad de gestión y el ahorro de costes.”
Necesitábamos insertar datos en una tabla extrayéndolos de otras tablas. Todas las tablas con la misma estructura. Para evitar escribir muchas veces la misma instrucción con las diferentes tablas creamos el siguiente script Transact-SQL en Sql Server 2000:
USE base_de_datos
DECLARE cursor_de_tablas CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ‘tablas%’
OPEN cursor_de_tablas
DECLARE @nombre_tabla sysname
FETCH NEXT FROM cursor_de_tablas INTO @nombre_tabla
WHILE (@@FETCH_STATUS <> -1) BEGIN IF (@@FETCH_STATUS <> -2) BEGIN SELECT @nombre_tabla = RTRIM(@nombre_tabla) EXEC (‘INSERT INTO tabla_destino SELECT * FROM ‘ + @nombre_tabla ) END FETCH NEXT FROM cursor_de_tablas INTO @nombre_tabla END CLOSE cursor_de_tablas DEALLOCATE cursor_de_tablas
Con este script se insertarán los datos de todas las tablas que empiezan con el nombre tablas en la base de datos llamada base_de_datos a la tabla tabla_destino en la misma base de datos.
Todo trabajador en informática nos hemos topado con la necesidad de pasar datos de una base de datos a otra o de cargar datos a una base de datos desde archivos de texto , hojas de cálculo o archivos dbf, etc.
Y en ocasiones hay que subirlos o pasarlos en un formato diferente al del origen o tener que hacer correcciones u operaciones con los datos antes de que lleguen a su destino. El hacer los programas para llevar a cabo esas tareas llevaba tiempo, dinero y esfuerzo.
Afortunadamente ya existen herramientas tanto comerciales como gratuitas para llevar a cabo estas operaciones de forma casi automática y de forma gráfica. Una de esas herramientas que he utilizado mucho es Kettle de Pantaho. Una excelente herramienta ETL (extracción, transformación y carga) y además gratuita.
Esta desarrollada en java y permite hacer trabajos y transformaciones en forma gráfica. Para operaciones más complicadas de transformación de datos, permite crear tus propios scripts en javascript o java. Permite además guardar todos tus trabajos y transformaciones en un repositorio en una base de datos para poder ser compartidas y ejecutadas por otros miembros de la organización u equipo.
Puedes emplear las librerías java en las que se basa este software para integrar kettle en una aplicación java, ya sea desktop o web, y desde ahí ejecutar los trabajos y transformaciones.
Posiblemente de lo que adolece algo esta aplicación es de que no tiene una buena documentación, pero junto con la aplicación se descargan unos trabajos y transformaciones de ejemplos. Además existen unos unos libros que hablan de esta herramienta.
Se las recomiendo ampliamente. Pueden descargar la última versión desde el sitio de Kettle en Sourceforge, selecciones la versión que dice estable y la más reciente. Para ejecutar la aplicación necesitan tener instalado en su máquina Java 6 o mayor.
Les dejo una pantalla de este excelente software.. ¡saludos!