Compartir a través de


transformación Comando de OLE DB

Se aplica a: SQL Server SSIS Integration Runtime en Azure Data Factory

La transformación Comando OLE DB ejecuta una instrucción SQL para cada fila de un flujo de datos. Por ejemplo, puede ejecutar una instrucción SQL que inserte, actualice o elimine filas en una tabla de base de datos.

Puede configurar el administrador de conexiones OLE DB de las maneras siguientes:

  • Proporcionar la instrucción SQL que la transformación ejecuta para cada fila.

  • Especifica la cantidad de segundos que tienen que transcurrir antes de que la instrucción SQL agote el tiempo de espera.

  • Especificar la página de códigos predeterminada.

Normalmente, la instrucción SQL incluye parámetros. Los valores de parámetro se almacenan en columnas externas en la entrada de transformación y al asignar una columna de entrada a una columna externa se asigna una columna de entrada a un parámetro. Por ejemplo, para buscar filas en la tabla DimProduct por el valor de su columna ProductKey y luego eliminarlas, puede asignar la columna externa denominada Param_0 a la columna de entrada denominada ProductKey y luego ejecutar la instrucción SQL DELETE FROM DimProduct WHERE ProductKey = ?. La transformación Comando de OLE DB proporciona los nombres de parámetro y no puede modificarlos. Los nombres de parámetro son Param_0, Param_1y así sucesivamente.

Si configura la transformación Comando de OLE DB mediante el cuadro de diálogo Editor avanzado , los parámetros de la instrucción SQL se pueden asignar automáticamente a las columnas externas en la entrada de transformación y las características de cada parámetro se definen haciendo clic en el botón Actualizar . Sin embargo, si el proveedor OLE DB que usa la transformación Comando de OLE DB no admite la derivación de la información de parámetros del parámetro, debe configurar las columnas externas manualmente. Esto significa que debe agregar una columna por cada parámetro a la entrada externa a la transformación, actualizar los nombres de columna para que usen nombres como Param_0, especificar el valor de la propiedad DBParamInfoFlags y asignar las columnas de entrada que contienen valores de parámetro a las columnas externas.

El valor de DBParamInfoFlags representa las características del parámetro. Por ejemplo, el valor 1 especifica que el parámetro es un parámetro de entrada, y el valor 65 especifica que el parámetro es un parámetro de entrada y puede contener un valor NULL. Los valores deben coincidir con los valores de la enumeración OLE DB DBPARAMFLAGSENUM. Para obtener más información, vea la documentación de referencia de OLE DB.

La transformación Comando de OLE DB incluye la propiedad personalizada SQLCommand . Esta propiedad se puede actualizar a través de una expresión de propiedad, al cargar el paquete. Para más información, vea Expresiones de Integration Services (SSIS), Usar expresiones de propiedad en paquetes y Propiedades personalizadas de transformación.

Esta transformación tiene una entrada, una salida normal y una salida de error.

Registro

Puede registrar las llamadas realizadas por la transformación Comando de OLE DB a proveedores de datos externos. Puede utilizar esta capacidad de registro para solucionar problemas relacionados con las conexiones y los comandos a orígenes de datos externos realizados por la transformación Comando de OLE DB. Para registrar las llamadas que la transformación Comando de OLE DB realiza a los proveedores de datos externos, habilite el registro de paquetes y seleccione el evento Diagnostic en el nivel de paquete. Para más información, vea Herramientas para solucionar problemas con la ejecución de paquetes.

Puede configurar la transformación mediante el Diseñador de SSIS o el modelo de objetos. Vea la Guía del desarrollador para obtener información detallada sobre la configuración mediante programación de esta transformación.

Configurar la transformación Comando de OLE DB

Para agregar y configurar una transformación Comando de OLE DB, el paquete ya debe incluir por lo menos una tarea Flujo de datos y un origen tal como origen de archivo plano y un origen de OLE DB. Esta transformación normalmente se usa para ejecutar consultas con parámetros.

Para configurar la transformación Comando de OLE DB

  1. En SQL Server Data Tools (SSDT), abra el proyecto de Integration Services que contiene el paquete que desea.

  2. En el Explorador de soluciones, haga doble clic en el paquete para abrirlo.

  3. Haga clic en la pestaña Flujo de datos y, a continuación, desde el cuadro de herramientas, arrastre la transformación Comando de OLE DB a la superficie de diseño.

  4. Conecte la transformación Comando de OLE DB al flujo de datos; para hacerlo, arrastre el conector (la flecha verde o roja) desde un origen de datos o una transformación anterior a la transformación Comando de OLE DB.

  5. Haga clic con el botón derecho en el componente y seleccione Editar o Mostrar el Editor avanzado.

  6. En la pestaña Administradores de conexión , seleccione un administrador de conexiones OLE DB en la lista Administrador de conexiones . Para más información, consulte OLE DB Connection Manager.

  7. Haga clic en la pestaña Propiedades de componente y haga clic en el botón de puntos suspensivos (…) del cuadro SqlCommand.

  8. En el Editor de valores de cadena, escriba la instrucción SQL con parámetros mediante un signo de pregunta (?) como marcador de parámetro para cada parámetro.

  9. Haga clic en Actualizar. Cuando hace clic en Actualizar, la transformación crea una columna para cada parámetro en la colección de columnas externas y establece la propiedad DBParamInfoFlags.

  10. Haga clic en la pestaña Propiedades de entrada y salida .

  11. Expanda Entrada de comando de OLE DBy luego expanda Columnas externas.

  12. Compruebe que Columnas externas enumera una columna para cada parámetro en la instrucción SQL. Los nombres de columna son Param_0, Param_1, etc.

    No debe cambiar los nombres de las columnas. Si lo hace, Integration Services generará un error de validación para la transformación Comando de OLE DB.

    Además, tampoco debe cambiar el tipo de datos. La propiedad DataType de cada columna se establece en el tipo de datos correcto.

  13. Si Columnas externas no enumera ninguna columna, debe agregarlas manualmente.

    • Haga clic en Agregar columna una vez por cada parámetro de la instrucción SQL.

    • Actualice los nombres de columna a Param_0, Param_1, etc.

    • Especifique un valor en la propiedad DBParamInfoFlags. El valor debe coincidir con el valor de la enumeración OLE DB DBPARAMFLAGSENUM. Para obtener más información, vea la documentación de referencia de OLE DB.

    • Especifique el tipo de datos de la columna y, según el tipo de datos, especifique la página de códigos, longitud, precisión y escala de la columna.

    • Para eliminar un parámetro sin usar, seleccione el parámetro en Columnas externasy luego haga clic en Quitar columna.

    • Haga clic en Asignaciones de columnas y asigne las columnas de la lista Columnas de entrada disponibles a parámetros de la lista Columnas de destino disponibles .

  14. Haga clic en Aceptar.

  15. Para guardar el paquete actualizado, haga clic en Guardar en el menú Archivo .

Consulte también

Flujo de datos
Transformaciones de Integration Services