es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilice SSIS para actualizar la columna de una tabla de Oracle con valores nulos después de que se haya asignado el valor en SQL Server a una columna similar.

Tengo una tabla de datos en Oracle que tiene las siguientes columnas:

Record_ID, Run_ID, PO_Type, PO_NUM, DateTime

Cuando se crea un PO, todas las columnas se rellenan excepto Run_ID:

Record_ID, Run_ID, PO_Type, PO_Num, DateTime

1374, , NEW_PO , 12345 , 20211117123456
1375, , NEW_PO , 12346 , 20211117123545

Actualmente, estos registros se exportan fuera de nuestro sistema a través de SSIS donde se importan en una base de datos de SQL Server. Aquí, se les asignará un RUN_ID que será único para todos los datos que se exportaron (todo lo que se exportó a la vez tendrá el mismo Run_ID):

RECORDID, SYSTEM, RUN_ID, PO_TYPE, PO_NUM, DATETIME

1374, ORDER , 5078 , NEW_PO , 12345 , 20211117123456
1375, ORDER , 5078 , NEW_PO , 12346 , 20211117123545

Luego, necesito escribir de vuelta en la base de datos de Oracle este RUN_ID y actualizar el PO_TYPE de NEW_PO a Processed_PO para que mi base de datos de Oracle se vea así:

Record_ID, Run_ID, PO_Type , PO_Num, DateTime

1374, 5078 , Processed_PO , 12345 , 20211117123456
1375, 5078 , Processed_PO , 12346 , 20211117123545

El problema que tengo es que todo esto necesita suceder dentro del mismo proceso de SSIS, ya que es la única herramienta que tengo disponible, y no sé cómo abordar esto, así que cualquier consejo sobre esto sería muy apreciado.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar una transformación de Lookup en SSIS para unir la tabla de Oracle con la tabla de SQL Server. Esto le permitirá agregar el Run_ID a la tabla de Oracle y actualizar el PO_Type de NEW_PO a Processed_PO.

    Puede configurar la transformación de Lookup para usar una unión externa completa, lo que devolverá todas las filas de ambas tablas, incluidas las filas que no tienen una coincidencia. Luego puede usar una transformación de Split condicional para separar las filas que tienen una coincidencia de las filas que no tienen.

    Para las filas que tienen una coincidencia, puede utilizar una transformación de Actualización para actualizar el Run_ID y el PO_Type en la tabla de Oracle. Para las filas que no tienen una coincidencia, puede utilizar una transformación de Inserción para insertar el Run_ID y el PO_Type en la tabla de Oracle.

    Una vez que haya configurado las transformaciones de Lookup, Split condicional, Actualización e Inserción, puede conectarlas en la tarea de Flujo de datos para crear el resultado deseado.

Comments are closed.