none
DTSX que vuelque datos desde una fecha de referencia RRS feed

  • Pregunta

  • Hola a todos, soy bastante nuevo con SSIS. La verdad tengo un problema que no se me ocurre como pidria resolver, les cuento:

     

    Tengo una base de dato A (MSSQL) y una B (Oracle), el paquete extrae datos desde B hacia A. El inconveniente que tengo es que los datos provenientes de B depende de la ultima fecha de importacion de datos, que se encuentra almacenada en A.

    Es decir, el algorimo basico de mi proceso ETL seria:

     

    1.- Obtener la ultima fecha de transferencia de datos (en A)

    2.- Seleccionar todos los datos de B, que su fecha sea mayor o igual a la fecha capturada en (1)

    3.- Copiar los datos de (2) en B.

     

    Como lo podria hacer esto?

    miércoles, 1 de diciembre de 2010 21:20

Respuestas

Todas las respuestas

  • En este caso tu paquete podría tener básicamente dos elementos en el Control Flow: 1 SQL Task,  y 1 Data Flow.

    En el SQL Task podrías ejecutar el query o StoredProcedure que te devuelva la fecha máxima y el resultado lo escribas en una variable global definida dentro del paquete.

    Dentro de tu Data Flow habría un Data Source component que leerá los datos de Oracle. La magia viene aquí. Incluyes tu query original y reemplazas el valor de la fecha por un "placeholder" para tu variable global y luego la mapeas con el parámetro.

    Luego todo lo demás sería la lógica normal que necesites para mover los datos de uno a otro lado.

    Aquí hay un post similar al respecto: http://sqlfool.com/2009/08/getting-started-with-variables-in-ssis/


    Alan Koo Labrin | "Microsoft Business Intelligence y más..." http://www.alankoo.com
    jueves, 2 de diciembre de 2010 15:20
  • Alan, estuve siguiedo el post del link.

     

    Pero no logro entender como edifinir el valor de la variable con la respuesta de un select:

     

    Variable_Fecha = select max(fecha) from ......

    lunes, 6 de diciembre de 2010 16:14
  • Hola.

    Tomas un paso de SQL Task. Escribes la consulta, cadena conexión y demás. En la propiedad "ResultSet" pones "Single Row" y en la pestaña "Result Set" añades las variables en las que se almacenarán los resultados de la consulta.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/

    • Marcado como respuesta kerench jueves, 9 de diciembre de 2010 15:03
    martes, 7 de diciembre de 2010 22:57
    Moderador
  • ok muchas gracias Alberto.

     

    Saludos

    jueves, 9 de diciembre de 2010 15:02