Conexión a bases de datos de Oracle desde flujos de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

Cuando los flujos de trabajo necesiten trabajar con datos de Oracle, conéctese a la base de datos de Oracle mediante el conector Oracle Database en Azure Logic Apps. Puede acceder a las bases de datos hospedadas en el entorno local o en una máquina virtual Azure.

El conector de Oracle Database le ayuda a resolver tareas comunes de integración de datos, como:

  • Agregue registros de cliente a la base de datos.
  • Actualice los registros de pedido en la base de datos.
  • Obtenga, inserte o elimine filas de tabla como parte del flujo de trabajo.

Para flujos de trabajo estándar, el conector integrado de Oracle Database está disponible en vista previa pública. El conector se ejecuta en proceso con el runtime de Azure Logic Apps, que puede proporcionar menor latencia y mayor rendimiento que el conector gestionado. Cuando el entorno de ejecución tiene acceso de red al endpoint de Oracle, el conector integrado no requiere una pasarela de datos local. Los flujos de trabajo alojados en Azure pueden usar la integración de red virtual para llegar a los puntos finales privados de Oracle, mientras que los flujos de trabajo que utilizan el modelo de despliegue híbrido pueden acceder a bases de datos Oracle desde infraestructuras gestionadas por el cliente.

Versiones admitidas de Oracle Database

En la tabla siguiente se enumeran las versiones de base de datos de Oracle admitidas que admite cada conector:

Connector Aplicación lógica Versiones de base de datos de Oracle admitidas
Managed - Consumo
-Estándar
- Oracle 9 y versiones posteriores
- Cliente de acceso a datos de Oracle (ODAC) 11.2 y versiones posteriores
Integrado (versión preliminar) Estándar Oracle Database 11 y versiones posteriores

Referencia técnica del conector

El conector de Oracle Database tiene versiones diferentes, basadas en el tipo de flujo de trabajo de la aplicación lógica y el entorno de host.

Aplicación lógica Ambiente Versión del conector
Consumo Azure Logic Apps multiinquilino Conector gestionado, que aparece en la galería bajo el filtro Compartido.

Para más información, consulte Referencia del conector administrado de Oracle Database.
Estándar Azure Logic Apps de un solo inquilino, App Service Environment v3 (solo planes de Windows) e híbrido Conector administrado, que aparece en la galería de conectores en el filtro Compartido, y el conector integrado (versión preliminar pública), que aparece en la galería de conectores en el filtro Integrado.

La versión integrada se ejecuta en el mismo proceso que el tiempo de ejecución de Azure Logic Apps y no requiere la puerta de enlace de datos local, ya que el tiempo de ejecución puede acceder a su punto de conexión de Oracle a través de la red.

Para obtener más información, consulte:

- Referencia del conector administrado de Oracle Database
- Referencia del conector integrado

Operaciones del conector integrado (versión preliminar)

Actualmente, el conector integrado admite las siguientes acciones:

Nombre Parámetros Descripción Devoluciones
Ejecutar consulta (executeQuery) - Consulta (query): requerido con el tipo string. La consulta SQL para ejecutar.

- Parámetros de consulta (queryParameters): opcional con object tipo. Parámetros de consulta que se van a incluir.
Ejecuta una consulta SQL. El resultado de la consulta SQL como array.
Ejecutar procedimiento almacenado (executeStoredProcedure) - Nombre del procedimiento almacenado (storedProcedure): obligatorio con string tipo. Nombre del procedimiento almacenado que se va a ejecutar.

- Parámetros de procedimiento almacenado (storedProcedureParameters): Opcional con el tipo object. Parámetros de procedimiento almacenado que se van a incluir.
Ejecuta un procedimiento almacenado y devuelve los conjuntos de resultados y los parámetros de salida. - Conjuntos de resultados (resultSets) de tipo string. Lista de conjuntos de resultados devueltos por el procedimiento almacenado.

- Parámetros de salida (outputParmaters) de tipo string. Los valores de los parámetros de salida devueltos por el procedimiento almacenado.
Obtener filas (getRows) - Nombre de tabla (tableName): se requiere con el tipo string. Nombre de la tabla de origen.

- Condición Where (columnValuesForWhereCondition): Opcional con el tipo object. El par clave-valor de columnas que identifica las filas que se van a obtener.

- Desplazamiento para Obtener filas (skipCount): Opcional con tipo string. Número de entradas que se van a omitir. El valor predeterminado es 0.

- Número máximo de filas (maxcount): opcional con el tipo string. El número máximo de filas a obtener. El valor predeterminado es 0.

- Columna de ordenación (orderBy): opcional con string tipo. Nombre de columna que se va a usar para ordenar el resultado de la consulta.

- Seleccione Columnas (filterBy): opcional con string tipo. El valor de la columna que se va a obtener de la tabla o vista.
Obtiene una o varias filas en función de la condición especificada. Las filas recuperadas como un array.
Obtener tablas (getTables) Devuelve solo las tablas que pertenecen al usuario actual (ownedTables): opcional con el tipo string. Devuelve solo las tablas en las que el propietario es el usuario proporcionado. Obtiene una lista de tablas. La lista de tablas como un array.
Insertar fila (insertRow) - Nombre de tabla (tableName): se requiere con el tipo string. Nombre de la tabla.

- Establecer columnas (setColumns): opcional con tipo object. Valores de los campos de fila.
Inserta una fila. La fila insertada con tipo object.

Requisitos previos

Requisitos previos del conector administrado (Consumption y Estándar)

Requisitos previos del conector integrado (estándar, versión preliminar)

  • Asegúrese de que el flujo de trabajo de la aplicación lógica estándar pueda llegar al punto de conexión de Oracle, incluidos cualquier host, puerto, resolución DNS y reglas de firewall.

  • Al crear la conexión de base de datos de Oracle, necesita los siguientes valores:

    • Dirección del servidor de base de datos Oracle
    • Nombre de usuario
    • Contraseña

    Para la dirección del servidor, especifique este valor en uno de los siguientes formatos:

    Formato Syntax Example
    Easy Connect (no SSL) < host>:<puerto>/<nombre del servicio de la base de datos> localhost:1522/XE
    Descriptor de sustrato de red transparente (TNS) (SSL): el descriptor de origen de datos de Oracle completo (description=(retry_count=<reintentos>)(retry_delay=<>)(address=(protocol=tcps)(port=<>)(host=><))(connect_data=(service_name=<>))(security=(ssl_server_dn_match=yes))) (description=(retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=localhost))(connect_data=(service_name=XE))(security=(ssl_server_dn_match=yes)))
  • Para la acción Get rows usada en este ejemplo, necesitas saber el nombre de la tabla para acceder.

    Si no conoce esta información, póngase en contacto con el administrador de Oracle Database u obtenga la salida de la siguiente instrucción: select * from <table-name>.

Problemas y limitaciones conocidos

Las versiones actuales del conector no admiten desencadenadores. Use cualquier desencadenador que se ajuste a su escenario para iniciar el flujo de trabajo y, a continuación, agregue acciones de Oracle.

Connector Limitaciones
Managed - Tablas con claves compuestas
- Tablas con tipos de objetos anidados
- Funciones de base de datos con valores no escalados
Integrado - No hay acciones de actualización ni eliminación dedicadas. Para escenarios de actualización y eliminación, use las acciones Ejecutar consulta o Ejecutar procedimiento almacenado .
- Algunos problemas de conexión pueden aparecer solo en tiempo de ejecución de flujo de trabajo, en lugar de en el momento de la creación de la conexión.
- El tiempo de espera predeterminado de la consulta es de 30 segundos. Las operaciones de mayor duración siguen estando sujetas a la configuración del tiempo de espera de la acción del flujo de trabajo y de la función host.
- Los identificadores de Oracle pueden distinguir entre mayúsculas y minúsculas. Asegúrate de que los nombres de tablas, vistas y columnas coincidan con los identificadores definidos en tu esquema.

Agregar una acción

Los pasos para agregar y usar una acción de Oracle difieren en función de si se usa el conector integrado o el conector administrado.

Adición de una acción de conector integrada (Estándar, versión preliminar)

  1. En el portal de Azure, abra su recurso de aplicación lógica estándar.

  2. En el diseñador, abra el flujo de trabajo.

  3. Siga los pasos genéricos para agregar la acción Base de datos de Oracle que desea para el flujo de trabajo.

    Este ejemplo continúa con la acción Obtener filas .

  4. En el panel de información de conexión, introduce la información requerida, como el nombre de conexión que deseas, la dirección del servidor de base de datos de Oracle, el nombre de usuario y la contraseña, por ejemplo:

    La captura de pantalla muestra el portal de Azure, el diseñador de flujos de trabajo estándar y el panel de conexión de Oracle Database para la acción Obtener filas.

  5. Cuando termine, seleccione Crear nueva.

  6. En el panel de información de acciones, escriba los valores de parámetro necesarios para la acción seleccionada.

    Por ejemplo, si selecciona la acción Obtener filas , escriba el nombre de la tabla:

    La captura de pantalla muestra el Azure Portal, el diseñador de flujos de trabajo de la versión Estándar y la acción Obtener filas con un nombre de tabla de ejemplo.

  7. Agregue cualquier otra acción necesaria para finalizar el flujo de trabajo.

  8. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Añadir una acción de conector administrado (Consumo y Estándar)

  1. En el portal Azure, abra su recurso de aplicación lógica de tipo Consumption o de tipo Standard.

  2. En el diseñador, abra el flujo de trabajo.

  3. Siga los pasos genéricos para agregar la acción Base de datos de Oracle que desea para el flujo de trabajo.

    Este ejemplo continúa con la acción Obtener fila.

  4. En el panel de información de conexión, escriba la información de conexión necesaria.

  5. En la propiedad Puerta de enlace, seleccione la suscripción de Azure y el recurso de puerta de enlace de Azure que se va a usar.

  6. Después de finalizar la conexión, en la lista Nombre de tabla, seleccione una tabla.

  7. En la propiedad Id. de fila, escriba el identificador de fila que desee en la tabla.

    En el ejemplo siguiente, se devuelven los datos de trabajo de una base de datos de recursos humanos:

    Captura de pantalla muestra el portal de Azure, el diseñador de flujo de trabajo, y la acción Obtener fila con el nombre de la tabla y el ID de la fila.

  8. Agregue cualquier otra acción necesaria para finalizar el flujo de trabajo.

  9. Guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Solución de problemas de conexión de base de datos de Oracle

Conector integrado

Cuando falla una acción integrada del conector, revisa el historial de ejecuciones del flujo de trabajo y los registros de diagnóstico. La siguiente tabla describe los códigos de estado comunes y los pasos de solución de problemas:

Código de estado Causa y resolución
401 Error de autenticación. Verifica el nombre de usuario y la contraseña, el estado de bloqueo de la cuenta y las políticas de caducidad de contraseña.
404 No se encontró el objeto de base de datos solicitado. Verifica el nombre del esquema, la tabla o la vista, incluyendo la mayúscula del identificador, y confirma que el usuario tiene permiso para acceder al objeto.
429 La base de datos Oracle alcanzó un límite de recursos o de sesión. Revisa los límites de sesiones de Oracle y la configuración de concurrencia de flujo de trabajo.
502 El entorno de ejecución no pudo acceder al endpoint de Oracle. Verifica la conectividad del host y puerto, resolución DNS, reglas del firewall y disponibilidad del oyente de Oracle.
504 La operación expiró. Revisa la complejidad de la consulta y los índices, y revisa los ajustes de tiempo de espera de la consulta y del flujo de trabajo del host.

Conector administrado

Error: No se puede alcanzar la puerta de enlace

Causa: la puerta de enlace de datos local no se puede conectar a la nube.

Mitigación: asegúrese de que la puerta de enlace se ejecuta en el equipo local donde instaló la puerta de enlace y de tener conectividad a Internet. Evite instalar la pasarela en un equipo que puede estar apagado o en reposo. También puede intentar reiniciar el servicio de la puerta de enlace de datos local (PBIEgwService).

Error: el proveedor que está usando está en desuso: “System.Data.OracleClient requiere la versión 8.1.7 del software cliente de Oracle o una versión posterior”. Consulte https://go.microsoft.com/fwlink/p/?LinkID=272376 para instalar el proveedor oficial.

Causa: el SDK del cliente Oracle no está instalado en el equipo en el que se ejecuta la puerta de enlace de datos local.

Resolución: Descargue e instale el SDK del cliente Oracle en la misma máquina que la puerta de enlace de datos local.

Error: La tabla '[Tablename]' no define las columnas clave.

Causa: la tabla no tiene ninguna clave principal.

Resolución: el conector de Oracle Database requiere que se utilice una tabla con una columna de clave principal.