Uso de operadores de flujo de datos

En Data Integration, los operadores de flujo de datos representan orígenes de entrada, destinos de salida y transformaciones que se pueden utilizar en un flujo de datos.

En el panel Operadores, arrastre los operadores al lienzo para diseñar un flujo de datos. A continuación, utilice el separador Detalles del panel Propiedades para configurar las propiedades básicas y necesarias de cada operador. Cuando corresponda, utilice el separador Opciones avanzadas para especificar otras propiedades.

En general, un operador de flujo de datos puede tener uno o más puertos de entrada y uno o más puertos de salida para que los datos fluyan por ellos. Por ejemplo, puede conectar el mismo puerto de salida de origen a puertos de entrada en un filtro, una unión y un operador de destino. También puede conectar otro operador de origen al mismo puerto de entrada de unión.

Un flujo de datos debe incluir al menos un operador de origen y un operador de destino para que sea válido. Si bien Data Integration soporta varios operadores de destino en un flujo de datos, un operador de destino solo puede tener un puerto de entrada.

Para conectar los operadores, pase el cursor sobre un operador hasta que vea el conector (un círculo pequeño) en el lado derecho del operador. A continuación, arrastre el conector al siguiente operador al que desea conectarse. La conexión es válida cuando una línea conecta los operadores después de soltar el conector.

Una línea de conexión simboliza cómo fluyen los datos de un nodo al otro. Aunque puede arrastrar un conector visible de un objeto a otro, no puede tener más de una línea de conexión de entrada a un operador de filtro, expresión, agregación, valor distinto, ordenación y destino.

Importante

Para los tipos de datos complejos, consulte Tipos de datos jerárquicos para saber lo que está soportado. Es posible que no pueda realizar algunas configuraciones en el separador Atributos y el separador Datos del panel Propiedades.

Operadores de datos

Data Integration proporciona el operador de origen y el operador de destino para agregar entidades de datos de entrada y salida que sirvan como entrada a flujos de datos y la salida para datos transformados.

Selección de un activo de datos, una conexión y un esquema

Para configurar la entidad de datos de entrada o salida para un operador de datos en un flujo de datos, primero debe seleccionar un activo de datos, una conexión y un esquema (o un cubo).

Las selecciones solo se realizan en el orden mostrado en el separador Detalles del panel Propiedades haciendo clic en Seleccionar cuando la opción está activada junto al tipo de recurso.

Por ejemplo, al agregar por primera vez un operador de origen, solo se activa la selección del activo de datos. La opción de selección para el siguiente tipo de recurso, Conexión, solo se activa después de realizar una selección para el objeto anterior.

Al hacer clic en Seleccionar junto a un recurso, aparece un panel para seleccionar el objeto que desea. Puede utilizar el menú de recursos para seleccionar el objeto o seleccionar Ver todo para utilizar otro panel para examinar o buscar y, a continuación, seleccionar el objeto.

Al seleccionar un objeto de recurso, cada selección posterior se basa en la relación padre-hijo heredada de la selección anterior. Una ruta en la parte superior del panel de selección muestra la jerarquía de selección. Por ejemplo, supongamos que ha seleccionado el activo de datos "Activo de datos de Oracle Database 1" y la conexión "Conexión por defecto". Al seleccionar el esquema, la ruta de navegación se muestra como "Desde los datos de Oracle Database asset1 mediante la conexión por defecto".

Selección de una entidad de datos

Después de seleccionar un activo de datos, una conexión y un esquema (o cubo), seleccione una entidad de datos de la lista de entidades de datos disponibles.

En general, puede hacer lo siguiente en el panel Examinar entidades de datos:

  • Examine las entidades de datos disponibles y seleccione una entidad por su nombre.

  • Filtre la lista disponible para buscar y, a continuación, selecciónela. En el campo de búsqueda, introduzca parte del nombre o el nombre completo de la entidad y pulse Intro para iniciar la búsqueda. La búsqueda es sensible a mayúsculas/minúsculas. Por ejemplo, si las entidades de datos disponibles incluyen BANK_US y BANK_EU, introduzca BANK y, a continuación, seleccione en la lista filtrada.

  • Utilice uno o más parámetros en la cadena de búsqueda. Por ejemplo: CUSTOMERS_${COUNTRY}

    Para utilizar un nombre de entidad de datos con parámetros para seleccionar el recurso de entrada o salida, consulte Uso de parámetros en nombres de entidades de datos.

Según el tipo de activo de datos de un recurso, después de seleccionar una entidad de datos, puede que sea necesaria más configuración en el separador Detalles o en el separador Opciones avanzadas del panel Propiedades.

Asignación de parámetros a objetos de recursos

Para evitar que un objeto de recurso, como un activo de datos o una conexión de un flujo de datos, esté enlazado permanentemente a un recurso específico, asigne un parámetro a ese objeto.

Puede asignar el parámetro después o antes de seleccionar el objeto de recurso.

  • En el flujo de datos, agregue el operador de origen o de destino. Tras realizar una selección para un tipo de recurso, seleccione Asignar parámetro junto al nombre del recurso para utilizar otro panel para seleccionar y asignar el parámetro para el objeto seleccionado. Si un tipo de parámetro adecuado no está disponible, puede agregar un parámetro y, a continuación, asignarlo.

    Nota

    La asignación de parámetros no está disponible para una entidad de datos cuyo nombre incluya un parámetro (como BANK_${REGION}). No puede enlazar un recurso de entidad con parámetros a otro parámetro.
  • También se puede agregar el operador de origen o de destino, a continuación, seleccionar Asignar parámetro para utilizar un panel a fin de asignar un parámetro y seleccionar el recurso para el objeto al mismo tiempo. En el panel Agregar parámetro, seleccione un recurso basado en la relación principal-secundario heredada de la selección anterior. La ruta en la parte superior del panel muestra la jerarquía de selección.

Consulte también Uso de parámetros de flujo de datos.

Uso de Parámetros en Nombres de Entidades de Datos

Puede incluir uno o más parámetros de flujo de datos en el nombre del recurso de entidad de datos que especifique para un operador de datos.

La sintaxis que se utilizará para un parámetro de flujo de datos en un nombre de entidad de datos es ${PARAMETER_NAME}. Por ejemplo: CUSTOMERS_${COUNTRY}

Un nombre de parámetro distingue entre mayúsculas y minúsculas y cada parámetro debe tener un valor por defecto.

Por ejemplo, CUSTOMERS_${COUNTRY} puede devolver la tabla de bases de datos CUSTOMERS_USA y BANK_${COUNTRY}/* los archivos de Object Storage en BANK_EU.

Para utilizar parámetros en los nombres de entidades de datos al configurar un operador de datos, puede:

  • Agregue el parámetro al flujo de datos antes de agregar el operador de datos
  • Agregue el parámetro en el momento de configurar la entidad de datos del operador

Cómo agregar un parámetro

En un flujo de datos, seleccione Parámetros en el menú Ver de la barra de herramientas del lienzo para abrir el panel Parámetros.

En el panel Parámetros, seleccione Configuración y, a continuación, seleccione Agregar.

En el panel Agregar parámetro, configure un parámetro del tipo de datos adecuado, por ejemplo, VARCHAR o NUMERIC, y agregue un valor por defecto.

Durante la configuración de entidades de datos en un flujo de datos, puede buscar las entidades de datos disponibles introduciendo el nombre del parámetro en el panel Examinar entidades de datos. En el campo de búsqueda, comience a escribir ${ seguido de cualquier carácter. Si el principio del nombre del parámetro coincide con los parámetros existentes en el flujo de datos, se muestra una lista de nombres sugeridos. Seleccione un parámetro de la lista, complete la sintaxis agregando } y, a continuación, pulse Intro.

Cómo agregar un parámetro en el momento de la configuración de la entidad de datos

En el panel Examinar entidades de datos, puede hacer lo siguiente:

  • En el menú Más Acciones, seleccione Agregar Parámetro de Flujo de Datos para utilizar el panel Agregar Parámetro de Flujo de Datos. Especifique el tipo de datos, el valor por defecto y otras propiedades para el parámetro que desea agregar y utilizar.

  • En el campo de búsqueda, comience a escribir ${ seguido de cualquier carácter. Si el principio del nombre del parámetro coincide con los parámetros existentes en el flujo de datos, se muestra una lista de nombres sugeridos. Seleccione un parámetro de la lista, complete la sintaxis agregando } y, a continuación, pulse Intro.

  • En el campo de búsqueda, introduzca el nombre del parámetro, por ejemplo ${PARAMETER_NAME}). Si el nombre de parámetro aún no existe en el flujo de datos y pulsa Intro, Data Integration muestra el panel Agregar parámetro de flujo de datos. Asimismo, después de introducir el nombre del parámetro, seleccione Agregar parámetro de flujo de datos en el menú Más acciones.

    En el panel Agregar Parámetro de Flujo de Datos, especifique el tipo de datos, el valor por defecto y otras propiedades del parámetro que desea agregar y utilizar.

Operador de origen

Utilice el operador de origen para especificar las entidades de datos que sirven como entrada para el flujo de datos.

Adición y configuración de un operador de origen

Puede agregar varios operadores de origen en un flujo de datos.

Importante

Si está utilizando una entidad de datos jerárquica para un operador de origen, consulte Tipos de datos jerárquicos para saber lo que está soportado. Es posible que no pueda realizar algunas configuraciones en el separador Atributos o el separador Datos del panel Propiedades.
  1. En el panel Operadores, arrastre un operador de Origen al lienzo.
  2. Con el operador de origen enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre para el operador de origen en el campo Identificador o deje el nombre por defecto como está.
  3. Para configurar el origen de entrada para este operador, seleccione el activo de datos, la conexión y el esquema (o cubo) haciendo clic en Seleccionar cuando esté disponible junto al tipo de recurso. Consulte las siguientes descripciones para obtener más información sobre el tipo de activo de datos que está seleccionando para este operador de origen.
    Tipo de activo de datos Descripción

    Object Storage

    Amazon S3

    HDFS

    Haga clic en Seleccionar junto a Cubo para seleccionar el compartimento y, a continuación, seleccione el cubo.

    Después de seleccionar el activo de datos, la conexión y el cubo, continúe con el paso 5 para seleccionar una entidad de datos.

    Activo de datos REST genérico

    Después de seleccionar una conexión, se muestra la URL base introducida al crear el activo de datos. Siga estos pasos para configurar el origen:

    • Haga clic en Seleccionar junto a Recurso para seleccionar un punto final.

    • Haga clic en Seleccionar junto a Operación para seleccionar una operación para el punto final.

    • Para obtener más propiedades, consulte el paso 7.

    Oracle Fusion Applications con Oracle BI Cloud Connector (BICC)

    En Esquema, seleccione la oferta de BICC. La oferta de BICC seleccionada proporciona los objetos de vista (VO) de BICC para la extracción de datos.

    Después de seleccionar un activo de datos, una conexión y un esquema, continúe con el paso 4 para seleccionar una entidad de datos.

    Oracle Fusion Applications con Oracle BI Publisher (BIP)

    Para Activo de datos:

    Para utilizar un activo de datos de BIP en un flujo de datos, necesita un cubo de Object Storage como ubicación temporal. Si selecciona un activo de datos que no tiene una ubicación temporal por defecto especificada en ese activo de datos, Data Integration muestra una notificación de advertencia. Cuando vea la notificación, seleccione una de las siguientes opciones:
    • Seleccione Actualizar activo de datos para agregar una ubicación temporal por defecto a ese activo de datos.
    • Haga clic en Seleccionar junto a Ubicación temporal en el panel Propiedades para seleccionar el activo de datos de Object Storage que tiene el cubo que desea utilizar para la ubicación temporal.

    Para Esquema:

    Seleccione la carpeta BIP que contiene el informe como esquema.

    Consulte Extracción de datos de BIP en Data Integration para obtener más información sobre:
    • Preparación del informe BIP y su consulta SQL
    • Configuración de fragmentación
    • Uso de parámetros BIP personalizados

    Después de seleccionar un activo de datos, una conexión y un esquema, continúe con el paso 4 para seleccionar una entidad de datos.

    Otros activos de datos que no son Object Storage, Amazon S3 ni HDFS

    Después de seleccionar un activo de datos, una conexión y un esquema, continúe con el paso 4 para seleccionar una entidad de datos.

  4. Para seleccionar una entidad de datos que no sea de un activo de datos de Object Storage, Amazon S3 o HDFS:
    1. Tenga en cuenta lo siguiente en el panel Seleccionar entidad de datos. Cuando corresponda, puede:
      • Utilice el menú entidad de datos para seleccionar una entidad de datos por su nombre.

      • Seleccione Examinar entidades del dato para utilizar otro panel para examinar o buscar la lista disponible y, a continuación, seleccione una entidad de datos.

        Consulte Selección de una entidad de datos si necesita ayuda para buscar en la lista mediante un nombre completo o parcial.

        Puede incluir uno o más parámetros de flujo de datos en el nombre de una entidad de datos seleccionada mediante la sintaxis ${PARAMETER_NAME}. Por ejemplo: BANK_${REGION}

        Consulte Uso de parámetros en nombres de entidades de datos si necesita ayuda para agregar y utilizar parámetros al configurar nombres de entidades.

    2. En función del tipo de activo de datos para este operador de origen, seleccione la entidad de datos y complete más configuraciones, si corresponde.
      Tipo de activo de datos Descripción

      Oracle Database

      Oracle Database en Amazon RDS

      Oracle Siebel

      Oracle PeopleSoft

      Oracle E-Business Suite

      Oracle ATP y ADW

      MySQL

      MySQL Heatwave

      MySQL en Amazon RDS

      Amazon RDS para SQL Server

      Microsoft SQL Server

      Base de Datos Microsoft Azure SQL

      IBM DB2

      En Detalles:

      • Seleccione la entidad de datos por nombre.

      • Si corresponde, seleccione Introducir SQL personalizado para introducir una única sentencia SQL en el editor.

        Al proporcionar una sentencia de consulta SQL, puede definir una entidad de origen de base de datos y la unidad de la entidad al mismo tiempo. Por ejemplo, puede definir y filtrar los datos en una sentencia SQL en lugar de agregar un operador de filtro después de definir la entidad que se va a utilizar para el operador de origen.

        Nota: En las sentencias SQL, utilice comillas simples para los parámetros. Por ejemplo: select * from ORDERS where Created_On >= '${SYS.LAST_LOAD_DATE}'

        Después de introducir la consulta SQL, seleccione Validar para comprobar si hay errores en la sentencia.

      • Si está disponible y es aplicable, siga estos pasos para cargar solo registros nuevos o actualizados del origen al destino:

        • Seleccione la casilla de control Carga incremental para identificar y cargar solo las filas que se han creado o modificado desde la última vez que se ejecutó el proceso de carga.

        • En Columna de marca de agua, seleccione la columna que se utiliza para marcar las filas que se han cargado incrementalmente. Solo se pueden utilizar las columnas DATE, TIMESTAMP y DATETIME como columna de marca de agua.

      Oracle Fusion Applications con Oracle BI Cloud Connector (BICC)

      En el separador Detalles: seleccione un objeto de vista (VO) de BICC como entidad de datos desde la que extraer datos. A continuación, utilice el menú Estrategia de extracción para seleccionar cómo se extraen los datos de origen.

      • Completa: extrae y carga todos los datos desde la Fecha de extracción inicial opcional que especifique. Si no proporciona una fecha en Fecha de extracción inicial, se extraen todos los datos.
      • Incremental: extrae y carga solo los datos que se han creado o modificado después de una fecha específica.
        • Seleccione Gestionado para utilizar la última fecha de la que se realiza un seguimiento y que gestiona Data Integration. No especifica explícitamente una fecha.
          Importante

          La opción Gestionada recupera 24 horas adicionales de datos en el pasado.

          Data Integration agrega el parámetro SYS.LAST_LOAD_DATE para realizar un seguimiento de la fecha de la última carga o ejecución de tarea y almacena la última fecha de carga correcta como marca de agua en ejecuciones consecutivas. Cuando se ejecuta la tarea, puede cambiar el valor de la última fecha almacenada en el sistema.

        • Seleccione Personalizado para proporcionar la fecha en el campo Fecha de última extracción.

      A continuación, seleccione un almacenamiento de configuración externo de BICC diferente para los datos extraídos si no desea utilizar el activo de datos por defecto. Data asset default es el almacenamiento externo de BICC que se configuró en el activo de datos de BICC Fusion Applications cuando se creó o editó el activo.

      De manera opcional, complete lo siguiente en el separador Opciones avanzadas:

      Seleccione Activar BI Broker si desea que el extractor de BICC lea las filas de entrada directamente desde la base de datos de Fusion Applications en lugar de una ruta de acceso de extracción normal.
      Importante

      • El modo de BI Broker es una opción de optimización del rendimiento para usuarios avanzados.
      • El modo de BI Broker es una función de BICC soportada solo para algunos almacenes de datos. La extracción falla para los almacenes de datos que no están soportados.
      • Con la opción BI Broker, el rendimiento de extracción puede mejorar porque las consultas se ejecutan directamente en los almacenes de datos de la base de datos subyacente. La mejora del rendimiento depende del almacén de datos, la carga de trabajo actual en BI Server, la carga de trabajo actual en la base de datos y otros factores.
      • En algunas situaciones, la activación del modo BI Broker cambia los tipos de dato de la columna de origen.
      Si no selecciona Activar BI Broker, los datos se extraen a través del servidor de BI. Para obtener más información, consulte Modo de extracción de intermediarios en Configuración de ofertas para extraer de la guía Creación de un extracto de Business Intelligence Cloud. La guía de BICC forma parte de la lista de libros Aplicaciones comunes de la documentación de Oracle Fusion Cloud Applications Suite.

      En Propiedades de columna de BICC, seleccione el tipo de columnas del origen de BICC para incluirlas como atributos en el destino.

        • Todo: se incluyen todas las columnas del PVO de BICC. Sin embargo, las columnas con nombres que empiezan por ExtnAttribute o las columnas que tienen el mismo nombre y etiqueta no aparecen.

        • Solo por defecto: solo se incluyen las columnas activadas para extracción por defecto en el PVO de BICC. Muestra todas las columnas, incluidas las columnas flexibles.

        • Claves por defecto y primarias: se incluyen las columnas por defecto y primarias del PVO de BICC. Muestra todas las columnas, incluidas las columnas flexibles.

        • Solo claves primarias: solo se incluyen las columnas primarias del PVO de BICC. Muestra todas las columnas, incluidas las columnas flexibles.

      Oracle Fusion Applications con Oracle BI Publisher (BIP)

      En el separador Detalles:

      • En Entidad de datos, seleccione un informe. Consulte el blog Extracción de datos de Oracle Fusion Applications mediante BIP en Data Integration para obtener un recordatorio de la ubicación del informe.
      • Especifique la ubicación temporal, que es el cubo de Object Storage para almacenar temporalmente los datos extraídos. Si el activo de datos seleccionado tiene una ubicación temporal por defecto especificada, Data Integration utiliza automáticamente el activo de datos y el cubo de Object Storage que se especifican como ubicación temporal por defecto en ese activo de datos. Si el activo de datos seleccionado no tiene una ubicación temporal por defecto especificada, puede seleccionar el activo de datos de Object Storage que tiene el cubo que desea utilizar para la ubicación temporal. De lo contrario, puede actualizar el activo de datos para agregar una ubicación temporal por defecto o puede seleccionar otro activo de datos.

      A continuación, complete lo siguiente en el separador Opciones avanzadas:

      • Seleccione Activar Límite de Filas para especificar el número máximo de filas para recuperar.

      • En el campo Límite de fila, especifique el límite de fila.

      • Si espera un gran volumen de datos, especifique el tamaño en el campo Tamaño de fragmento en Activar fragmentación. Tamaño de fragmento es obligatorio si el límite de fila especificado es mayor que 100000.

        Para obtener ayuda con la fragmentación, consulte el blog Extracción de datos de Oracle Fusion Applications mediante BIP en Data Integration.

      • La sección Propiedades de BIP muestra los parámetros del informe de BIP del informe seleccionado para la entidad de datos. Seleccione una propiedad en los campos Número de filas devueltas e Desfase de inicio. No puede seleccionar la misma propiedad para ambos campos.
      • Para cargar solo registros nuevos o actualizados del origen al destino:
        • Seleccione la casilla de control Carga incremental para identificar y cargar solo los datos que se han creado o modificado desde la última vez que se ejecutó el proceso de carga.
        • En Columna de marca de agua, seleccione la propiedad que se utiliza para marcar los datos que se han cargado incrementalmente.
    3. Después de seleccionar una entidad de datos, el nombre de la entidad de datos seleccionada se muestra junto a Data entity en el separador Details (Detalles) del panel Properties.
      • Si ha proporcionado una sentencia SQL, se muestra la etiqueta SQL_ENTITY<nnnnnnnnn>, por ejemplo: SQL_ENTITY123456789

      • Si ha utilizado un parámetro en el nombre de la entidad, la etiqueta incluye el nombre del parámetro, por ejemplo: BANK_${REGION}

        Nota

        Para una entidad de datos que incluya un parámetro en el nombre, no puede enlazar el recurso de entidad a otro parámetro. La opción Asignar parámetro no está disponible.

  5. Para seleccionar una entidad de datos de un activo de datos de Object Storage, Amazon S3 o HDFS:
    1. Utilice el panel Seleccionar entidad de datos para seleccionar una sola entidad por nombre o seleccione una o más entidades mediante una expresión de patrón.
      • Seleccione Examinar por nombre para utilizar otro panel para examinar o buscar la lista disponible y, a continuación, seleccione una entidad para el nombre.

        Consulte Selección de una entidad de datos si necesita ayuda para buscar en la lista mediante un nombre completo o parcial.

        Puede incluir uno o más parámetros de flujo de datos en el nombre de una entidad de datos seleccionada mediante la sintaxis ${PARAMETER_NAME}. Por ejemplo: BANK_${REGION}.csv

        Consulte Uso de parámetros en nombres de entidades de datos si necesita ayuda para agregar y utilizar parámetros al configurar una entidad de datos por nombre.

      • Seleccione Examinar por patrón para utilizar una expresión regular (incluidos los comodines) a fin de seleccionar una o más entidades que coincidan con un directorio y un el patrón del archivo específicos. Por ejemplo, introduzca CUSTOMERS* en el campo y pulse Intro para filtrar la lista. Consulte Prueba y Uso de Patrones.

        También puede incluir parámetros en la expresión de patrón mediante la sintaxis ${PARAMETER_NAME}. Por ejemplo: CUSTOMERS_${REGION}/*

        Consulte Uso de parámetros en nombres de entidades de datos si necesita ayuda para agregar y utilizar parámetros al configurar nombres de entidades de datos por patrón.

        Nota

        Cuando se utiliza una expresión de patrón, se asume que todos los archivos que coinciden con el patrón tienen la misma estructura. Los archivos coincidentes se tratan como una única entidad en el flujo de datos. También se procesarán los archivos nuevos futuros que coincidan con el patrón.

        Para una entidad de datos que incluya un parámetro en el nombre, no puede enlazar el recurso de entidad a otro parámetro. La opción para asignar un parámetro no está disponible.

    2. Después de seleccionar la entidad de datos por nombre o por patrón, complete la configuración de la entidad en el panel Seleccionar entidad de datos.

      La forma de completar la configuración depende del tipo de archivo que elija para la entidad de datos seleccionada.

      Tipo de archivo Descripción

      CSV

      Si se ha utilizado Examinar por nombre para seleccionar la entidad de datos, se puede seleccionar Vista previa de datos no generados para mostrar las primeras 10 líneas del archivo.

      Seleccione el tipo de compresión (método de compresión) que se utiliza. Si no conoce el método de compresión que se ha utilizado para comprimir el archivo, seleccione Automático (por defecto).

      La codificación por defecto es UTF-8, que no se puede cambiar.

      Otras opciones que puede configurar son:

      • Si la primera fila del archivo es una fila de cabecera, seleccione para Tiene cabecera.
      • Si los valores de las filas de datos abarcan varias líneas, seleccione para Multi línea.
      • Especifique el carácter de escape que escapa a otros caracteres encontrados en los valores de datos. Por ejemplo: \
      • Seleccione el carácter Delimitador que separa los campos de datos. Por ejemplo: COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) o TAB (\t)
      • Si un delimitador de columna se incluye al final de una fila de datos en el archivo, seleccione para Delimitador final.
      • Especifique el carácter de oferta que trata a otros caracteres como caracteres literales. Por ejemplo: "

      JSON

      Seleccione el tipo de compresión (método de compresión) que se utiliza. Si no conoce el método de compresión que se ha utilizado para comprimir el archivo, seleccione Automático (por defecto).

      La codificación por defecto es UTF-8, que no se puede cambiar.

      Seleccione Usar esquema personalizado para pegar o cargar un esquema de ejemplo personalizado que se utilice para inferir la unidad de entidad. Cuando esta casilla de control está seleccionada, el cambio de esquema ya no es aplicable en la entidad de origen.

      • Si selecciona Cargar, suelte un archivo de esquema personalizado en el cuadro proporcionado o haga clic en Seleccionar un archivo para seleccionar el archivo de esquema que desea cargar.

      • Si selecciona Pegar en esquema, copie el contenido del archivo de texto de esquema y péguelo en el cuadro proporcionado.

      PARQUET

      El tipo de compresión predeterminado es Automático, que no se puede cambiar.

      AVRO

      El tipo de compresión predeterminado es Automático, que no se puede cambiar.

      EXCEL

      Solo están soportados los archivos XLSX.

      El tipo de compresión predeterminado es Automático, que no se puede cambiar.

      Por defecto, Data Integration trata la primera fila de un archivo como una fila de cabecera. Si la primera fila de un archivo no es una fila de cabecera, seleccione No para Tiene cabecera.

      En Seleccionar entidad por, puede seleccionar los criterios como Nombre de hoja, Índice de hoja o Nombre de tabla. A continuación, introduzca un valor para el nombre de la hoja de trabajo, el índice de la hoja de trabajo o el nombre de la tabla. El índice de hoja se basa en cero.

      En Nombre de hoja o Índice de hoja, introduzca el área del archivo que desea utilizar como Rango de datos para la selección. Si no introduce un valor de rango de datos, el valor por defecto es el rango de datos A1, que corresponde a toda la hoja. Si el archivo tiene una fila de cabecera, introduzca un valor que comience a partir de la fila de cabecera, por ejemplo, A1:K56.

    3. Después de completar la configuración de la entidad de datos, haga clic en Seleccionar.

      Volverá al separador Detalles del panel Propiedades. El nombre de la entidad de datos o expresión de patrón de entidad seleccionada se muestra junto a Entidad de datos. Por ejemplo, CUSTOMERS_EU.csv, CUSTOMERS* o CUSTOMERS_${REGION}/*

      Nota

      Para una entidad de datos que incluya un parámetro en el nombre, no puede enlazar el recurso de entidad a otro parámetro. La opción Asignar parámetro no está disponible.

    4. Si está disponible y es aplicable, seleccione la casilla de control Carga incremental para identificar y cargar solo los datos que se han creado o modificado desde la última vez que se ejecutó correctamente el proceso de carga.

      Para activos de datos de archivos como Object Storage, Data Integration realiza una extracción incremental basada en la fecha de la última modificación (registro de hora) de los objetos seleccionados en una carpeta o seleccionados por un patrón de archivo.

      Por ejemplo, supongamos que el 5 de enero hay tres archivos en el cubo de Object Storage: EMPLOYEE_1.csv, EMPLOYEE_2.csv, EMPLOYEE_3.csv

      Si un trabajo de carga se ejecuta correctamente el 5 de enero, se procesan los tres archivos.

      • El 6 de enero, se agrega un nuevo archivo EMPLOYEE_4.csv al cubo; este archivo tiene la fecha de la última modificación (registro de hora) del 6 de enero. Si se ejecuta un trabajo de carga el 6 de enero, solo se selecciona y procesa EMPLOYEE_4.csv para la carga incremental de datos.
      • El 6 de enero, se agrega un nuevo archivo EMPLOYEE_4.csv al cubo; este archivo tiene la fecha de la última modificación (registro de hora) del 6 de enero. El archivo EMPLOYEE_2.csv también se modifica el 6 de enero. Si se ejecuta un trabajo de carga el 6 de enero, los archivos EMPLOYEE_2.csv y EMPLOYEE_4.csv se seleccionan para su procesamiento.
  6. (Opcional) En el separador Detalles, seleccione el icono de refrescamiento junto al nombre de entidad seleccionado para asegurarse de que está utilizando los últimos esquemas de la entidad durante la sesión de trabajo actual en el diseñador. Solo se recuperan los metadatos de la entidad, no los cambios de datos reales.
  7. (Opcional) En el separador Opciones avanzadas, según el tipo de activo de datos de este operador de origen, puede seleccionar o borrar las opciones aplicables.

    elemento Descripción

    Recuperar metadatos de archivo como atributos

    Seleccione la casilla de control para incluir los metadatos del archivo (como el nombre de archivo y el tamaño de archivo) como atributos en los datos devueltos.

    No se admiten caracteres especiales (incluido el espacio) en los nombres de archivo.

    Permitir cambio de esquema

    Por defecto, el cambio de esquema está activado para permitir que Data Integration gestione dinámicamente los cambios de definición de esquema durante el tiempo de diseño y el tiempo de ejecución del flujo de datos. El cambio de esquema son los cambios en las definiciones de esquema en la entidad de datos especificada. Los cambios incluyen atributos que se agregan o eliminan, y tipos de dato de atributo o nombres de entidad que se cambian.

    Si desactiva la casilla de control Allow schema drift, desactive el cambio de esquema para bloquear las definiciones de esquema cuando se defina el flujo de datos. Cuando el cambio de esquema está desactivado, Data Integration utiliza una unidad fija de la entidad de datos especificada incluso si la unidad subyacente ha cambiado.

    Si se selecciona un esquema personalizado, el cambio de esquema no es aplicable y esta opción no se puede seleccionar.

    Considerar el archivo que falta como vacío

    Solo para un activo de datos de Object Storage.

    Esta casilla de control solo está disponible cuando no se selecciona Permitir cambio de esquema.

    Permitir ejecución

    Por defecto, la opción de ejecución está activada para permitir que Data Integration utilice el sistema de base de datos de origen para procesar operaciones de transformación, si el sistema soporta la ejecución. Solo las bases de datos Oracle, Oracle Autonomous Data Warehouse, Oracle Autonomous Transaction Processing y MySQL soportan la ejecución. Cuando Data Integration utiliza el sistema de base de datos de origen para procesar operaciones, se recuperan menos datos del origen.

    Al desactivar la casilla de control Permitir pushdown, se desactiva pushdown. Cuando la ejecución está desactivada, Data Integration recupera todos los datos directamente del sistema de origen y, a continuación, procesa las transformaciones.

    Configuración de parámetro y cabecera

    Solo para un activo de datos de REST.

    Utilice los valores de Parámetro y Cabecera para configurar más propiedades de origen.

  8. En el separador Atributos, puede ver los atributos de la entidad de datos que ha seleccionado. Para un activo de datos de BICC Fusion Applications, los atributos son las columnas de BICC del VO que ha seleccionado.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  9. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    Para un activo de datos de BICC Fusion Applications, solo se muestran 10 filas de datos.

    El perfil de datos no se muestra para atributos de datos complejos. Para ver la jerarquía de la estructura del dato en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  10. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Uso de patrones de archivo

Al configurar OCI Object Storage como origen de datos, puede utilizar una expresión regular para especificar un patrón de archivo y seleccionar una o más entidades de datos.

Un patrón de archivo es una regla para buscar archivos que coincidan con un directorio y un nombre de archivo y sobre cómo manejar los archivos coincidentes cuando se encuentran.

Sintaxis para utilizar

Data Integration soporta la sintaxis de patrón glob para especificar un patrón de archivo.

  • Un asterisco, *, coincide con cualquier número de caracteres (incluso ninguno).
  • Dos asteriscos, **, funcionan de la misma forma que *, pero cruzan los límites del directorio para que coincidan con las rutas completas.
  • Un signo de interrogación, ?, coincide exactamente con un carácter.
  • Las llaves especifican una recopilación de subpatrones. Por ejemplo:
    • {sun,moon,stars} coincide con "sun", "moon" o "stars".
    • {temp*,tmp*} coincide con todas las cadenas que empiezan por "temp" o "tmp".
  • Los corchetes indican un juego de caracteres únicos o, cuando se utiliza el carácter de guion (-), un rango de caracteres. Por ejemplo:
    • [aeiou] coincide con cualquier vocal en minúscula.
    • [0-9] coincide con cualquier dígito.
    • [A-Z] coincide con cualquier letra en mayúscula.
    • [a-z,A-Z] coincide con cualquier letra en mayúscula o en minúscula.

    Entre corchetes, *, ? y \ coinciden consigo mismos.

  • Todos los demás caracteres coinciden consigo mismos.
  • Para coincidir con *, ? u otros caracteres especiales, puede utilizar la barra invertida como carácter de escape, \. Por ejemplo: \\ coincide con una sola barra invertida y \? coincide con el signo de interrogación.
Ejemplos
*.htmlCoincide con todas las cadenas que terminan en .html
???Coincide con todas las cadenas que tienen exactamente tres letras o dígitos
*[0-9]*Coincide con todas las cadenas que contienen un valor numérico
*.{htm,html,pdf}Coincide con cualquier cadena que termina en .htm, .html o .pdf
a?*.javaCoincide con cualquier cadena que empieza por a, seguida por al menos una letra o un dígito y que termina en .java
{foo*,*[0-9]*}Coincide con cualquier cadena que empieza por foo o cualquier cadena que contiene un valor numérico
directory1/20200209/part-*[0-9]*jsonCoincide con todos los archivos de la carpeta en los que el nombre de archivo empieza por part- y tiene cualquier número de números de 0-9 y termina en json
directory3/**.csvCoincide con todos los archivos con la extensión csv que están en la carpeta directory3 y sus subcarpetas
directory3/*.csvCoincide con todos los archivos con la extensión csv que solo están en la carpeta principal directory3. No se incluyen los archivos de las subcarpetas.
Prueba y uso de un patrón

Puede probar la expresión para asegurarse de que el patrón que desea utilizar recupere los archivos de Object Storage para una o más entidades de datos.

  1. En el panel Seleccionar Entidad de Datos, seleccione Examinar por patrón.

  2. En el panel Explorar entidades de datos por patrón, seleccione Patrón de prueba en el menú Más acciones.

  3. En el panel Patrón de prueba, en el campo Patrón de búsqueda, introduzca una expresión de patrón que desee probar antes de utilizar.

    Por ejemplo, introduzca department1/2020/*.json para buscar todos los archivos con la extensión .json que están en el directorio department1/2020. Puede utilizar la sintaxis del parámetro ${} en el campo Patrón de búsqueda.

  4. Para probar el patrón de búsqueda, en el bloque Probar Nombres de Archivo, proporcione un nombre de archivo o varios nombres de archivo delimitados por una nueva línea. Por ejemplo, para el patrón BANK_C*/*, los nombres de archivo pueden ser:

    BANK_CITY/part-00002-0aaf87d57fbc-c000.csv	
    BANK_COUNTRY/part-00000-a66df3ab02fd-c000.csv
  5. Seleccione Patrón de prueba.

    Verifique que los nombres de los archivos de prueba se devuelvan en el bloque Nombre de archivo resultante.

  6. Seleccione Usar patrón para agregar la expresión del patrón al panel Examinar entidades de datos por patrón.

    Volverá al panel Examinar entidades de datos por patrón. Los archivos que coinciden con la expresión de patrón se muestran en la tabla.

  7. Haga clic en Seleccionar patrón.

    Volverá al panel Seleccionar entidad de datos. La expresión de patrón se muestra junto a Entidad de datos.

    Cuando se utiliza una expresión de patrón, se asume que todos los archivos que coinciden con el patrón tienen la misma estructura. Los archivos coincidentes se tratan como una única entidad en el flujo de datos. También se procesarán los archivos nuevos futuros que coincidan con el patrón.

Uso de la carga incremental gestionada de Data Integration (BICC)

La carga incremental solo carga datos nuevos o actualizados de un origen en un destino. En Data Integration, al configurar BICC Oracle Fusion Applications como datos de origen, puede utilizar la estrategia de extracción incremental gestionada para realizar una carga incremental.

Cuando elige usar la estrategia de extracción incremental, solo los registros nuevos o actualizados del origen se extraen en función de una fecha de última extracción. Data Integration proporciona dos opciones de fecha de última extracción:

  • Personalizado: proporciona una fecha de última extracción para cada ejecución de tarea.

  • Gestionado: Data Integration gestiona la fecha mediante el seguimiento del registro de hora de ejecución de la tarea y el almacenamiento de la última fecha de carga correcta como marca de agua en ejecuciones consecutivas.

    Con la opción de fecha de última extracción gestionada por Data Integration, no es necesario especificar explícitamente una fecha para una ejecución de tarea. Sin embargo, puede sustituir la fecha en tiempo de ejecución.

Ejecuciones de tareas iniciadas por un programa de tarea

Data Integration realiza un seguimiento de una ejecución de tarea independientemente de una ejecución de tarea iniciada por un programa de tarea. Por lo tanto, si utiliza la opción de fecha de última extracción gestionada y también configura un programa de tarea, Data Integration realiza un seguimiento automático del último registro de hora de ejecución de tarea correcta de las ejecuciones programadas de tarea por separado del último registro de hora de ejecución de tarea correcta de las ejecuciones de tarea que no se inician mediante un programa de tarea. Esto significa que la última fecha que se gestiona dentro de un programa de tarea o la última fecha que se gestiona dentro de una tarea no se modifica en la otra operación de ejecución.

Carga incremental para diferentes entidades de datos en un flujo de datos

Supongamos que desea configurar la carga incremental en diferentes entidades de datos de un flujo de datos. Para ello, utilice parámetros y cree un programa de tareas para cada entidad de datos. Los pasos generales son los siguientes:

  1. En el flujo de datos, asigne parámetros para el esquema de origen (oferta BICC) y la entidad de datos (OV de BICC).
  2. Cree y publique una tarea de integración para el flujo de datos con parámetros.
  3. Cree un programa de tarea para la tarea de integración. En la página Configurar parámetros, especifique los valores de esquema y entidad de datos para el programa de tarea.
  4. Cree otro programa de tarea para la misma tarea de integración. En la página Configurar parámetros, defina los valores de esquema y entidad de datos para este programa de tarea.
Carga incremental varias veces en un día

Para realizar una carga incremental más de una vez al día, agregue un operador de filtro inmediatamente después del operador de origen BICC en el flujo de datos. A continuación, cree una expresión de condición para filtrar los datos que ya se han procesado. Por ejemplo, si la columna last_update_date del objeto de vista de BICC es LastUpdateDateField, la expresión puede ser la siguiente:

FILTER_1.MYSOURCE_1.LastUpdateDateField > ${SYS.LAST_LOAD_DATE}

Operador de destino

Utilice el operador de destino para especificar las entidades de datos que sirven como salida para almacenar los datos transformados.

Adición y configuración de un operador de destino

Puede agregar varios operadores de destino a un flujo de datos. Cada destino solo puede tener un puerto de entrada.

Importante

Si está utilizando una entidad de datos jerárquica para un operador de destino, consulte Tipos de datos jerárquicos para saber lo que está soportado. Es posible que no pueda realizar algunas configuraciones en los separadores Atributos, Asignación y Datos del panel Propiedades.
  1. En el panel Operadores, arrastre un operador de Destino al lienzo.
  2. Con el operador de destino enfocado, haga lo siguiente en el separador Detalles del panel Propiedades:

    elemento Descripción

    Identificador

    Introduzca un nombre para el operador de destino o deje el nombre por defecto como está.

    Crear nueva entidad de datos

    (Opcional) Active la casilla de control para crear una nueva entidad en el destino, en lugar de actualizar una entidad existente en el destino. En un paso posterior, se le solicitará que introduzca un nombre para la entidad de datos que se creará en el destino.

    No active la casilla de control si desea utilizar una entidad de datos existente como destino. Se le pedirá que seleccione la entidad de datos después de seleccionar el activo de datos de destino, la conexión y el esquema.

    Activo de datos

    Conexión

    Esquema o Cubo

    En el orden de recursos que se presenta, haga clic en Seleccionar junto al recurso para seleccionar el activo de datos, la conexión, el esquema o el cubo.

    Tenga en cuenta lo siguiente:

    • No todos los tipos de origen de datos están disponibles como activos de datos de destino. Por ejemplo, PostgreSQL y Hive no están disponibles como destinos.

    • Para la estrategia de integración de fusión, no puede utilizar un activo de datos de Object Storage como destino.

    • Si utiliza un activo de datos de Object Storage, seleccione primero el compartimento y, a continuación, seleccione el cubo.

    • Para utilizar Autonomous Data Warehouse o Autonomous Transaction Processing como destino, necesita un cubo de Object Storage como ubicación temporal. Si selecciona un activo de datos que no tiene una ubicación temporal por defecto especificada en ese activo de datos, Data Integration muestra una notificación de advertencia. Cuando vea la notificación, seleccione una de las siguientes opciones:
      • Seleccione Actualizar activo de datos para agregar una ubicación temporal por defecto a ese activo de datos.
      • Haga clic en Seleccionar junto a Ubicación temporal en el panel Propiedades para seleccionar el activo de datos de Object Storage que tiene el cubo que desea utilizar para la ubicación temporal.
      Se necesita el permiso de solicitud PAR_MANAGE. Para más información consulte el paso 5.

    Entidad de datos

    Si seleccionó la casilla de control Crear nueva entidad de datos, introduzca un nombre para la entidad que se creará como destino. Para más información consulte el paso 3.

    Si no ha activado la casilla de control Crear Nueva Entidad de Datos, seleccione una entidad de datos existente como destino. Para más información consulte el paso 4.

    (Solo para activos de datos de tipo Autonomous Data Warehouse o Autonomous Transaction Processing)

    Ubicación temporal

    Data Integration utiliza la ubicación temporal para almacenar temporalmente los datos antes de cargarlos en el destino.

    Para más información consulte el paso 5.

    Estrategia de integración

    La forma en que los datos se mueven a la entidad de datos de destino depende de la estrategia de integración que seleccione. Las opciones son:

    • Insertar: inserta nuevos registros o agrega los registros cuando existen datos en el destino.

      Si la casilla de control Crear nueva entidad de datos está seleccionada, la única opción de estrategia disponible para su selección es Insertar.

    • Sobrescribir: trunca el destino antes de insertar nuevos registros.

      Si selecciona la estrategia sobrescribir, no puede crear una nueva entidad de datos para la entidad de destino.

    • Fusionar: inserta nuevos registros y fusiona registros existentes en una entidad de datos existente.

      Tenga en cuenta lo siguiente al utilizar la estrategia de fusión:

      • La estrategia de fusión solo está disponible para destinos de base de datos. No puede utilizar un activo de datos de Object Storage como destino si desea utilizar esta estrategia de integración.

      • La clave de fusión identifica el atributo o los atributos para determinar las filas existentes o nuevas que se van a actualizar o insertar. Puede seleccionar una clave primaria/única o una clave no primaria como clave de fusión.

        Haga clic en Seleccionar o Editar. En el panel Clave de fusión, realice una de las siguientes acciones:

        • Seleccione Atributos de clave principal/única y seleccione una clave.
        • Seleccione Otros atributos para utilizar otros atributos (no principales). Introduzca un nombre para la clave de fusión y seleccione los atributos de la lista.
      • Si se configura una entidad de datos de destino con parámetros para utilizar la estrategia de fusión, puede cambiar la selección de clave de fusión:
        • En una tarea de integración en tiempo de diseño y tiempo de ejecución
        • En una tarea de integración en un pipeline en tiempo de diseño y en tiempo de ejecución (tarea de pipeline)
        • En un programa de tarea (tarea de integración y tarea de pipeline)

    (Solo para Object Storage)

    Crear salida como un único archivo

    Este paso es opcional para los destinos de Object Storage.

    Seleccione la casilla de control Crear Salida como Archivo Único para escribir la salida en un único archivo; de lo contrario, la operación crea varios archivos. El único archivo de salida se sobrescribe cada vez que se ejecuta la tarea.

    La creación de un único archivo de salida podría afectar al rendimiento de Data Integration. No utilice la opción de archivo de salida único para juegos de datos grandes.

    Puede elegir escribir la salida en un solo archivo solo si se aplica una de las siguientes condiciones:

    • Cuando la estrategia de integración es Insertar y la casilla de control Crear nueva entidad de datos está seleccionada. No agregue la barra inclinada (/) al final del nuevo nombre de entidad. Para más información consulte el paso 3.
    • Cuando la estrategia de integración está sobreescrita y utiliza una entidad de datos existente (la casilla de control Crear nueva entidad de datos no está seleccionada). Seleccione una entidad de datos existente que no tenga la barra inclinada (/) al final del nombre de la entidad. Para más información consulte el paso 4.
  3. Si seleccionó la casilla de control Crear nueva entidad de datos: introduzca un nombre para la entidad que se creará. Solo se crea una nueva entidad de datos si el nombre no existe.

    Consulte también Parámetros en nombres de entidades de datos si desea utilizar un parámetro para parte del nuevo nombre de entidad.

    En función del tipo de activo de datos, tenga en cuenta lo siguiente al introducir un nombre para la entidad de datos:

    Tipo de destino Descripción

    Para Oracle Database, Autonomous Data Warehouse o Autonomous Transaction Processing

    Introduzca el nuevo nombre de entidad de datos.

    Al crear una entidad de datos de base de datos como salida de destino, si el nombre de entidad que proporciona no existe, se crea una entidad de datos y se insertan datos en la salida. Si el nombre de entidad que proporciona existe, el resultado de la operación depende de la unidad del destino en el flujo de datos y la unidad de la entidad existente.

    Una unidad se basa en el número y el nombre de los atributos, los tipos de datos, las características de tipo, como la longitud y la precisión, y si los datos están presentes. Por ejemplo, el tipo de datos varchar2(4000) no es la misma unidad que varchar2(2000), aunque el nombre de atributo en el destino de flujo de datos sea el mismo que el nombre del atributo en la entidad de datos existente.

    • Si la unidad de la entidad de destino en el flujo de datos es la misma que la unidad de la entidad existente, la operación de base de datos:
      • Inserta datos si no hay datos
      • Actualiza o inserta datos si hay datos
    • Si la unidad de la entidad de destino del flujo de datos no es la misma que la unidad de la entidad existente:
      • La operación agrega el atributo a la entidad existente cuando el nombre de atributo no existe.

        Por ejemplo, el destino del flujo de datos tiene el atributo EMPLOYEE_ID NUMBER(10), pero EMPLOYEE_ID NUMBER no está presente en la entidad existente.

      • Cuando el nombre de atributo está presente en la entidad existente, pero la unidad del tipo de datos no es la misma:
        • Cuando haya datos de atributo, la operación de base de datos falla cuando la unidad de datos sea más pequeña. Por ejemplo, cuando el destino del flujo de datos tiene EMPLOYEE_COMMENTS VARCHAR2(4000) y la entidad existente tiene EMPLOYEE_COMMENTS VARCHAR2(2000), la operación falla. Cuando el destino del flujo de datos tiene EMPLOYEE_COMMENTS VARCHAR2(2000) y la entidad existente tiene EMPLOYEE_COMMENTS VARCHAR2(4000), la operación se realiza correctamente.

        • Cuando no hay datos de atributo, la operación modifica el atributo e inserta datos.

          Si el destino es una base de datos autónoma, puede que aparezca el error de base de datos ORA-22859: invalid modification of columns al intentar modificar un objeto de columna, REF, VARRAY, una tabla anidada o un tipo de columna LOB. Cree una columna del tipo preferido y copie los datos de columna en el nuevo tipo mediante el constructor de tipo adecuado.

    Tenga en cuenta también que la conversión entre TEXT y CLOB no está soportada en Data Integration. Con el límite de 4000 bytes para una columna VARCHAR2 en una base de datos autónoma, puede que tenga que utilizar una entidad de datos de destino existente que tenga un tipo de dato CLOB en lugar de seleccionar la casilla de control Crear nueva entidad de datos en determinados casos de uso.

    Para Object Storage

    Introduzca el nuevo nombre de la entidad de datos, seguido de una barra inclinada (/). Por ejemplo, introduzca newdirectory/.

    Sin embargo, si selecciona la casilla de control Crear salida como un único archivo porque desea crear una única salida de archivo, introduzca el nuevo nombre de entidad sin la barra inclinada (/) al final.

    Al escribir la salida en un único archivo, puede incluir parámetros en el nombre del archivo mediante la sintaxis ${PARAMETER_NAME}. Por ejemplo, el nombre de archivo se puede escribir como:

    /bucket1/file_${REGION}.csv
    /bucket1/file_${CURRENT_DATE}.csv

    Seleccione también el tipo de archivo y el tipo de compresión. Los tipos de compresión que están disponibles para la selección dependen del tipo de archivo que elija. Si no conoce el método de compresión que se utiliza para comprimir el archivo, seleccione Ninguno (por defecto).

    Para los tipos de archivo CSV y JSON, la codificación por defecto es UTF-8, que no se puede cambiar.

    Si elige el tipo de archivo CSV, otras configuraciones que puede configurar son:

    • Si la primera fila del archivo es una fila de cabecera, seleccione para Tiene cabecera.
    • Si los valores de las filas de datos abarcan varias líneas, seleccione para Multi línea.
    • Especifique el carácter de escape que escapa a otros caracteres encontrados en los valores de datos. Por ejemplo: \
    • Seleccione el carácter Delimitador que separa los campos de datos. Por ejemplo: COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) o TAB (\t)
    • Si un delimitador de columna se incluye al final de una fila de datos en el archivo, seleccione para Delimitador final.
    • Especifique el carácter de oferta que trata a otros caracteres como caracteres literales. Por ejemplo: "
  4. Si no ha activado la casilla de control Crear Nueva Entidad de Datos: seleccione una entidad de datos existente.

    Para asegurarse de que utiliza los últimos esquemas de la entidad durante la sesión de trabajo actual en el diseñador, seleccione el icono de refrescamiento junto al nombre de la entidad. Solo se recuperan los metadatos de la entidad, no los cambios de datos reales.

    En función del tipo de activo de datos, tenga en cuenta lo siguiente al realizar la configuración para utilizar una entidad de datos existente:

    Tipo de destino Descripción

    Para Object Storage

    Seleccione la casilla de control Crear Salida como Archivo Único para utilizar un único archivo de salida; de lo contrario, la operación crea varios archivos. El único archivo de salida se sobrescribe cada vez que se ejecuta la tarea.

    La creación de un único archivo de salida podría afectar al rendimiento de Data Integration. No utilice la opción de archivo de salida único para juegos de datos grandes.

    Si la casilla de control Crear salida como un solo archivo está seleccionada: al seleccionar la entidad de datos, seleccione un nombre de entidad que no tenga la barra inclinada (/) al final.

    Seleccione el Tipo de archivo. Si CSV es el tipo de archivo, puede seleccionar Vista previa de datos no procesados para mostrar las primeras 10 líneas del archivo.

    Seleccione el tipo de compresión. Los tipos de compresión que están disponibles para la selección dependen del tipo de archivo que elija. Si no conoce el método de compresión que se utiliza para comprimir el archivo, seleccione Ninguno (por defecto).

    Para los tipos de archivo CSV y JSON, la codificación por defecto es UTF-8, que no se puede cambiar.

    Si el tipo de archivo es CSV, otras configuraciones que puede configurar son:

    • Si la primera fila del archivo es una fila de cabecera, seleccione para Tiene cabecera.
    • Si los valores de las filas de datos abarcan varias líneas, seleccione para Multi línea.
    • Especifique el carácter de escape que escapa a otros caracteres encontrados en los valores de datos. Por ejemplo: \
    • Seleccione el carácter Delimitador que separa los campos de datos. Por ejemplo: COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) o TAB (\t)
    • Si un delimitador de columna se incluye al final de una fila de datos en el archivo, seleccione para Delimitador final.
    • Especifique el carácter de oferta que trata a otros caracteres como caracteres literales. Por ejemplo: "

    Si el tipo de archivo es JSON, seleccione Usar esquema personalizado para pegar o cargar un esquema de ejemplo personalizado que se utilice para inferir la unidad de entidad.

    • Si selecciona Cargar, suelte un archivo de esquema personalizado en el cuadro proporcionado o haga clic en Seleccionar un archivo para seleccionar el archivo de esquema que desea cargar.

    • Si selecciona Pegar en esquema, copie el contenido del archivo de texto de esquema y péguelo en el cuadro proporcionado.

  5. Para Autonomous Data Warehouse o Autonomous Transaction Processing, seleccione la ubicación temporal si no se ha definido una ubicación por defecto para el activo o edite la ubicación para utilizar una ubicación temporal diferente.
    Nota

    Si el destino es Autonomous Data Warehouse o Autonomous Transaction Processing, se activa la opción de ubicación temporal para que seleccione un cubo de Object Storage. Data Integration utiliza la ubicación temporal para almacenar temporalmente los datos antes de cargarlos en el destino.

    Si el activo de datos de destino está configurado con una ubicación temporal por defecto, Data Integration utiliza automáticamente ese cubo para la ubicación temporal, a menos que edite explícitamente el valor para especificar una ubicación temporal diferente.

    Para utilizar Autonomous Data Warehouse o Autonomous Transaction Processing como destino, primero debe activar el permiso de solicitud PAR_MANAGE en el cubo temporal; por ejemplo:

    allow any-user to manage buckets in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.permission='PAR_MANAGE', request.principal.id='<workspace-ocid>'}

    Obtenga más información sobre el uso de solicitudes autenticadas previamente.

    1. En Ubicación temporal, haga clic en Seleccionar o Editar.
    2. (Para editar) En el panel Seleccionar ubicación temporal, no active la casilla de control Usar configuración de ubicación temporal por defecto si desea seleccionar otra ubicación temporal.
    3. Seleccione el menú Activo de Datos y seleccione un activo del almacenamiento de objetos.
    4. A continuación, seleccione las opciones Conexión, Compartimento y Cubo y haga clic en Seleccionar.
  6. (Opcional) En el separador Opciones avanzadas, según el tipo de activo de datos de este operador de destino, puede introducir valores o utilizar valores por defecto.

    elemento Descripción

    Límite de rechazo

    En Autonomous Data Warehouse o Autonomous Transaction Processing

    Introduzca un valor.

    Puede especificar el número máximo de filas erróneas que no se pueden cargar en el destino antes de que falle la tarea de integración. Por ejemplo, si el origen de datos tiene 1.000 filas y se define el límite de rechazo en 200, la tarea falla inmediatamente después de que se rechaza la fila errónea número 200.

    Si no especifica un valor, el valor por defecto es cero, lo que significa que la tarea falla cuando se rechaza la primera fila errónea.

    Si encuentra un fallo de tarea, compruebe en los logs los nombres de tabla en los que se han rechazado las filas. A continuación, consulte las tablas y filas afectadas en la base de datos autónoma.

    Orden de carga

    Introduzca un valor.

    Solo se permiten los enteros positivos. El valor por defecto es 0. El orden de carga especifica el orden de los nodos de destino en los que se cargan los datos. El destino con el valor 0 se carga primero y, a continuación, el destino con el valor 1, y así sucesivamente. Si varios nodos tienen el mismo valor, los destinos se cargan sin orden concreto.

  7. En el separador Atributos, puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos por un patrón de nombre o por un tipo de atributo. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    Solo puede aplicar un filtro de patrón de nombre a la vez, pero puede aplicar varios filtros de tipo. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  8. En el separador Datos, vea un ejemplo de los datos basado en las reglas que haya aplicado en el separador Atributos. No se pueden aplicar transformaciones en un operador de destino porque los datos son de solo lectura.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  9. En el separador Asignación, especifique cómo se asignan los atributos de entrada a los atributos de la entidad de datos de destino. Tenga en cuenta que los atributos de asignación no son aplicables si ha seleccionado la casilla de control Crear nueva entidad de datos.

    Para las entidades de destino con tipos de datos jerárquicos, solo se pueden asignar campos de primer nivel. Consulte Tipos de datos jerárquicos para saber lo que está soportado.

  10. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.

    Data Integration comprueba y proporciona advertencias en las siguientes situaciones:

    • El truncamiento de datos se puede producir cuando los datos se cargan desde los atributos de origen a los atributos de destino asignados.
    • El tipo de dato de un atributo de origen no coincide con el tipo de dato del atributo asignado.
Visualización de datos

El separador Datos muestra los datos transformados según los operadores aplicados en el flujo de datos.

Importante

Si está utilizando una entidad de datos jerárquica para un operador de destino, consulte Tipos de datos jerárquicos para saber lo que está soportado.

Puede filtrar datos en la entidad de destino por un patrón de nombre o tipo de datos. Para filtrar datos por un patrón de nombre, introduzca un patrón de expresión regular simple o los comodines ? y * en el campo Filtrar por patrón. Para filtrar datos por un tipo, seleccione el tipo de datos en el menú situado junto al campo de patrón.

No se pueden aplicar transformaciones al operador de destino porque los datos son de solo lectura.

Asignación de atributos

El separador Asignación solo está disponible para un operador de destino.

Importante

Si está utilizando una entidad de datos jerárquica para un operador de destino, consulte Tipos de datos jerárquicos para saber lo que está soportado.

Al crear una nueva entidad de datos de destino, el separador Asignación no está disponible. Los atributos de entrada se usan para crear la estructura de tabla o de archivos con una asignación de 1 a 1.

Al utilizar una entidad de datos de destino existente, asigne los atributos de entrada a los atributos de la entidad de datos de destino. Las acciones que puede realizar son:

Asignación por posición

Asigna atributos de entrada a atributos de entidad de destino según su posición en las listas.

En el menú Acciones, seleccione Asignación automática por posición. Se agrega la regla de asignación automática por posición.

Asignar por nombre

Asigna atributos de entrada a los atributos de destino con el mismo nombre.

En el menú Acciones, seleccione Asignación automática por nombre. Se agrega la regla de asignación automática por nombre.

Asignación por patrón

Asigna atributos de entrada a atributos de destino en función de reglas de expresión regular simples definidas por el usuario.

En el menú Acciones, seleccione Asignar por patrón. Introduzca un patrón de origen y un patrón de destino. A continuación, seleccione la asignación de vista previa para probar los patrones de origen y destino.

Para definir un patrón, puede utilizar los símbolos asterisco (*) y signo de interrogación (?) Utilice un asterisco para indicar un comodín de cualquier número de caracteres en un patrón de cadena. Utilice un signo de interrogación para indicar un comodín de un solo carácter. Por ejemplo, *INPUT? asigna cualquier atributo coincidente que empiece por el número n de caracteres que contengan la cadena INPUT seguido de un único carácter, como NEWINPUTS.

Por defecto, la coincidencia de patrones no distingue entre mayúsculas y minúsculas. Por ejemplo, el patrón de origen *Name coincide con el nombre de destino CUSTOMER_NAME y Customer_Name.

Para indicar diferentes grupos de captura, utilice $n. Por ejemplo, supongamos que desea asignar LAST_NAME, FIRST_NAME y USERNAME de un operador de origen o ascendente a TGT_LAST_NAME, TGT_FIRST_NAME y TGT_USERNAME en la entidad de datos de destino. Debe introducir *NAME en el campo Patrón de origen y TGT_$1 en el campo Patrón de destino. El asterisco (*) en *NAME significa que la cadena de caracteres antes de NAME va a ser idéntica a la cadena de caracteres encontrada en $1 del patrón de destino. $1 hace referencia al primer grupo de captura en el patrón de origen, que en este caso es el asterisco (*.

En los casos en los que necesite una coincidencia de patrones sensible a mayúsculas/minúsculas, agregue el prefijo (?c) al patrón de origen. Por ejemplo, supongamos que desea asignar el atributo de origen CustomerName, que utiliza letras mayúsculas y minúsculas de camello en su nombre, al atributo de destino con el nombre Customer_Name. Debe introducir (?c)([A-Z][a-z]+)([A-Z][a-z]+) como patrón de origen y $1_$2 como patrón de destino. Cuando se agrega el prefijo (?c) al principio de un patrón de origen, la coincidencia de patrones sensibles a mayúsculas/minúsculas se activa para la asignación. Data Integration detecta que la "N" en CustomerName es el inicio de un nuevo patrón y, por lo tanto, trata ([A-Z][a-z]+)([A-Z][a-z]+) como dos palabras diferentes (grupos de captura) al realizar la coincidencia.

Asignación manual directa

Arrastre un atributo entrante de la lista de origen a un atributo de la lista de destino para crear una asignación.

Asimismo, puede seleccionar Asignación manual en el menú Acciones. A continuación, utilice el cuadro de diálogo Asignar atributo para crear una asignación seleccionando un atributo de origen y un atributo de destino.

Eliminación de una asignación

Elimina la asignación seleccionada.

Seleccione Ver reglas. En el panel Reglas, seleccione una o varias reglas y seleccione Eliminar. También puede seleccionar Eliminar en el menú Acciones de la regla (Menú Acciones) para borrar esa regla.

Borrar todas las asignaciones

Elimina todas las asignaciones.

En el menú Acciones, seleccione Restablecer asignaciones. Se eliminan todas las reglas de asignación manual y automática.

Operadores de conformación

Importante

Para los tipos de datos complejos, consulte Tipos de datos jerárquicos para saber lo que está soportado. Es posible que no pueda realizar algunas configuraciones en el separador Atributos y el separador Datos del panel Propiedades.

Operador de filtro

Utilice el operador de filtro para seleccionar un subjuego de datos del puerto de entrada para continuar en sentido descendente hasta el puerto de salida en función de una condición de filtro.

Adición y configuración de un operador de filtro
  1. Desde el panel Operadores, arrastre un operador de Filtro al lienzo.
  2. Con el operador de filtro enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. Junto a Condición de filtro, seleccione Crear.
  4. En la sección Creador de condiciones del panel Crear condición de filtro, puede arrastrar o hacer doble clic en atributos, parámetros y funciones, o arrastrarlos, para agregarlos al editor a fin de crear una condición. También puede introducir una expresión de condición manualmente en el editor y validar la expresión.
    Nota

    En el editor, un elemento agregado, como una función, puede tener marcadores de posición. Para sustituir un marcador de posición por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista.
  5. Seleccione Crear.
  6. (Opcional) Seleccione Asignar Parámetro para utilizar parámetros de modo que la condición de filtro no esté vinculada al código compilado al publicar el flujo de datos. Consulte Asignación de un parámetro.
  7. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  8. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  9. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Creación de una condición de filtro

Utilice el Creador de condiciones para seleccionar visualmente elementos para crear una condición de filtro. También puede introducir manualmente una condición de filtro en el editor.

La creación de una condición de filtro permite seleccionar un subjuego de datos de un operador ascendente en función de la condición.

Los elementos que puede utilizar en una condición de filtro incluyen atributos, parámetros y funciones de entrada. Puede arrastrar o hacer doble clic en un elemento de la lista para agregarlo al editor a fin de crear una condición. Puede validar la condición antes de crearla.

De entrada muestra los atributos del operador ascendente que se transfieren a este operador de filtro.

Por ejemplo, para filtrar datos por nombre de ciudad, puede crear la expresión de condición del siguiente modo:

FILTER_1.ADDRESSES.CITY='Redwood Shores'

Los parámetros son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto. Consulte Adición de un parámetro de expresión.

Supongamos que desea utilizar un parámetro para el nombre de ciudad en la condición de filtro. Puede crear un parámetro VARCHAR con el nombre P_VARCHAR_CITY y definir el valor por defecto en Redwood Shores. A continuación, puede crear la expresión de filtro del siguiente modo:

FILTER_1.ADDRESSES.CITY=$P_VARCHAR_CITY

Las funciones son las funciones disponibles en Data Integration que puede utilizar en una condición. Las funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos.

Por ejemplo, para filtrar datos por un nombre de ciudad o por población, puede utilizar la función OR para crear la expresión de condición de filtro del siguiente modo:

FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>100000000
FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>$P_NUMERIC

A continuación se muestra una lista de funciones que están disponibles para su agregación al crear condiciones:

Funciones hash
FunciónDescripciónEjemplo
MD5(all data types)Calcula un total de control MD5 del tipo de dato y devuelve un valor de cadena. MD5(column_name)
SHA1(all data types)Calcula un valor hash SHA-1 del tipo de dato y devuelve un valor de cadena. SHA1(column_name)
SHA2(all data types, bitLength)Calcula un valor hash SHA-2 del tipo de dato y devuelve un valor de cadena. bitLengthes un entero. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcula un valor hash para expr y devuelve un valor NUMBER.

expr puede ser una expresión, una columna, un literal.

max_bucket es el valor de cubo máximo devuelto, entre 0 y 4294967295 (valor por defecto).

seed_value es un valor entre 0 (valor por defecto) y 4294967295.

Oracle aplica la función hash a la combinación de expr y seed_value para producir muchos resultados diferentes para el mismo juego de datos.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POWER(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') devuelve -45677.7

Funciones de fecha y hora
Función Descripción Ejemplo
CURRENT_DATE Devuelve la fecha actual. CURRENT_DATEdevuelve la fecha de hoy, como 2023-05-26
CURRENT_TIMESTAMP Devuelve la hora y la fecha actuales de la zona horaria de la sesión. CURRENT_TIMESTAMP devuelve la fecha actual y la hora actual, como 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado. DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_FORMAT(expr, format[, locale])

Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato de fecha soportados:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') devuelve '2020-10-11'. El primer argumento es un objeto Date que representa el 11 de octubre de 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') devuelve '2018/junio/17'

DAYOFMONTH(date) Devuelve el día del mes de la fecha. DAYOFMONTH('2020-12-25') devuelve 25
DAYOFWEEK(date) Devuelve el día de la semana de la fecha. DAYOFWEEK('2020-12-25') devuelve 6 para Friday. En los Estados Unidos, el domingo se considera 1, el lunes es 2, y así sucesivamente.
DAYOFYEAR(date) Devuelve el día del año de la fecha. DAYOFYEAR('2020-12-25') devuelve 360
WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

WEEKOFYEAR('2022-07-28') devuelve 30

WEEKOFYEAR('2022-07-28 13:24:30') returns 30

HOUR(datetime) Devuelve el valor de hora de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 15
LAST_DAY(date) Devuelve el último día del mes de la fecha. LAST_DAY('2020-12-25') devuelve 31
MINUTE(datetime) Devuelve el valor de minutos de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 10
MONTH(date) Devuelve el valor de mes de la fecha. MONTH('2020-06-25') devuelve 6
QUARTER(date) Devuelve el trimestre del año en el que se encuentra la fecha. QUARTER('2020-12-25') devuelve 4
SECOND(datetime) Devuelve el segundo valor de la fecha y hora. SECOND('2020-12-25 15:10:30') devuelve 30
TO_DATE(string, format_string[, localeStr]) Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, las cadenas de formato sensibles a mayúsculas/minúsculas soportadas son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') devuelve el valor de fecha 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') devuelve el valor de fecha 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') devuelve un objeto TIMESTAMP que representa 11am 10:10 Oct 11th, 2020
WEEK(date)

Devuelve el valor de semana de la fecha.

WEEK('2020-06-25') devuelve 4
YEAR(date) Devuelve el valor de año de la fecha. YEAR('2020-06-25') devuelve 2020
ADD_MONTHS(date_expr, number_months) Devuelve la fecha después de agregar el número de meses especificado a la fecha, registro de hora o cadena especificados con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) devuelve 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) devuelve 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') devuelve 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') devuelve 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') devuelve 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpreta una fecha, un registro de hora o una cadena como hora UTC y la convierte en un registro de hora en la zona horaria especificada.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl' o un desfase de zona horaria (por ejemplo, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convierte una fecha, un registro de hora o una cadena en la zona horaria especificada en un registro de hora UTC.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl') o un desfase de zona horaria (por ejemplo, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convierte la hora o época de Unix especificada en una cadena que representa el registro de hora de ese momento en la zona horaria del sistema actual y en el formato especificado.

Nota: La hora de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC.

Si se omite fmt, el formato por defecto es yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) devuelve '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) devuelve '2021-11-18 10:07:34'

La zona horaria por defecto es PST en los ejemplos

UNIX_TIMESTAMP([time_expr[, fmt]])

Convierte la hora actual o especificada en un registro de hora de Unix en segundos.

time_expr es una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Si no se proporciona time_expr, se convierte la hora actual.

Si time_expr es una cadena y se omite fmt, el valor por defecto es yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') devuelve 28800

La zona horaria por defecto es PST en este ejemplo

INTERVAL 'year' YEAR[(year_precision)]

Devuelve un período de tiempo en años.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '1' YEAR devuelve un intervalo de 1 año

INTERVAL '200' YEAR(3) devuelve un intervalo de 200 años

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Devuelve un período de tiempo en años y meses. Se utiliza para almacenar un período de tiempo utilizando los campos year y month.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '100-5' YEAR(3) TO MONTH devuelve un intervalo de 100 años, 5 meses. Debe especificar una precisión de año inicial 3.
INTERVAL 'month' MONTH[(month_precision)]

Devuelve un período de tiempo en meses.

month_precision es el número de dígitos del campo mes; está comprendido entre 0 y 9. Si se suprime month_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '200' MONTH(3) devuelve un intervalo de 200 meses. Debe especificar una precisión de mes 3.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) devuelve un intervalo de 11 días, 10 horas, 09 minutos, 08 segundos y 555 milésimas de segundo
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en días, horas y minutos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '11 10:09' DAY TO MINUTE devuelve un intervalo de 11 días, 10 horas y 09 minutos
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Devuelve un período de tiempo en días y horas.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '100 10' DAY(3) TO HOUR devuelve un intervalo de 100 días y 10 horas
INTERVAL 'day' DAY[(day_precision)]

Devuelve un período de tiempo en días.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

INTERVAL '999' DAY(3) devuelve un intervalo de 999 días
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) devuelve un intervalo de 9 horas, 08 minutos y 76 666 666 segundos
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en horas y minutos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '09:30' HOUR TO MINUTE devuelve un intervalo de 9 horas y 30 minutos
INTERVAL 'hour' HOUR[(hour_precision)]

Devuelve un período de tiempo en horas.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '40' HOUR devuelve un intervalo de 40 horas
INTERVAL 'minute' MINUTE[(minute_precision)]

Devuelve un período de tiempo en minutos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '15' MINUTE devuelve un intervalo de 15 minutos
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en minutos y segundos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '15:30' MINUTE TO SECOND devuelve un intervalo de 15 minutos y 30 segundos
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en segundos.

fractional_seconds_precision es el número de dígitos en la parte fraccional del campo second; oscila entre 0 y 9. El valor por defecto es 3.

INTERVAL '15.678' SECOND devuelve un intervalo de 15 678 segundos
Funciones analíticas
Función Descripción Ejemplo
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Devuelve el valor evaluado en la fila que es la primera fila del marco de ventana. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el primer valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionada por BANK_ID y en orden ascendente por BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado antes de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) devuelve el valor de BANK_ID de la segunda fila antes de la fila actual, particionado por BANK_ID y en orden descendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Devuelve el valor evaluado en la fila que es la última fila del marco de ventana. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el último valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionado por BANK_ID y en orden ascendente por BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado después de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el valor de BANK_ID de la segunda fila después de la fila actual, particionado por BANK_ID y en orden ascendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
RANK() OVER([ partition_clause ] order_by_clause) Devuelve el rango de la fila actual con intervalos, contando desde 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el rango de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Devuelve el número único de la fila actual dentro de su partición, contando desde 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el número de fila único de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnas.CONCAT('Oracle','SQL') devuelve OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Devuelve los valores combinados de cadenas o columnas utilizando el separador especificado entre las cadenas o columnas.

Se necesita un separador y debe ser una cadena.

Se debe proporcionar al menos una expresión después del separador. Por ejemplo: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') devuelve Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) devuelve 123 MyCity 987654

Si un secundario de la función es una matriz, la matriz se simplifica:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) devuelve 1,2,3,4,5,6,7,8,9

INITCAP(string)Devuelve la cadena con la primera letra de cada palabra en mayúsculas, mientras que el resto de letras están en minúsculas, y cada palabra está delimitada por un espacio en blanco.INITCAP('oRACLE sql') devuelve Oracle Sql
INSTR(string, substring[start_position])Devuelve el índice (basado en 1) de la primera ocurrencia de substring en string.INSTR('OracleSQL', 'SQL') devuelve 7
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
NVL(expr1, epxr2)Devuelve el argumento que no es nulo.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') devuelve https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('ABCabc', 'abc', 'DEF') devuelve ABCDEF
RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Devuelve la subcadena que empieza en la posición. SUBSTRING('Oracle SQL' FROM 2 FOR 3) devuelve rac
Para números, TO_CHAR(expr) y para fechas TO_CHAR(expr, format[, locale])Convierte números y fechas en cadenas. Para los números, no es necesario ningún formato. Para las fechas, utilice el mismo formato que DATE_FORMAT descrito en Funciones de fecha y hora. La configuración regional por defecto es en-US. Consulte las etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato de fecha soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

Ejemplo de número: TO_CHAR(123) devuelve 123

Ejemplo de fecha: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') devuelve la cadena 2020.10.30. El primer argumento es un objeto Date que representa el 30 de octubre de 2020,

UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
LPAD(str, len[, pad])Devuelve una cadena que está rellena a la izquierda con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.LPAD('ABC', 5, '*') devuelve '**ABC'
RPAD(str, len[, pad])Devuelve una cadena que está rellenada a la derecha con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Funciones de operador (de comparación)
FunciónDescripciónEjemplo
CASE WHEN condition1 THEN result1 ELSE result2 ENDDevuelve el valor para el que se cumple una condición.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END devuelve ABC si 1> 0, de lo contrario, devuelve XYZ
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
LIKERealiza una coincidencia de patrones de cadena, si string1 coincide con el patrón de string2.
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
!=Comprueba la desigualdad. Devuelve true si expr1 no es igual a expr2; de lo contrario, devuelve false.x != 10 devuelve "false" si el valor de x es 10; de lo contrario, devuelve "true"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
||Concatena dos cadenas.'XYZ' || 'hello' devuelve 'XYZhello'
BETWEENEvalúa un rango.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INPrueba si una expresión coincide con una lista de valores.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Funciones de identificador único
FunciónDescripciónEjemplo
NUMERIC_ID()Genera un identificador único universal que es un número de 64 bits para cada fila.NUMERIC_ID() devuelve, por ejemplo, 3458761969522180096 y 3458762008176885761
ROWID()Genera números de 64 bits monótonamente.ROWID() devuelve, por ejemplo, 0, 1, 2, etc.
UUID()Genera un identificador único universal que es una cadena de 128 bits para cada fila.UUID() devuelve, por ejemplo, 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Genera números enteros únicos que aumentan monótonamente 64 bits que no son números consecutivos. MONOTONICALLY_INCREASING_ID() returns for example, 8589934592 and 25769803776
Funciones condicionales
FunciónDescripciónEjemplo
COALESCE(value, value [, value]*)Devuelve el primer argumento no nulo, si existe; de lo contrario, devuelve null.COALESCE(NULL, 1, NULL) devuelve 1
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
Funciones jerárquicas
FunciónDescripciónEjemplo
SCHEMA_OF_JSON(string)Analiza una cadena JSON e infiere el esquema en formato DDL.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') devuelve 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') devuelve 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analiza una columna que contiene una cadena JSON en uno de los siguientes tipos, con el esquema especificado.

  • Map, con String como tipo de clave
  • Estruc
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') devuelve una columna de tipo Struct con el esquema especificado: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') devuelve una columna de tipo Struct con el esquema especificado: {1, 0.8}

TO_JSON(column)Convierte una columna que contiene un tipo Struct o Array of Structs, o Map o Array of Map en una cadena JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) devuelve una cadena JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

TO_STRUCT('Ename',Expression_1.attribute1) devuelve {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) devuelve {100, "John"}

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) devuelve ["John","Friend"]

Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]

Operador de unión

Utilice el operador de unión para enlazar datos de varios orígenes de entrada.

Adición y configuración de un operador de unión
  1. Desde el panel Operadores, arrastre un operador de Unión al lienzo.
  2. Con el operador de unión enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. Seleccione el Tipo de unión. Los tipos de unión soportados son:
    Tipos de unión
    Icono Tipo de unión Descripción
    diagrama de Venn de unión interna Interna Selecciona los datos de los dos orígenes de entrada en los que se cumple la condición de unión.
    diagrama de Venn de unión externa izquierda Externa izquierda Selecciona todos los datos del origen de entrada 1 y los datos del origen de entrada 2 donde se cumple la condición de unión.
    diagrama de Venn de unión externa derecha Externa derecha Selecciona los datos del origen de entrada 1 donde se cumple la condición de unión y todos los datos del origen de entrada 2.
    diagrama de Venn de unión externa completa Externa completa Selecciona todos los datos de los dos orígenes de entrada, haciendo coincidir las filas en las que se pueden realizar coincidencias e insertando valores nulos donde no se encuentran coincidencias.
  4. Junto a Condición de unión, seleccione Crear.
  5. En la sección Creador de condiciones del panel Crear condición de unión, puede arrastrar o hacer doble clic en atributos, parámetros y funciones, o arrastrarlos, para agregarlos al editor a fin de crear una condición. También puede introducir una expresión de condición manualmente en el editor y validar la expresión.
    Nota

    En el editor, un elemento agregado, como una función, puede tener marcadores de posición. Para sustituir un marcador de posición por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista.
  6. Seleccione Crear.
  7. (Opcional) Seleccione Asignar Parámetro para utilizar parámetros de modo que la condición de unión no esté vinculada al código compilado al publicar el flujo de datos. Consulte Asignación de un parámetro.
  8. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  9. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  10. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Creación de una condición de unión

Utilice el Creador de condiciones para seleccionar visualmente elementos para crear una condición de unión. También puede introducir una condición de unión manualmente en el editor.

La creación de una condición de unión permite seleccionar datos de dos orígenes de entrada en función de la condición.

Los elementos que puede utilizar en una condición de unión incluyen atributos, parámetros y funciones de entrada. Puede arrastrar o hacer doble clic en un elemento de la lista para agregarlo al editor a fin de crear una condición. Puede validar la condición antes de crearla.

De Entrada: Muestra los atributos de los puertos ascendentes conectados al operador de unión como dos carpetas JOIN separadas. Visualice los atributos de cada puerto mediante la ampliación o reducción de la carpeta JOIN adecuada. Por ejemplo, JOIN_1_1 y JOIN_1_2.

JOIN_1_1.BANK_CUSTOMER.ADDRESS_ID = JOIN_1_2.BANK_ADDRESS.ADDRESS_ID

Los parámetros son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto. Consulte Adición de un parámetro de expresión.

Supongamos que desea unir dos orígenes y mantener solo las filas en las que BANK_NAME='ABC Bank'. Puede crear un parámetro VARCHAR con el nombre P_VARCHAR y definir el valor por defecto en ABC BANK. A continuación, puede crear la expresión de unión del siguiente modo:

JOIN_1_1.ADDRESSES.BANK_ID = JOIN_1_2.BANK.BANK_ID AND JOIN_1_2.BANK.BANK_NAME = $P_VARCHAR

Las funciones son las funciones disponibles en Data Integration que puede utilizar en una condición. Las funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos.

A continuación se muestra una lista de funciones que están disponibles para su agregación al crear condiciones:

Funciones hash
FunciónDescripciónEjemplo
MD5(all data types)Calcula un total de control MD5 del tipo de dato y devuelve un valor de cadena. MD5(column_name)
SHA1(all data types)Calcula un valor hash SHA-1 del tipo de dato y devuelve un valor de cadena. SHA1(column_name)
SHA2(all data types, bitLength)Calcula un valor hash SHA-2 del tipo de dato y devuelve un valor de cadena. bitLengthes un entero. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcula un valor hash para expr y devuelve un valor NUMBER.

expr puede ser una expresión, una columna, un literal.

max_bucket es el valor de cubo máximo devuelto, entre 0 y 4294967295 (valor por defecto).

seed_value es un valor entre 0 (valor por defecto) y 4294967295.

Oracle aplica la función hash a la combinación de expr y seed_value para producir muchos resultados diferentes para el mismo juego de datos.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POWER(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') devuelve -45677.7

Funciones de fecha y hora
Función Descripción Ejemplo
CURRENT_DATE Devuelve la fecha actual. CURRENT_DATEdevuelve la fecha de hoy, como 2023-05-26
CURRENT_TIMESTAMP Devuelve la hora y la fecha actuales de la zona horaria de la sesión. CURRENT_TIMESTAMP devuelve la fecha actual y la hora actual, como 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado. DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_FORMAT(expr, format[, locale])

Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato de fecha soportados:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') devuelve '2020-10-11'. El primer argumento es un objeto Date que representa el 11 de octubre de 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') devuelve '2018/junio/17'

DAYOFMONTH(date) Devuelve el día del mes de la fecha. DAYOFMONTH('2020-12-25') devuelve 25
DAYOFWEEK(date) Devuelve el día de la semana de la fecha. DAYOFWEEK('2020-12-25') devuelve 6 para Friday. En los Estados Unidos, el domingo se considera 1, el lunes es 2, y así sucesivamente.
DAYOFYEAR(date) Devuelve el día del año de la fecha. DAYOFYEAR('2020-12-25') devuelve 360
WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

WEEKOFYEAR('2022-07-28') devuelve 30

WEEKOFYEAR('2022-07-28 13:24:30') returns 30

HOUR(datetime) Devuelve el valor de hora de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 15
LAST_DAY(date) Devuelve el último día del mes de la fecha. LAST_DAY('2020-12-25') devuelve 31
MINUTE(datetime) Devuelve el valor de minutos de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 10
MONTH(date) Devuelve el valor de mes de la fecha. MONTH('2020-06-25') devuelve 6
QUARTER(date) Devuelve el trimestre del año en el que se encuentra la fecha. QUARTER('2020-12-25') devuelve 4
SECOND(datetime) Devuelve el segundo valor de la fecha y hora. SECOND('2020-12-25 15:10:30') devuelve 30
TO_DATE(string, format_string[, localeStr]) Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, las cadenas de formato sensibles a mayúsculas/minúsculas soportadas son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') devuelve el valor de fecha 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') devuelve el valor de fecha 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') devuelve un objeto TIMESTAMP que representa 11am 10:10 Oct 11th, 2020
WEEK(date)

Devuelve el valor de semana de la fecha.

WEEK('2020-06-25') devuelve 4
YEAR(date) Devuelve el valor de año de la fecha. YEAR('2020-06-25') devuelve 2020
ADD_MONTHS(date_expr, number_months) Devuelve la fecha después de agregar el número de meses especificado a la fecha, registro de hora o cadena especificados con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) devuelve 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) devuelve 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') devuelve 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') devuelve 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') devuelve 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpreta una fecha, un registro de hora o una cadena como hora UTC y la convierte en un registro de hora en la zona horaria especificada.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl' o un desfase de zona horaria (por ejemplo, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convierte una fecha, un registro de hora o una cadena en la zona horaria especificada en un registro de hora UTC.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl') o un desfase de zona horaria (por ejemplo, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convierte la hora o época de Unix especificada en una cadena que representa el registro de hora de ese momento en la zona horaria del sistema actual y en el formato especificado.

Nota: La hora de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC.

Si se omite fmt, el formato por defecto es yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) devuelve '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) devuelve '2021-11-18 10:07:34'

La zona horaria por defecto es PST en los ejemplos

UNIX_TIMESTAMP([time_expr[, fmt]])

Convierte la hora actual o especificada en un registro de hora de Unix en segundos.

time_expr es una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Si no se proporciona time_expr, se convierte la hora actual.

Si time_expr es una cadena y se omite fmt, el valor por defecto es yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') devuelve 28800

La zona horaria por defecto es PST en este ejemplo

INTERVAL 'year' YEAR[(year_precision)]

Devuelve un período de tiempo en años.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '1' YEAR devuelve un intervalo de 1 año

INTERVAL '200' YEAR(3) devuelve un intervalo de 200 años

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Devuelve un período de tiempo en años y meses. Se utiliza para almacenar un período de tiempo utilizando los campos year y month.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '100-5' YEAR(3) TO MONTH devuelve un intervalo de 100 años, 5 meses. Debe especificar una precisión de año inicial 3.
INTERVAL 'month' MONTH[(month_precision)]

Devuelve un período de tiempo en meses.

month_precision es el número de dígitos del campo mes; está comprendido entre 0 y 9. Si se suprime month_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '200' MONTH(3) devuelve un intervalo de 200 meses. Debe especificar una precisión de mes 3.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) devuelve un intervalo de 11 días, 10 horas, 09 minutos, 08 segundos y 555 milésimas de segundo
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en días, horas y minutos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '11 10:09' DAY TO MINUTE devuelve un intervalo de 11 días, 10 horas y 09 minutos
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Devuelve un período de tiempo en días y horas.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '100 10' DAY(3) TO HOUR devuelve un intervalo de 100 días y 10 horas
INTERVAL 'day' DAY[(day_precision)]

Devuelve un período de tiempo en días.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

INTERVAL '999' DAY(3) devuelve un intervalo de 999 días
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) devuelve un intervalo de 9 horas, 08 minutos y 76 666 666 segundos
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en horas y minutos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '09:30' HOUR TO MINUTE devuelve un intervalo de 9 horas y 30 minutos
INTERVAL 'hour' HOUR[(hour_precision)]

Devuelve un período de tiempo en horas.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '40' HOUR devuelve un intervalo de 40 horas
INTERVAL 'minute' MINUTE[(minute_precision)]

Devuelve un período de tiempo en minutos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '15' MINUTE devuelve un intervalo de 15 minutos
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en minutos y segundos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '15:30' MINUTE TO SECOND devuelve un intervalo de 15 minutos y 30 segundos
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en segundos.

fractional_seconds_precision es el número de dígitos en la parte fraccional del campo second; oscila entre 0 y 9. El valor por defecto es 3.

INTERVAL '15.678' SECOND devuelve un intervalo de 15 678 segundos
Funciones analíticas
Función Descripción Ejemplo
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Devuelve el valor evaluado en la fila que es la primera fila del marco de ventana. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el primer valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionada por BANK_ID y en orden ascendente por BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado antes de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) devuelve el valor de BANK_ID de la segunda fila antes de la fila actual, particionado por BANK_ID y en orden descendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Devuelve el valor evaluado en la fila que es la última fila del marco de ventana. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el último valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionado por BANK_ID y en orden ascendente por BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado después de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el valor de BANK_ID de la segunda fila después de la fila actual, particionado por BANK_ID y en orden ascendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
RANK() OVER([ partition_clause ] order_by_clause) Devuelve el rango de la fila actual con intervalos, contando desde 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el rango de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Devuelve el número único de la fila actual dentro de su partición, contando desde 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el número de fila único de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnas.CONCAT('Oracle','SQL') devuelve OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Devuelve los valores combinados de cadenas o columnas utilizando el separador especificado entre las cadenas o columnas.

Se necesita un separador y debe ser una cadena.

Se debe proporcionar al menos una expresión después del separador. Por ejemplo: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') devuelve Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) devuelve 123 MyCity 987654

Si un secundario de la función es una matriz, la matriz se simplifica:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) devuelve 1,2,3,4,5,6,7,8,9

INITCAP(string)Devuelve la cadena con la primera letra de cada palabra en mayúsculas, mientras que el resto de letras están en minúsculas, y cada palabra está delimitada por un espacio en blanco.INITCAP('oRACLE sql') devuelve Oracle Sql
INSTR(string, substring[start_position])Devuelve el índice (basado en 1) de la primera ocurrencia de substring en string.INSTR('OracleSQL', 'SQL') devuelve 7
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
NVL(expr1, epxr2)Devuelve el argumento que no es nulo.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') devuelve https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('ABCabc', 'abc', 'DEF') devuelve ABCDEF
RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Devuelve la subcadena que empieza en la posición. SUBSTRING('Oracle SQL' FROM 2 FOR 3) devuelve rac
Para números, TO_CHAR(expr) y para fechas TO_CHAR(expr, format[, locale])Convierte números y fechas en cadenas. Para los números, no es necesario ningún formato. Para las fechas, utilice el mismo formato que DATE_FORMAT descrito en Funciones de fecha y hora. La configuración regional por defecto es en-US. Consulte las etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato de fecha soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

Ejemplo de número: TO_CHAR(123) devuelve 123

Ejemplo de fecha: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') devuelve la cadena 2020.10.30. El primer argumento es un objeto Date que representa el 30 de octubre de 2020,

UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
LPAD(str, len[, pad])Devuelve una cadena que está rellena a la izquierda con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.LPAD('ABC', 5, '*') devuelve '**ABC'
RPAD(str, len[, pad])Devuelve una cadena que está rellenada a la derecha con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Funciones de operador (de comparación)
FunciónDescripciónEjemplo
CASE WHEN condition1 THEN result1 ELSE result2 ENDDevuelve el valor para el que se cumple una condición.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END devuelve ABC si 1> 0, de lo contrario, devuelve XYZ
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
LIKERealiza una coincidencia de patrones de cadena, si string1 coincide con el patrón de string2.
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
!=Comprueba la desigualdad. Devuelve true si expr1 no es igual a expr2; de lo contrario, devuelve false.x != 10 devuelve "false" si el valor de x es 10; de lo contrario, devuelve "true"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
||Concatena dos cadenas.'XYZ' || 'hello' devuelve 'XYZhello'
BETWEENEvalúa un rango.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INPrueba si una expresión coincide con una lista de valores.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Funciones de identificador único
FunciónDescripciónEjemplo
NUMERIC_ID()Genera un identificador único universal que es un número de 64 bits para cada fila.NUMERIC_ID() devuelve, por ejemplo, 3458761969522180096 y 3458762008176885761
ROWID()Genera números de 64 bits monótonamente.ROWID() devuelve, por ejemplo, 0, 1, 2, etc.
UUID()Genera un identificador único universal que es una cadena de 128 bits para cada fila.UUID() devuelve, por ejemplo, 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Genera números enteros únicos que aumentan monótonamente 64 bits que no son números consecutivos. MONOTONICALLY_INCREASING_ID() returns for example, 8589934592 and 25769803776
Funciones condicionales
FunciónDescripciónEjemplo
COALESCE(value, value [, value]*)Devuelve el primer argumento no nulo, si existe; de lo contrario, devuelve null.COALESCE(NULL, 1, NULL) devuelve 1
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
Funciones jerárquicas
FunciónDescripciónEjemplo
SCHEMA_OF_JSON(string)Analiza una cadena JSON e infiere el esquema en formato DDL.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') devuelve 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') devuelve 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analiza una columna que contiene una cadena JSON en uno de los siguientes tipos, con el esquema especificado.

  • Map, con String como tipo de clave
  • Estruc
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') devuelve una columna de tipo Struct con el esquema especificado: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') devuelve una columna de tipo Struct con el esquema especificado: {1, 0.8}

TO_JSON(column)Convierte una columna que contiene un tipo Struct o Array of Structs, o Map o Array of Map en una cadena JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) devuelve una cadena JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

TO_STRUCT('Ename',Expression_1.attribute1) devuelve {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) devuelve {100, "John"}

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) devuelve ["John","Friend"]

Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]

Operador de expresión

Utilice el operador de expresión para realizar una o más transformaciones en una sola fila de datos para crear campos derivados nuevos.

Para utilizar el operador de expresión para cambiar el tipo de dato de un grupo de atributos, consulte Cambio del tipo de dato de un grupo de atributos.

Adición y configuración de un operador de expresión
  1. Desde el panel Operadores, arrastre un operador de Expresión al lienzo.
  2. Con el operador de expresión enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. En Expresiones, seleccione Agregar expresión.
  4. En el panel Agregar expresión, introduzca un nombre para la expresión en el campo Identificador o deje el nombre como está.
  5. (Opcional) Para aplicar la expresión a dos o más atributos, seleccione Permitir selección masiva. A continuación, seleccione los atributos por nombre o mediante un patrón de expresión regular. Por ejemplo, si tiene tres atributos de nombre en el juego de datos de origen y desea aplicar la función UPPER a los tres atributos de origen. Puede utilizar un patrón para seleccionar este grupo de atributos de origen.
    1. En Atributos del origen, seleccione Patrón y seleccione Editar patrón. A continuación, introduzca la expresión regular que coincide con un grupo de atributos de origen. Por ejemplo, introduzca *NAME para que coincida con los atributos FIRST_NAME, LAST_NAME y FULL_NAME.
    2. Seleccione un tipo de datos en el menú.
    3. Para Atributos de destino, introduzca la expresión regular para definir nombres de atributo de destino en Patrón. Por defecto, se introduce $0, que hace referencia a los nombres de atributo de origen originales. Actualice el patrón para asignar un nombre a los atributos de destino según los requisitos. Por ejemplo, introduzca $0_UPPER para agregar el texto UPPER a los nombres de atributo de origen originales.
    4. Por defecto, se selecciona Usar tipos de dato de atributo de origen. Puede conservar la selección. Si desactiva la casilla de control Usar Tipos de Dato de Atributo de Origen, seleccione un Tipo de dato y complete los campos correspondientes al tipo seleccionado.
  6. (Opcional) Si no ha seleccionado la opción Permitir selección masiva, en Tipo a partir de datos en expresión, puede seleccionar Inferir tipo a partir de datos si desea que el creador de Expresiones detecte el tipo a partir de la expresión que introduzca. Puede seleccionar Vista previa del tipo del dato y Validar para obtener una vista previa y refrescar el tipo del dato y validar la expresión.

    Inferir tipo de datos es útil cuando trabaja con tipos de datos complejos como Map, Array y Struct que pueden tener niveles de tipos anidados.

  7. Si no ha seleccionado Permitir selección masiva ni Inferir tipo de dato, seleccione un valor en el menú Tipo de dato y, a continuación, complete los campos correspondientes al tipo seleccionado.
  8. En la sección Creador de expresiones, cree visualmente una expresión haciendo clic dos veces o arrastrando atributos, parámetros o funciones de entrada para agregarlos al editor a fin de crear la expresión. O puede escribir manualmente la expresión usted mismo. Consulte Adición de una expresión. También puede validar la expresión.

    Puede utilizar parámetros en expresiones, incluidos los parámetros definidos por el usuario que se hayan creado en el flujo de datos y los parámetros del sistema generados por Data Integration en tiempo de ejecución.

    Si ha seleccionado Permitir selección masiva, utilice %MACRO_INPUT% en la expresión para indicar los atributos en los que se aplicará la función. Por ejemplo, supongamos que ha utilizado el patrón *NAME para que coincida con los atributos de origen FIRST_NAME, LAST_NAME y FULL_NAME. Ahora, puede especificar una función como UPPER(%MACRO_INPUT%) para aplicar la función en todos los atributos que coinciden con el patrón.

    Para excluir uno o más atributos de entrada de la salida de esta expresión, active la casilla de control Excluir atributos entrantes. A continuación, utilice el menú para agregar los atributos de entrada que desea excluir de la salida. Se aplica una regla de exclusión a cada atributo que seleccione para excluir. Puede excluir atributos solo cuando agrega la expresión la primera vez. Al editar la expresión, la casilla de control Excluir atributos entrantes no está disponible.

    Nota

    Para sustituir un marcador de posición de una función por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista para agregarlo a la función.
  9. Seleccione Agregar.
    Puede repetir los pasos a partir del paso 3 para agregar más expresiones, si es necesario.
  10. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos y, a continuación, aplicar reglas de exclusión masiva a los atributos seleccionados o los filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar comodines como ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.

      Para cambiar el tipo a un grupo de atributos, seleccione Cambiar tipo a datos. En el cuadro de diálogo que se muestra, seleccione el nuevo Tipo de datos para los atributos seleccionados o filtrados. A continuación, seleccione otras propiedades que sean aplicables al nuevo tipo de dato seleccionado. Al seleccionar Aplicar, se agrega una expresión al separador Detalles en lugar de una regla.

    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  11. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

    Consulte también Adición de una expresión.

  12. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Cambio del tipo de dato de un grupo de atributos

Puede utilizar el operador de expresión para cambiar el tipo de dato de los atributos mediante una acción de transformación masiva.

En lugar de utilizar una función CAST para cambiar un tipo de dato de atributo un atributo cada vez, puede agregar el operador de expresión y aplicar una acción de transformación masiva en varios atributos al mismo tiempo.
  1. Conecte el operador de expresión al objeto de entrada adecuado.
  2. Con el operador de expresión enfocado en el lienzo, en el separador Atributos del panel Propiedades, seleccione esta opción para ver los atributos de entrada (enlazados al operador de expresión en el lado izquierdo).
  3. Si tiene algunos atributos que transformar, utilice las casillas de control para seleccionar los atributos que desea transformar.
  4. Si tiene muchos atributos que transformar, aplique un filtro en los atributos:
    1. Seleccione el icono del filtro en la columna Nombre. En el campo de filtros que aparece, introduzca un modelo de expresión regular simple utilizando comodines (? y *) para filtrar los atributos por un modelo de nombre. Por ejemplo, introduzca ADD* para que coincida con los atributos ADDRESS1, ADDRESS2 y ADDRESS_KEY.
    2. Seleccione el icono del filtro en la columna Tipo. En el menú de la pantalla, seleccione el tipo de atributo actual de los atributos que desea cambiar. Por ejemplo, suponga que el tipo de ADDRESS1 y ADDRESS2 es VARCHAR, y que el tipo de ADDRESS_KEY es NUMERIC. Puede seleccionar VARCHAR para transformar solo ADDRESS1 y ADDRESS2.
  5. En el menú Acciones, seleccione Cambiar tipo de dato.
  6. En el recuadro de diálogo Cambiar Tipo de Dato, seleccione el nuevo Tipo de Dato para los atributos seleccionados o los atributos a los que se ha aplicado el filtro.

    A continuación, especifique otras propiedades que sean aplicables al nuevo tipo de dato seleccionado.

    Para mantener los atributos originales en el juego de datos, seleccione Guardar atributos de origen. Si la casilla de control no está seleccionada, solo están disponibles los atributos nuevos en los datos resultantes.

  7. Seleccione Aplicar.
  8. Seleccione el separador Detalles.
    Revise la expresión que se ha agregado al operador.
Adición de una expresión

Utilice el Creador de expresiones para seleccionar visualmente elementos para crear una expresión en el editor. También puede escribir manualmente una expresión usted mismo.

Tenga en cuenta lo siguiente al crear expresiones:

  • Incluya el literal de cadena entre comillas simples. Por ejemplo: CONCAT('We ', 'like') y UPPER('oracle').

  • Incluya el nombre de atributo entre comillas dobles. Por ejemplo: UPPER("Sales") y CONCAT(CONCAT("EXPRESSION_1.EMP_UTF8_EN_COL_CSV.EN_NAME", ' '), "EXPRESSION_1.EMP_UTF8_EN_COL_CSV.NAME").

    El uso de comillas dobles alrededor de nombres de atributo es obligatorio para caracteres multibyte y nombres que tengan caracteres especiales en el nombre completo.

El panel Add Expression tiene dos secciones: Expression information y Expression builder. Los campos Información de expresión permiten especificar un nombre y un tipo de dato para la expresión. También puede crear la expresión para aplicarla a dos o más atributos. Al trabajar con tipos de datos complejos como Map, Array y Struct que pueden tener niveles de tipos anidados, puede dejar que el creador detecte el tipo de datos de la expresión que introduzca. Al dejar que el creador infiera el tipo de datos, puede obtener una vista previa y refrescar el tipo de datos y validar la expresión.

La sección Creador de expresiones muestra los elementos para crear una expresión. Los elementos que puede utilizar en una expresión incluyen atributos, parámetros y funciones de entrada. Haga clic dos veces o arrastre un elemento de la lista para agregarlo al editor a fin de crear la expresión o escriba manualmente la expresión usted mismo. Puede validar la expresión antes de crearla.

De entrada muestra los atributos del operador ascendente que se transfieren a este operador de expresión. Debajo de la lista de atributos hay una casilla de control que le permite aplicar reglas de exclusión. Para excluir uno o más atributos de entrada de la salida de esta expresión, active la casilla de control Excluir atributos entrantes. A continuación, utilice el menú para agregar los atributos de entrada que desea excluir de la salida. Se aplica una regla de exclusión a cada atributo que seleccione para excluir. Puede excluir atributos solo cuando agrega la expresión la primera vez. Al editar la expresión, la casilla de control Excluir atributos entrantes no está disponible.

Los parámetros incluyen parámetros definidos por el usuario y parámetros generados por el sistema.

Los parámetros definidos por el usuario son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Consulte Adición de un parámetro de expresión. La sintaxis es $PARAMETER_NAME. Por ejemplo: EXPRESSION_1.ADDRESSES.POSTAL_CODE=$P_CODE

Data Integration genera parámetros del sistema, como SYS.TASK_START_TIME. Los valores de los parámetros del sistema se pueden utilizar en expresiones para registrar la información del sistema. La sintaxis es ${SYSTEM_PARAMETER}. Por ejemplo: ${SYS.TASK_RUN_NAME}

Las funciones son las funciones disponibles en Data Integration que puede utilizar en una expresión. Las funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos. También puede agregar funciones definidas por el usuario que haya creado en el espacio de trabajo. Por ejemplo: MYLIBRARY.MYFUNCTION

La lista de funciones disponibles en Data Integration que puede utilizar es la siguiente:

Funciones hash
FunciónDescripciónEjemplo
MD5(all data types)Calcula un total de control MD5 del tipo de dato y devuelve un valor de cadena. MD5(column_name)
SHA1(all data types)Calcula un valor hash SHA-1 del tipo de dato y devuelve un valor de cadena. SHA1(column_name)
SHA2(all data types, bitLength)Calcula un valor hash SHA-2 del tipo de dato y devuelve un valor de cadena. bitLengthes un entero. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcula un valor hash para expr y devuelve un valor NUMBER.

expr puede ser una expresión, una columna, un literal.

max_bucket es el valor de cubo máximo devuelto, entre 0 y 4294967295 (valor por defecto).

seed_value es un valor entre 0 (valor por defecto) y 4294967295.

Oracle aplica la función hash a la combinación de expr y seed_value para producir muchos resultados diferentes para el mismo juego de datos.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POWER(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') devuelve -45677.7

Funciones de matriz

Solo el operador Expression soporta funciones de matriz.

FunciónDescripciónEjemplo
ARRAY_POSITION(array(...), element)Devuelve la posición de la primera incidencia del elemento especificado en la matriz determinada.

La posición no se basa en cero, sino que comienza con 1.

ARRAY_POSITION(array(3, 2, 1, 4, 1), 1) devuelve 3
REVERSE(array(...)) Devuelve la matriz dada de elementos en un orden inverso. REVERSE(array(2, 1, 4, 3)) devuelve [3,4,1,2]
ELEMENT_AT(array(...), index) Devuelve el elemento de la matriz indicada en la posición de índice especificada.

El índice no se basa en cero, sino que comienza con 1.

Si index = -1, devuelve el último elemento.

ELEMENT_AT(array(1, 2, 3), 2) devuelve 2
Funciones de fecha y hora
Función Descripción Ejemplo
CURRENT_DATE Devuelve la fecha actual. CURRENT_DATEdevuelve la fecha de hoy, como 2023-05-26
CURRENT_TIMESTAMP Devuelve la hora y la fecha actuales de la zona horaria de la sesión. CURRENT_TIMESTAMP devuelve la fecha actual y la hora actual, como 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado. DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_FORMAT(expr, format[, locale])

Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato de fecha soportados:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') devuelve '2020-10-11'. El primer argumento es un objeto Date que representa el 11 de octubre de 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') devuelve '2018/junio/17'

DAYOFMONTH(date) Devuelve el día del mes de la fecha. DAYOFMONTH('2020-12-25') devuelve 25
DAYOFWEEK(date) Devuelve el día de la semana de la fecha. DAYOFWEEK('2020-12-25') devuelve 6 para Friday. En los Estados Unidos, el domingo se considera 1, el lunes es 2, y así sucesivamente.
DAYOFYEAR(date) Devuelve el día del año de la fecha. DAYOFYEAR('2020-12-25') devuelve 360
WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

WEEKOFYEAR('2022-07-28') devuelve 30

WEEKOFYEAR('2022-07-28 13:24:30') returns 30

HOUR(datetime) Devuelve el valor de hora de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 15
LAST_DAY(date) Devuelve el último día del mes de la fecha. LAST_DAY('2020-12-25') devuelve 31
MINUTE(datetime) Devuelve el valor de minutos de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 10
MONTH(date) Devuelve el valor de mes de la fecha. MONTH('2020-06-25') devuelve 6
QUARTER(date) Devuelve el trimestre del año en el que se encuentra la fecha. QUARTER('2020-12-25') devuelve 4
SECOND(datetime) Devuelve el segundo valor de la fecha y hora. SECOND('2020-12-25 15:10:30') devuelve 30
TO_DATE(string, format_string[, localeStr]) Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, las cadenas de formato sensibles a mayúsculas/minúsculas soportadas son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') devuelve el valor de fecha 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') devuelve el valor de fecha 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') devuelve un objeto TIMESTAMP que representa 11am 10:10 Oct 11th, 2020
WEEK(date)

Devuelve el valor de semana de la fecha.

WEEK('2020-06-25') devuelve 4
YEAR(date) Devuelve el valor de año de la fecha. YEAR('2020-06-25') devuelve 2020
ADD_MONTHS(date_expr, number_months) Devuelve la fecha después de agregar el número de meses especificado a la fecha, registro de hora o cadena especificados con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) devuelve 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) devuelve 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') devuelve 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') devuelve 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') devuelve 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpreta una fecha, un registro de hora o una cadena como hora UTC y la convierte en un registro de hora en la zona horaria especificada.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl' o un desfase de zona horaria (por ejemplo, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convierte una fecha, un registro de hora o una cadena en la zona horaria especificada en un registro de hora UTC.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl') o un desfase de zona horaria (por ejemplo, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convierte la hora o época de Unix especificada en una cadena que representa el registro de hora de ese momento en la zona horaria del sistema actual y en el formato especificado.

Nota: La hora de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC.

Si se omite fmt, el formato por defecto es yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) devuelve '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) devuelve '2021-11-18 10:07:34'

La zona horaria por defecto es PST en los ejemplos

UNIX_TIMESTAMP([time_expr[, fmt]])

Convierte la hora actual o especificada en un registro de hora de Unix en segundos.

time_expr es una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Si no se proporciona time_expr, se convierte la hora actual.

Si time_expr es una cadena y se omite fmt, el valor por defecto es yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') devuelve 28800

La zona horaria por defecto es PST en este ejemplo

INTERVAL 'year' YEAR[(year_precision)]

Devuelve un período de tiempo en años.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '1' YEAR devuelve un intervalo de 1 año

INTERVAL '200' YEAR(3) devuelve un intervalo de 200 años

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Devuelve un período de tiempo en años y meses. Se utiliza para almacenar un período de tiempo utilizando los campos year y month.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '100-5' YEAR(3) TO MONTH devuelve un intervalo de 100 años, 5 meses. Debe especificar una precisión de año inicial 3.
INTERVAL 'month' MONTH[(month_precision)]

Devuelve un período de tiempo en meses.

month_precision es el número de dígitos del campo mes; está comprendido entre 0 y 9. Si se suprime month_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '200' MONTH(3) devuelve un intervalo de 200 meses. Debe especificar una precisión de mes 3.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) devuelve un intervalo de 11 días, 10 horas, 09 minutos, 08 segundos y 555 milésimas de segundo
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en días, horas y minutos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '11 10:09' DAY TO MINUTE devuelve un intervalo de 11 días, 10 horas y 09 minutos
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Devuelve un período de tiempo en días y horas.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '100 10' DAY(3) TO HOUR devuelve un intervalo de 100 días y 10 horas
INTERVAL 'day' DAY[(day_precision)]

Devuelve un período de tiempo en días.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

INTERVAL '999' DAY(3) devuelve un intervalo de 999 días
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) devuelve un intervalo de 9 horas, 08 minutos y 76 666 666 segundos
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en horas y minutos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '09:30' HOUR TO MINUTE devuelve un intervalo de 9 horas y 30 minutos
INTERVAL 'hour' HOUR[(hour_precision)]

Devuelve un período de tiempo en horas.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '40' HOUR devuelve un intervalo de 40 horas
INTERVAL 'minute' MINUTE[(minute_precision)]

Devuelve un período de tiempo en minutos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '15' MINUTE devuelve un intervalo de 15 minutos
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en minutos y segundos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '15:30' MINUTE TO SECOND devuelve un intervalo de 15 minutos y 30 segundos
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en segundos.

fractional_seconds_precision es el número de dígitos en la parte fraccional del campo second; oscila entre 0 y 9. El valor por defecto es 3.

INTERVAL '15.678' SECOND devuelve un intervalo de 15 678 segundos
Funciones analíticas
Función Descripción Ejemplo
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Devuelve el valor evaluado en la fila que es la primera fila del marco de ventana. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el primer valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionada por BANK_ID y en orden ascendente por BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado antes de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) devuelve el valor de BANK_ID de la segunda fila antes de la fila actual, particionado por BANK_ID y en orden descendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Devuelve el valor evaluado en la fila que es la última fila del marco de ventana. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el último valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionado por BANK_ID y en orden ascendente por BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado después de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el valor de BANK_ID de la segunda fila después de la fila actual, particionado por BANK_ID y en orden ascendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
RANK() OVER([ partition_clause ] order_by_clause) Devuelve el rango de la fila actual con intervalos, contando desde 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el rango de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Devuelve el número único de la fila actual dentro de su partición, contando desde 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el número de fila único de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnas.CONCAT('Oracle','SQL') devuelve OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Devuelve los valores combinados de cadenas o columnas utilizando el separador especificado entre las cadenas o columnas.

Se necesita un separador y debe ser una cadena.

Se debe proporcionar al menos una expresión después del separador. Por ejemplo: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') devuelve Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) devuelve 123 MyCity 987654

Si un secundario de la función es una matriz, la matriz se simplifica:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) devuelve 1,2,3,4,5,6,7,8,9

INITCAP(string)Devuelve la cadena con la primera letra de cada palabra en mayúsculas, mientras que el resto de letras están en minúsculas, y cada palabra está delimitada por un espacio en blanco.INITCAP('oRACLE sql') devuelve Oracle Sql
INSTR(string, substring[start_position])Devuelve el índice (basado en 1) de la primera ocurrencia de substring en string.INSTR('OracleSQL', 'SQL') devuelve 7
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
NVL(expr1, epxr2)Devuelve el argumento que no es nulo.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') devuelve https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('ABCabc', 'abc', 'DEF') devuelve ABCDEF
RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Devuelve la subcadena que empieza en la posición. SUBSTRING('Oracle SQL' FROM 2 FOR 3) devuelve rac
Para números, TO_CHAR(expr) y para fechas TO_CHAR(expr, format[, locale])Convierte números y fechas en cadenas. Para los números, no es necesario ningún formato. Para las fechas, utilice el mismo formato que DATE_FORMAT descrito en Funciones de fecha y hora. La configuración regional por defecto es en-US. Consulte las etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato de fecha soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

Ejemplo de número: TO_CHAR(123) devuelve 123

Ejemplo de fecha: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') devuelve la cadena 2020.10.30. El primer argumento es un objeto Date que representa el 30 de octubre de 2020,

UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
LPAD(str, len[, pad])Devuelve una cadena que está rellena a la izquierda con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.LPAD('ABC', 5, '*') devuelve '**ABC'
RPAD(str, len[, pad])Devuelve una cadena que está rellenada a la derecha con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Funciones de operador (de comparación)
FunciónDescripciónEjemplo
CASE WHEN condition1 THEN result1 ELSE result2 ENDDevuelve el valor para el que se cumple una condición.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END devuelve ABC si 1> 0, de lo contrario, devuelve XYZ
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
LIKERealiza una coincidencia de patrones de cadena, si string1 coincide con el patrón de string2.
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
!=Comprueba la desigualdad. Devuelve true si expr1 no es igual a expr2; de lo contrario, devuelve false.x != 10 devuelve "false" si el valor de x es 10; de lo contrario, devuelve "true"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
||Concatena dos cadenas.'XYZ' || 'hello' devuelve 'XYZhello'
BETWEENEvalúa un rango.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INPrueba si una expresión coincide con una lista de valores.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Funciones de identificador único
FunciónDescripciónEjemplo
NUMERIC_ID()Genera un identificador único universal que es un número de 64 bits para cada fila.NUMERIC_ID() devuelve, por ejemplo, 3458761969522180096 y 3458762008176885761
ROWID()Genera números de 64 bits monótonamente.ROWID() devuelve, por ejemplo, 0, 1, 2, etc.
UUID()Genera un identificador único universal que es una cadena de 128 bits para cada fila.UUID() devuelve, por ejemplo, 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Genera números enteros únicos que aumentan monótonamente 64 bits que no son números consecutivos. MONOTONICALLY_INCREASING_ID() returns for example, 8589934592 and 25769803776
Funciones condicionales
FunciónDescripciónEjemplo
COALESCE(value, value [, value]*)Devuelve el primer argumento no nulo, si existe; de lo contrario, devuelve null.COALESCE(NULL, 1, NULL) devuelve 1
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
Funciones jerárquicas
FunciónDescripciónEjemplo
SCHEMA_OF_JSON(string)Analiza una cadena JSON e infiere el esquema en formato DDL.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') devuelve 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') devuelve 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analiza una columna que contiene una cadena JSON en uno de los siguientes tipos, con el esquema especificado.

  • Map, con String como tipo de clave
  • Estruc
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') devuelve una columna de tipo Struct con el esquema especificado: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') devuelve una columna de tipo Struct con el esquema especificado: {1, 0.8}

TO_JSON(column)Convierte una columna que contiene un tipo Struct o Array of Structs, o Map o Array of Map en una cadena JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) devuelve una cadena JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

TO_STRUCT('Ename',Expression_1.attribute1) devuelve {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) devuelve {100, "John"}

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) devuelve ["John","Friend"]

Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]
Duplicación de una expresión

Puede duplicar expresiones que se hayan agregado a un operador de expresión.

  1. En el lienzo de flujo de datos, seleccione el operador de expresión.
  2. En el separador Detalles del panel Propiedades, revise la lista de expresiones.
  3. Seleccione Duplicar en el menú Acciones (Acciones, menú) correspondiente a la expresión que desea duplicar.
    No se muestra ningún cuadro de diálogo de confirmación; la expresión duplicada se agrega a la lista inmediatamente.
Movimiento de una expresión

Puede cambiar el orden de las expresiones que se han agregado a un operador de expresión.

  1. En el lienzo de flujo de datos, seleccione el operador de expresión.
  2. En el separador Detalles del panel Propiedades, revise la lista de expresiones.
  3. Para la expresión que desea mover, seleccione Mover hacia arriba, Mover hacia abajo, Mover a la parte superior o Mover a la parte inferior en el menú Acciones (Acciones, menú).
    Solo están disponibles las acciones de movimiento relevantes, según la posición actual de la expresión. Por ejemplo, Subir y Subir no están disponibles para la primera expresión de la lista.

Operador de agregación

Utilice el operador de agregación para realizar cálculos como una suma o un recuento, en todas las filas o en un grupo de filas para crear atributos derivados nuevos.

Adición y configuración de un operador de agregación
  1. Desde el panel Operadores, arrastre una Agregación al lienzo.
  2. Con el operador de agregación enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. En Agrupar por, seleccione una de las siguientes opciones:
    • Atributos: utilice el menú para seleccionar uno o más atributos por los que realizar la agrupación.
    • Patrón: seleccione Agregar patrón para agregar el patrón que seleccione los atributos por los cuales realizar la agrupación. Utilice un patrón de expresión regular para que coincida con dos o más atributos.
    Nota

    Las expresiones que agregue se realizarán en cada atributo seleccionado. Los atributos que continúan en sentido descendente incluyen los atributos por los que realice la agrupación más los atributos derivados de las expresiones que agregue.
  4. En Expresiones, seleccione Agregar expresión.
  5. En el panel Agregar expresión, introduzca un nombre para la expresión de agregación en el campo Identificador o deje el nombre como está.
  6. (Opcional) Para seleccionar los atributos de origen, donde desea aplicar la operación de expresión, mediante patrones de expresión regular, seleccione Permitir selección masiva y, a continuación, seleccione Patrón. Por ejemplo, supongamos que tiene tres atributos de orden en el juego de datos y que desea aplicar la función de operador SUM a los tres. Puede utilizar un patrón para seleccionar este grupo de atributos de origen.
    1. En Atributos de origen, introduzca la expresión regular que coincida con un grupo de atributos de origen en Patrón. Por ejemplo, introduzca *ORDER para que coincida con los atributos FIRST_ORDER, LAST_ORDER y FINAL_ORDER.
    2. A continuación, en Tipo de dato, seleccione un valor en el menú y complete los campos correspondientes al tipo seleccionado.
    3. Para Atributos de destino, introduzca la expresión regular para definir nombres de atributo de destino en Patrón. Por defecto, se introduce $0 para hacer referencia a los atributos de origen originales. Actualice el patrón para asignar un nombre al atributo de destino según los requisitos. Por ejemplo, introduzca $0_SUM para agregar el texto SUM a los nombres de atributo de origen originales.
    4. Por defecto, se selecciona Usar tipos de dato de atributo de origen. Puede conservar la selección. Si desactiva la casilla de control Usar Tipos de Dato de Atributo de Origen, seleccione un Tipo de dato y complete los campos correspondientes al tipo seleccionado.
  7. (Opcional) Si no ha seleccionado la opción Permitir selección masiva, en Tipos de datos de expresiones, puede seleccionar Inferir tipos de datos si desea que el Creador de expresiones detecte el tipo del dato de la expresión introducida. Puede seleccionar Vista previa del tipo del dato y Validar para obtener una vista previa y refrescar el tipo del dato y validar la expresión.

    Dejar que el creador infiera el tipo de datos es útil cuando trabaja con tipos de datos complejos como Map, Array y Struct que pueden tener niveles de tipos anidados.

  8. Si no ha seleccionado Permitir selección masiva, en Tipo de dato, seleccione un valor en el menú y, a continuación, complete los campos correspondientes según el tipo seleccionado.
  9. (Opcional) En Tipo de datos de expresiones, puede seleccionar Inferir tipo del dato si quiere que el Creador de expresiones detecte el tipo del dato de la expresión que introduzca. Puede seleccionar Vista previa del tipo del dato y Validar para obtener una vista previa y refrescar el tipo del dato y validar la expresión.

    Dejar que el creador infiera el tipo de datos es útil cuando trabaja con tipos de datos complejos como Map, Array y Struct que pueden tener niveles de tipos anidados.

  10. Si no ha seleccionado Permitir selección masiva ni Inferir tipo de dato, seleccione un valor en el menú Tipo de dato y, a continuación, complete los campos correspondientes al tipo seleccionado.
  11. En la sección Creador de expresiones, cree visualmente una expresión haciendo clic dos veces o arrastrando atributos, parámetros o funciones de entrada para agregarlos al editor a fin de crear la expresión. O puede escribir manualmente la expresión usted mismo. También puede validar la expresión.

    Si ha seleccionado Permitir selección masiva, utilice %MACRO_INPUT% en la expresión para indicar los atributos en los que se aplicará la función. Por ejemplo, supongamos que ha utilizado el patrón *NAME para que coincida con los atributos de origen FIRST_NAME, LAST_NAME y FULL_NAME. Ahora, puede especificar una función como UPPER(%MACRO_INPUT%) para aplicar la función en todos los atributos que coinciden con el patrón.

    Para excluir uno o más atributos de entrada de la salida de esta expresión, active la casilla de control Excluir atributos entrantes. A continuación, utilice el menú para agregar los atributos de entrada que desea excluir de la salida. Se aplica una regla de exclusión a cada atributo que seleccione para excluir. Puede excluir atributos solo cuando agrega la expresión la primera vez. Al editar la expresión, la casilla de control Excluir atributos entrantes no está disponible.

    Nota

    Para sustituir un marcador de posición de una función por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista para agregarlo a la función.
  12. Seleccione Agregar.
    Puede repetir los pasos a partir del paso 4 para agregar más expresiones, si es necesario.
  13. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  14. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos. Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.
  15. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Adición de una expresión de agregación

Utilice el Creador de expresiones para seleccionar visualmente elementos para crear una expresión en el editor. También puede escribir manualmente una expresión usted mismo.

El panel Add Expression tiene dos secciones: Expression information y Expression builder. Los campos Información de expresión permiten especificar un nombre y un tipo de dato para la expresión. También puede crear la expresión para aplicarla a dos o más atributos. Al trabajar con tipos de datos complejos como Map, Array y Struct que pueden tener niveles de tipos anidados, puede dejar que el creador detecte el tipo de datos de la expresión que introduzca. Al dejar que el creador infiera el tipo de datos, puede obtener una vista previa y refrescar el tipo de datos y validar la expresión.

La sección Creador de expresiones muestra los elementos para crear una expresión. Los elementos que puede utilizar en una expresión incluyen atributos, parámetros y funciones de entrada. Haga clic dos veces o arrastre un elemento de la lista para agregarlo al editor a fin de crear la expresión o escriba manualmente la expresión usted mismo. Puede validar la expresión antes de crearla.

De entrada muestra los atributos del operador ascendente que se transfieren a este operador de expresión. Debajo de la lista de atributos hay una casilla de control que le permite aplicar reglas de exclusión. Para excluir uno o más atributos de entrada de la salida de esta expresión, active la casilla de control Excluir atributos entrantes. A continuación, utilice el menú para agregar los atributos de entrada que desea excluir de la salida. Se aplica una regla de exclusión a cada atributo que seleccione para excluir. Puede excluir atributos solo cuando agrega la expresión la primera vez. Al editar la expresión, la casilla de control Excluir atributos entrantes no está disponible.

Los parámetros son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto. Consulte Adición de un parámetro de expresión.

Las Funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos. A continuación se muestra una lista de funciones disponibles que puede utilizar para crear expresiones:

Funciones de agregación
FunciónDescripciónEjemplo
COUNT(value[, value]*)Devuelve el número de filas para las que una o más expresiones proporcionadas son no nulas.COUNT(expr1)
COUNT(*)Devuelve el número total de filas recuperadas, incluidas las filas que contienen un valor nulo.COUNT(*)
MAX(value)Devuelve el valor máximo del argumento.MAX(expr)
MIN(value)Devuelve el valor mínimo del argumento.MIN(expr)
SUM(numeric)Devuelve la suma calculada a partir de los valores de un grupo.SUM(expr1)
AVG(numeric)Devuelve la media de valores numéricos en una expresión.AVG(AGGREGATE_1.src1.attribute1)
LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause)

Concatena valores de la columna de entrada con el delimitador especificado, para cada grupo en función de la cláusula order.

La columna contiene los valores que desea concatenar en el resultado.

El delimitador separa los valores de columna del resultado. Si no se proporciona un delimitador, se utiliza un carácter vacío.

order_by_clause determina el orden en que se devuelven los valores concatenados.

Esta función solo se puede utilizar como agregador y se puede utilizar con agrupación o sin agrupación. Si se utiliza sin agrupación, el resultado es una sola fila. Si se utiliza con una agrupación, la función devuelve una fila para cada grupo.

Piense en una tabla con dos columnas, id y name. La tabla tiene tres filas. Los valores de la columna id son 101, 102, 102. Los valores de la columna name son A, B, C.

+-----+--------+
| id  | name  |
+-----+--------+
| 101 | A     |
+-----+--------+
| 102 | B     |
+-----+--------+
| 102 | C     |
+-----+--------+

Ejemplo 1: Sin agrupación

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) devuelve la columna name con el valor A-B-C

+--------+
| name   |
+--------+
| A-B-C  |
+--------+

Ejemplo 2: Agrupar por id

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) devuelve la columna name con los valores A y B-C en dos grupos.

+--------+
| name   |
+--------+
| A      |
+--------+
| B-C    |
+--------+
Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]

Operador de valor distinto

Utilice el operador de valor distinto para devolver filas de valores distintos con valores únicos.

Adición y configuración de un operador de valor distinto
  1. Desde el panel Operadores, arrastre un operador de valor Distinto al lienzo.
  2. Con el operador distinto enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.

    Las configuraciones del separador Detalles se definen por defecto para el operador de valor distinto.

  3. Para ver la salida del operador, seleccione el separador Datos.
    Se mostrarán las filas de valores distintos con valores únicos. También puede aplicar transformaciones a los datos o seleccionar un atributo para ver un perfil de datos o un perfil de atributo. Obtenga más información sobre las transformaciones de datos.
  4. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados. El operador de valor distinto solo funciona en los atributos filtrados y genera filas de valores distintos con valores únicos.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, si aplica un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar), los atributos se filtran por el patrón de nombre *_CODE y el tipo numérico o varchar.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  5. En el separador Datos, vea un ejemplo de los datos basado en las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  6. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.

Operador de ordenación

Utilice el operador de ordenación para ordenar los datos en orden ascendente o descendente.

Al utilizar un operador de ordenación, recomendamos aplicar el operador de ordenación después de aplicar otros operadores. Esto garantiza que el operador de ordenación permanezca inmediatamente antes del operador de destino, lo que permite que los datos se inserten en el destino en un orden específico.

Adición y configuración de un operador de ordenación

Al utilizar un operador de ordenación, aplíquelo después de otros operadores de conformación y antes del operador que requiere que se ordenen los datos.

Por ejemplo, aplique el operador de ordenación delante de un operador de destino para insertar los datos en el destino con una ordenación específica.

  1. Desde el panel Operadores, arrastre un operador de Ordenación al lienzo.
  2. Con el operador de ordenación enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. En la sección Condiciones de ordenación, seleccione Agregar.

    El panel Agregar condición de orden muestra todos los campos de atributo recuperados de la tabla de origen.

  4. En el panel Agregar condición de orden, seleccione el atributo por el que ordenar los datos.
  5. Para filtrar atributos mediante patrones de nombre, introduzca un patrón de nombre, por ejemplo, *CITY*.
  6. En Ordenación, seleccione Ascendente o Descendente y, a continuación, seleccione Agregar.

    Cada condición que agregue aparecerá en la lista de condiciones de orden.

    Nota

    Puede agregar varias condiciones de orden una a una. La ordenación se realiza según el orden de las condiciones de orden de la lista. Por ejemplo, la ordenación empieza basándose en la primera condición de la lista. A continuación, los datos ordenados se vuelven a ordenar de acuerdo con la segunda condición, y así sucesivamente.

    Para los tipos de dato de cadena, la operación de ordenación se produce en orden lexicográfico.

  7. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  8. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  9. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Adición de condiciones de orden

Después de agregar un operador de ordenación en el lienzo y de conectarlo con otro operador, puede agregar una condición de orden.

En el panel Agregar condición de orden, puede seleccionar los atributos para la ordenación en los campos mostrados o filtrar nombres de atributo mediante patrones. Para los tipos de dato de cadena, la operación de ordenación se produce en orden lexicográfico.

Para agregar condiciones de orden:

  1. En el separador Detalles, vaya a la sección Condiciones de ordenación y seleccione Agregar.

    El panel Agregar condición de orden muestra todos los campos de atributo recuperados de la tabla de origen.

  2. En el panel Add sort condition, seleccione el atributo por el que ordenar los datos.
  3. Para filtrar atributos mediante patrones de nombre, introduzca un patrón de nombre, por ejemplo, *CITY*.
  4. En Ordenación, seleccione Ascendente o Descendente y, a continuación, seleccione Agregar.

    Cada condición agregada se muestra en la lista de condiciones de orden.

    Nota

    Puede agregar varias condiciones de orden una a una. La ordenación se realiza según el orden de las condiciones de orden de la lista. Por ejemplo, la ordenación se produce primero según la primera condición de la lista y, a continuación, los datos ordenados se vuelven a ordenar según la segunda condición, y así sucesivamente.
Priorización de condiciones de orden

Mueva las condiciones de orden hacia arriba o hacia abajo en la lista para priorizar la ordenación.

Al mover las condiciones de ordenación hacia arriba o hacia abajo, puede ordenar primero por una condición de ordenación de prioridad alta y, a continuación, volver a ordenar los datos ordenados por la siguiente condición de la lista. Por ejemplo, para ordenar primero por dirección y después por código postal, mueva la condición de orden de dirección a la parte superior.

Para priorizar las condiciones de orden:

  1. En el separador Detalles, vaya a la sección Condiciones de orden.
  2. Seleccione el menú Acciones (Menú Acciones) correspondiente a la condición para ordenar que desea mover arriba o hacia abajo.
  3. Para que una condición de orden se aplique primero, seleccione Mover hacia arriba.
  4. Para que una condición de orden se aplique más tarde, seleccione Mover hacia abajo.
    La ordenación se aplica primero a la condición que se ha movido hacia arriba y, a continuación, a la condición que se ha movido hacia abajo.
Edición de condiciones de orden

Para editar condiciones de orden:

  1. En el separador Detalles, vaya a la sección Condiciones de orden.
  2. Seleccione el menú Acciones (Menú Acciones) correspondiente a la condición de ordenación que desea cambiar y, a continuación, seleccione Editar.
  3. En el panel Editar condición de orden, introduzca un patrón de nombre para seleccionar el nuevo atributo o filtrar los atributos.
    Los atributos o los patrones ya seleccionados, incluidos sus atributos asociados, no están disponibles para una selección posterior.
Supresión de condiciones de orden

Puede suprimir las condiciones de orden una por una o puede realizar una supresión masiva.

Para suprimir condiciones de orden:

  1. En el separador Detalles, vaya a la sección Condiciones de orden.
  2. Para suprimir condiciones de orden una por una, seleccione el menú Acciones (Menú Acciones) correspondiente a la condición del orden que desea suprimir.
  3. Para suprimir varias condiciones del orden, seleccione las casilla de control correspondientes a cada una y, a continuación, seleccione Suprimir en la parte superior de la lista.

Operador de unión

Utilice el operador de unión para realizar una operación de unión entre dos o más juegos de datos.

Descripción de los tipos de unión

Puede realizar una operación de unión en hasta diez operadores de origen. Debe configurar al menos dos entradas de origen. Puede seleccionar que se realice la operación de unión haciendo coincidir los nombres de atributo en los atributos de entrada de origen, o bien, puede hacer coincidir los atributos por su posición de atributo.

Unión por nombre de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 1 se define como entrada principal. La entidad de datos resultante muestra cómo se combinan los datos de las dos entradas durante una operación de unión por nombre. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1, entrada principal
Department LOCATION-ID Warehouse
IT 1400 San Francisco
Shipping 1500 Southlake (Texas)
Accounting 1700 New Jersey
Entidad de datos 2
Warehouse LOCATION-ID Department
Denver 1600 Benefits
New York 1400 Construction
Entidad de datos resultante
Department LOCATION-ID Warehouse
IT 1400 San Francisco
Shipping 1500 Southlake (Texas)
Accounting 1700 New Jersey
Benefits 1600 Denver
Construction 1400 New York
Unión por posición de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 2 se define como entrada principal. La entidad de datos resultante muestra cómo se combinan los datos de las dos entradas durante una operación de unión por posición. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1
Department LOCATION-ID Warehouse
IT 1400 San Francisco
Shipping 1500 Southlake (Texas)
Accounting 1700 New Jersey
Entidad de datos 2, entrada principal
Warehouse LOCATION-ID Department
Denver 1600 Benefits
New York 1400 Construction
Entidad de datos resultante
Warehouse LOCATION-ID Department
Denver 1600 Benefits
New York 1400 Construction
IT 1400 San Francisco
Shipping 1500 Southlake (Texas)
Accounting 1700 New Jersey
Adición y configuración de un operador de unión
  1. Para agregar un operador de unión al flujo de datos, arrastre el operador de Unión del panel Operadores al lienzo. Puede realizar la operación de unión en hasta diez orígenes de datos.
    El separador Detalles del operador de unión se muestra en el panel Propiedades.
  2. En el separador Detalles, introduzca un nombre para esta operación de unión en el campo Identificador o deje el nombre como está.
  3. Especifique cómo desea que se realice la operación de unión mediante el campo Hacer coincidir atributos de entrada por. Puede elegir entre las dos opciones siguientes:
    • Nombre: los nombres de atributo de los orígenes se hacen coincidir para realizar la operación de unión. Los nombres de atributo y los tipos de dato, así como el número de atributos en las entradas, deben ser idénticos. La coincidencia es sensible a mayúsculas/minúsculas. Revise los ejemplos para comprender cómo funciona la operación de unión por nombre.
    • Posición: los atributos de los orígenes se hacen coincidir en función de sus posiciones. El número de atributos y los tipos de dato de atributo de las entradas deben ser idénticos. Revise los ejemplos para comprender cómo funciona la operación de unión por posición.
  4. Para Unir todo, active la casilla de control si desea que la operación devuelva todas las filas de todas las entidades de datos conectadas sin eliminar los duplicados.
  5. Para Entrada principal, seleccione el origen que debe considerarse como el origen clave en la operación de unión. Esta entrada principal determina los nombres de atributo, los tipos de dato de atributo y el orden de los atributos resultantes de la operación de unión. Por defecto, el primer origen agregado al flujo de datos se define como entrada principal.
  6. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, si aplica un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar), los atributos se filtran por el patrón de nombre *_CODE y el tipo numérico o varchar.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  7. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  8. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.

Operador de resta

Utilice el operador de resta para comparar dos entidades de datos y devolver las filas que están presentes en una entidad pero que no están presentes en la otra entidad.

Puede seleccionar que se mantengan o se eliminen las filas duplicadas en los datos resultantes.

Descripción de los tipos de resta

Puede realizar una operación de resta solo en dos operadores de origen. Puede seleccionar que se realice la operación de resta haciendo coincidir los nombres de atributo en los atributos de entrada de origen, o bien, puede hacer coincidir los atributos por su posición de atributo.

Resta por nombre de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 1 se define como entrada principal. La entidad de datos resultante muestra cómo se restan los datos de las dos entradas durante una operación de resta por nombre. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1, entrada principal
DepartmentLOCATION-IDWarehouse
IT1400San Francisco
Shipping1500Austin
Accounting1700New Jersey
Entidad de datos 2
DepartmentWarehouseLOCATION-ID
BenefitsDenver1600
ITSan Francisco1400
Entidad de datos resultante
DepartmentLOCATION-IDWarehouse
Shipping1500Austin
Accounting1700New Jersey
Resta por posición de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 2 se define como entrada principal. La entidad de datos resultante muestra cómo se restan los datos de las dos entradas durante una operación de resta por posición. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1
DepartmentLOCATION-IDWarehouse
IT1400San Francisco
Shipping1500Austin
Accounting1700New Jersey
Entidad de datos 2, entrada principal
Department-NameLocationWarehouse-City
Benefits1600Denver
IT1400San Francisco
Entidad de datos resultante
Department-NameLocationWarehouse-City
Benefits1600Denver
Adición y configuración de un operador de resta
  1. Para agregar un operador de resta al flujo de datos, arrastre el operador de Resta del panel Operadores al lienzo.
    El separador Detalles del operador de resta se muestra en el panel Propiedades.
  2. En el separador Detalles, introduzca un nombre para esta operación de resta en el campo Identificador o deje el nombre como está.
  3. Especifique cómo desea que se realice la operación de resta mediante el campo Hacer coincidir atributos de entrada por. Puede elegir entre las dos opciones siguientes:
    • Nombre: los nombres de atributo de los orígenes se hacen coincidir para realizar la operación de resta. Los nombres de atributo y los tipos de dato, así como el número de atributos en las entradas, deben ser idénticos. La coincidencia es sensible a mayúsculas/minúsculas. Revise los ejemplos para comprender cómo funciona la operación de resta por nombre.
    • Posición: los atributos de los orígenes se hacen coincidir en función de sus posiciones. El número de atributos y los tipos de dato de atributo de las entradas deben ser idénticos. Revise los ejemplos para comprender cómo funciona la operación de resta por posición.
  4. En Minus todo, active la casilla de control si desea que la operación devuelva todas las filas encontradas en una entidad de datos que no estén presentes en la otra entidad de datos, sin eliminar los duplicados.
  5. En Entrada principal, seleccione el origen que se utilizará como origen principal para la operación de resta. La entrada principal determina los nombres de atributo, los tipos de dato de atributo y el orden de los atributos en la salida resultante. Por defecto, el primer origen conectado al operador de resta se establece como entrada principal.
    Icono Entrada principal Descripción
    diagrama de Venn de unión externa izquierda Operador Minus: izquierda Selecciona todas las filas restantes distintas del origen de entrada 1 tras eliminar las filas que coinciden con el origen de entrada 2.
    diagrama de Venn de unión externa derecha Operador Minus: derecha Selecciona todas las filas restantes distintas del origen de entrada 2 tras eliminar las filas que coinciden con el origen de entrada 1.
  6. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, si aplica un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar), los atributos se filtran por el patrón de nombre *_CODE y el tipo numérico o varchar.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  7. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  8. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.

Operador de intersección

Utilice el operador de intersección para comparar dos o más entidades de datos y devolver las filas que están presentes en las entidades conectadas.

Puede seleccionar que se mantengan o se eliminen las filas duplicadas en los datos resultantes.

Descripción de los tipos de intersección

Puede realizar una operación de intersección en dos o más operadores de origen. Puede seleccionar que se realice la operación haciendo coincidir los nombres de atributo en los atributos de entrada de origen, o bien, puede hacer coincidir los atributos por su posición de atributo.

Intersección por nombre de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 1 se define como entrada principal. La entidad de datos resultante muestra cómo se intersecan los datos de las dos entradas por nombre de atributo. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1, entrada principal
DepartmentLOCATION-IDWarehouse
IT1400San Francisco
Shipping1500Austin
Accounting1700New Jersey
Entidad de datos 2
DepartmentWarehouseLOCATION-ID
BenefitsDenver1600
ITSan Francisco1400
Entidad de datos resultante
DepartmentLOCATION-IDWarehouse
IT1400San Francisco
Intersección por posición de atributo

Considere los siguientes dos ejemplos de entidad de datos. La entidad de datos 2 se define como entrada principal. La entidad de datos resultante muestra cómo se intersecan los datos de las dos entradas por posición de atributo. La entidad de datos resultante utiliza el nombre de atributo, el orden y el tipo de dato de la entidad de datos de entrada principal.

Entidad de datos 1
DepartmentLOCATION-IDWarehouse
IT1400San Francisco
Shipping1500Austin
Accounting1700New Jersey
Entidad de datos 2, entrada principal
Department-NameLocationWarehouse-City
Benefits1600Denver
IT1400San Francisco
Entidad de datos resultante
Department-NameLocationWarehouse-City
IT1400San Francisco
Adición y configuración de un operador de intersección
  1. Para agregar un operador de intersección al flujo de datos, arrastre el operador de Intersección del panel Operadores al lienzo.
    El separador Detalles del operador de intersección se muestra en el panel Propiedades.
  2. En el separador Detalles, introduzca un nombre para esta operación de intersección en el campo Identificador o deje el nombre como está.
  3. Especifique cómo desea que se realice la operación de intersección mediante el campo Hacer coincidir atributos de entrada por. Puede elegir entre las dos opciones siguientes:
    • Nombre: los nombres de atributo de los orígenes se hacen coincidir para realizar la operación de intersección. Los nombres de atributo y los tipos de dato, así como el número de atributos en las entradas, deben ser idénticos. La coincidencia es sensible a mayúsculas/minúsculas. Revise los ejemplos para comprender cómo funciona la operación de intersección por nombre.
    • Posición: los atributos de los orígenes se hacen coincidir en función de sus posiciones. El número de atributos y los tipos de dato de atributo de las entradas deben ser idénticos. Revise los ejemplos para comprender cómo funciona la operación de intersección por posición.
  4. Para Intersecar todo, active la casilla de control si desea que la operación devuelva todas las filas de la salida resultante, sin eliminar duplicados.
  5. En Entrada principal, seleccione el origen que se va a utilizar como origen principal para la operación de intersección. La entrada principal determina los nombres de atributo, los tipos de dato de atributo y el orden de los atributos en la salida resultante. Por defecto, el primer origen conectado al operador de intersección se define como entrada principal.
  6. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, si aplica un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar), los atributos se filtran por el patrón de nombre *_CODE y el tipo numérico o varchar.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  7. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  8. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.

Operador de división

Utilice el operador de división para dividir un origen de datos de entrada en dos o más puertos de salida en función de las condiciones de división que se evalúan en una secuencia.

Cada condición de división tiene un puerto de salida. Los datos que cumplen una condición se dirigen al puerto de salida correspondiente.

Por defecto, se configura un operador de división con la condición No coincidente (Unmatched), que siempre está disponible en la secuencia como última condición. No puede agregar su propia condición a la condición No coincidente. Tampoco puede suprimir la condición No coincidente.

El operador evalúa las condiciones de una en una. Después de evaluar todas las condiciones de la secuencia, los datos que no cumplen una condición se dirigen al puerto de salida No coincidente.

Ejemplo de división

Supongamos que tiene la entidad de datos BANK con los atributos BANK_ID y BANK_NAME.

Defina dos condiciones de división. La secuencia completa, incluida la condición No coincidente (Unmatched), es la siguiente:

Puerto de salida de condiciónCondición
CONDITION1SPLIT_1.BANK.BANK_ID<102
CONDITION2SPLIT_1.BANK.BANK_ID<104
UNMATCHEDLa condición UNMATCHED por defecto dirige todos los datos que no cumplen las demás condiciones de la secuencia al puerto de salida UNMATCHED
Entidad de datos BANK

La entidad de datos tiene cuatro filas.

BANK_IDBANK_NAME
101A Bank 101
102B Bank 102
103C Bank 103
104D Bank 104
Salida de Condition1, Primera condición de coincidencia

CONDITION1 devuelve una fila coincidente.

BANK_IDBANK_NAME
101A Bank 101
Salida de Condition2, Primera condición de coincidencia

CONDITION2 devuelve dos filas coincidentes (a partir de las filas no coincidentes después de CONDITION1).

BANK_IDBANK_NAME
102B Bank 102
103C Bank 103
Salida de la condición No coincidente, Primera condición de coincidencia

La condición UNMATCHED devuelve la fila restante.

BANK_IDBANK_NAME
104D Bank 104
Salida de Condition1, todas las condiciones coincidentes

CONDITION1 devuelve una fila coincidente.

BANK_IDBANK_NAME
101A Bank 101
Salida de Condition2, todas las condiciones coincidentes

Todos los datos se evalúan según CONDITION2, devolviendo tres filas coincidentes.

BANK_IDBANK_NAME
101A Bank 101
102B Bank 102
103C Bank 103
Salida de la condición No coincidente, todas las condiciones de coincidencia

La condición UNMATCHED devuelve las filas que no cumplen CONDITION1 y CONDITION2.

BANK_IDBANK_NAME
104D Bank 104
Adición y configuración de un operador de división

Cuando agrega un operador de división en el lienzo, por defecto, el icono de operador de división aparece ampliado y muestra la condición de división No coincidente. La condición No coincidente dirige todos los datos que no cumplen las otras condiciones que agregue a la secuencia.

  1. Desde el panel Operadores, arrastre un operador de Split al lienzo.
  2. Con el operador de división enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. En Cotejo, especifique cómo desea manejar los datos de entrada que cumplen una condición de división. Puede elegir entre las dos opciones siguientes:
    • Primera condición de coincidencia: los datos que coinciden con la primera condición de la secuencia se eliminan del procesamiento posterior realizado por condiciones posteriores.

      Por ejemplo, considere una secuencia con cuatro condiciones, incluida la última condición No coincidente: Condition1, Condition2, Condition3 y Unmatched.

      Para Condition1, la operación no encuentra coincidencias. Para Condition2, se encuentran coincidencias. La operación direcciona los datos coincidentes al puerto de salida especificado para Condition2 y, a continuación, evalúa los datos no coincidentes para Condition3. Si no se encuentran coincidencias para Condition3, todos los datos se direccionan al puerto de salida especificado para la condición No coincidente. Sin embargo, si se encuentran coincidencias para Condition3, la operación direcciona los datos coincidentes al puerto de salida para Condition3 y, a continuación, direcciona los datos restantes al puerto para la condición No coincidente.

    • Todas las condiciones de coincidencia: los datos que coinciden con cualquier condición se evalúan para todas las condiciones de la secuencia.

      Por ejemplo, considere una secuencia con Condition1 y Condition2. Se encuentran coincidencias después de evaluar Condition1. Los datos coincidentes se direccionan al puerto de salida especificado para Condition1. Todos los datos (coincidentes y no coincidentes) se evalúan según Condition2. Los datos que coinciden con Condition2 se direccionan al puerto de salida correspondiente. Los datos que no cumplen Condition1 y Condition2 se direccionan al puerto de salida para la condición de división No coincidente.

  4. En Condiciones de división, seleccione Agregar condición para agregar una condición de división.
    1. En el panel para agregar una condición de división, edite el valor de Identificador o déjelo tal cual.
    2. En la sección Creador de condiciones, puede arrastrar o hacer doble clic en atributos, parámetros y funciones para agregarlos al editor a fin de crear una condición. También puede introducir una expresión de condición manualmente en el editor y validar la expresión.
      Nota

      En el editor, un elemento agregado, como una función, puede tener marcadores de posición. Para sustituir un marcador de posición por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista.
    3. Seleccione Agregar.
      La primera condición que agregue se inserta antes de la condición No coincidente. También puede ver la secuencia de condiciones en el icono de operador ampliado del lienzo.
    4. Repita los pasos para agregar condiciones y formar una secuencia.
      La segunda condición se inserta en la secuencia entre la primera condición y la condición No coincidente. Las condiciones posteriores siempre se insertan antes de la condición No coincidente. La secuencia de condiciones de división también se refleja en el icono de operador de división ampliado del lienzo.
  5. Para conectar un puerto de salida de una condición de división a otro operador del lienzo:
    1. Amplíe el icono de operador de división para mostrar la secuencia de condiciones.
      Si el icono de operador de división no está ampliado, puede conectar el operador al siguiente operador, pero el enlace se crea desde el puerto de la condición No coincidente.
    2. Coloque el puntero sobre el final de una condición y, a continuación, arrastre el círculo pequeño situado en el lado derecho de la condición hasta el siguiente operador de conformación o un destino.
    3. Conecte cada condición al operador o destino adecuado.
    Cada puerto de salida de condición se puede enlazar a varios operadores de conformación y de destino. Si el icono de operador de división no está ampliado en el lienzo, puede pasar el cursor sobre una línea de enlace para ver el nombre de condición de ese enlace.
  6. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  7. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El menú Puerto de salida condicional muestra el mismo número de elementos que el número de condiciones configuradas en el operador, incluida la condición No coincidente. Por defecto, se muestra la salida del puerto de la primera condición. Para cambiar la vista de salida, seleccione el puerto de la salida de condición en el menú.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  8. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Adición de una condición de división

Utilice el Creador de condiciones para seleccionar visualmente elementos para crear y agregar una condición de división. También puede introducir una condición de división manualmente en el editor.

Puede agregar condiciones de división a una secuencia de condiciones existente. Las condiciones de división se agregan al final de la secuencia, antes de la condición No coincidente. No puede agregar su propia condición a la condición No coincidente.

Los elementos que puede utilizar en una condición de división incluyen atributos, parámetros y funciones de entrada. Puede arrastrar o hacer doble clic en un elemento de la lista para agregarlo al editor a fin de crear una condición. Puede validar la condición antes de crearla.

De entrada muestra los atributos del puerto ascendente. Por ejemplo:

SPLIT_1.BANK.BANK_NAME='ABC Bank'

Los parámetros son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto. Consulte Adición de un parámetro de expresión.

Supongamos que crea un parámetro VARCHAR con el nombre P_VARCHAR_NAME y define el valor por defecto en ABC BANK. A continuación, puede utilizar el parámetro en una condición de división de la siguiente manera:

SPLIT_1.BANK.BANK_NAME=$P_VARCHAR_NAME

Las funciones son las funciones disponibles en Data Integration que puede utilizar en una condición. Las funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos.

Supongamos que crea un parámetro VARCHAR con el nombre P_VARCHAR_LIKE y define el valor por defecto en B%. A continuación, puede utilizar el parámetro en una condición de división de la siguiente manera:

SPLIT_1.BANK.BANK_NAME LIKE $P_VARCHAR_LIKE

A continuación se muestra una lista de funciones que están disponibles para su agregación al crear condiciones:

Funciones hash
FunciónDescripciónEjemplo
MD5(all data types)Calcula un total de control MD5 del tipo de dato y devuelve un valor de cadena. MD5(column_name)
SHA1(all data types)Calcula un valor hash SHA-1 del tipo de dato y devuelve un valor de cadena. SHA1(column_name)
SHA2(all data types, bitLength)Calcula un valor hash SHA-2 del tipo de dato y devuelve un valor de cadena. bitLengthes un entero. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcula un valor hash para expr y devuelve un valor NUMBER.

expr puede ser una expresión, una columna, un literal.

max_bucket es el valor de cubo máximo devuelto, entre 0 y 4294967295 (valor por defecto).

seed_value es un valor entre 0 (valor por defecto) y 4294967295.

Oracle aplica la función hash a la combinación de expr y seed_value para producir muchos resultados diferentes para el mismo juego de datos.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POWER(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') devuelve -45677.7

Funciones de fecha y hora
Función Descripción Ejemplo
CURRENT_DATE Devuelve la fecha actual. CURRENT_DATEdevuelve la fecha de hoy, como 2023-05-26
CURRENT_TIMESTAMP Devuelve la hora y la fecha actuales de la zona horaria de la sesión. CURRENT_TIMESTAMP devuelve la fecha actual y la hora actual, como 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado. DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_FORMAT(expr, format[, locale])

Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato de fecha soportados:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') devuelve '2020-10-11'. El primer argumento es un objeto Date que representa el 11 de octubre de 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') devuelve '2018/junio/17'

DAYOFMONTH(date) Devuelve el día del mes de la fecha. DAYOFMONTH('2020-12-25') devuelve 25
DAYOFWEEK(date) Devuelve el día de la semana de la fecha. DAYOFWEEK('2020-12-25') devuelve 6 para Friday. En los Estados Unidos, el domingo se considera 1, el lunes es 2, y así sucesivamente.
DAYOFYEAR(date) Devuelve el día del año de la fecha. DAYOFYEAR('2020-12-25') devuelve 360
WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

WEEKOFYEAR('2022-07-28') devuelve 30

WEEKOFYEAR('2022-07-28 13:24:30') returns 30

HOUR(datetime) Devuelve el valor de hora de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 15
LAST_DAY(date) Devuelve el último día del mes de la fecha. LAST_DAY('2020-12-25') devuelve 31
MINUTE(datetime) Devuelve el valor de minutos de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 10
MONTH(date) Devuelve el valor de mes de la fecha. MONTH('2020-06-25') devuelve 6
QUARTER(date) Devuelve el trimestre del año en el que se encuentra la fecha. QUARTER('2020-12-25') devuelve 4
SECOND(datetime) Devuelve el segundo valor de la fecha y hora. SECOND('2020-12-25 15:10:30') devuelve 30
TO_DATE(string, format_string[, localeStr]) Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, las cadenas de formato sensibles a mayúsculas/minúsculas soportadas son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') devuelve el valor de fecha 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') devuelve el valor de fecha 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') devuelve un objeto TIMESTAMP que representa 11am 10:10 Oct 11th, 2020
WEEK(date)

Devuelve el valor de semana de la fecha.

WEEK('2020-06-25') devuelve 4
YEAR(date) Devuelve el valor de año de la fecha. YEAR('2020-06-25') devuelve 2020
ADD_MONTHS(date_expr, number_months) Devuelve la fecha después de agregar el número de meses especificado a la fecha, registro de hora o cadena especificados con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) devuelve 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) devuelve 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') devuelve 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') devuelve 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') devuelve 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpreta una fecha, un registro de hora o una cadena como hora UTC y la convierte en un registro de hora en la zona horaria especificada.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl' o un desfase de zona horaria (por ejemplo, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convierte una fecha, un registro de hora o una cadena en la zona horaria especificada en un registro de hora UTC.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl') o un desfase de zona horaria (por ejemplo, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convierte la hora o época de Unix especificada en una cadena que representa el registro de hora de ese momento en la zona horaria del sistema actual y en el formato especificado.

Nota: La hora de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC.

Si se omite fmt, el formato por defecto es yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) devuelve '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) devuelve '2021-11-18 10:07:34'

La zona horaria por defecto es PST en los ejemplos

UNIX_TIMESTAMP([time_expr[, fmt]])

Convierte la hora actual o especificada en un registro de hora de Unix en segundos.

time_expr es una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Si no se proporciona time_expr, se convierte la hora actual.

Si time_expr es una cadena y se omite fmt, el valor por defecto es yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') devuelve 28800

La zona horaria por defecto es PST en este ejemplo

INTERVAL 'year' YEAR[(year_precision)]

Devuelve un período de tiempo en años.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '1' YEAR devuelve un intervalo de 1 año

INTERVAL '200' YEAR(3) devuelve un intervalo de 200 años

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Devuelve un período de tiempo en años y meses. Se utiliza para almacenar un período de tiempo utilizando los campos year y month.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '100-5' YEAR(3) TO MONTH devuelve un intervalo de 100 años, 5 meses. Debe especificar una precisión de año inicial 3.
INTERVAL 'month' MONTH[(month_precision)]

Devuelve un período de tiempo en meses.

month_precision es el número de dígitos del campo mes; está comprendido entre 0 y 9. Si se suprime month_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '200' MONTH(3) devuelve un intervalo de 200 meses. Debe especificar una precisión de mes 3.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) devuelve un intervalo de 11 días, 10 horas, 09 minutos, 08 segundos y 555 milésimas de segundo
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en días, horas y minutos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '11 10:09' DAY TO MINUTE devuelve un intervalo de 11 días, 10 horas y 09 minutos
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Devuelve un período de tiempo en días y horas.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '100 10' DAY(3) TO HOUR devuelve un intervalo de 100 días y 10 horas
INTERVAL 'day' DAY[(day_precision)]

Devuelve un período de tiempo en días.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

INTERVAL '999' DAY(3) devuelve un intervalo de 999 días
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) devuelve un intervalo de 9 horas, 08 minutos y 76 666 666 segundos
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en horas y minutos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '09:30' HOUR TO MINUTE devuelve un intervalo de 9 horas y 30 minutos
INTERVAL 'hour' HOUR[(hour_precision)]

Devuelve un período de tiempo en horas.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '40' HOUR devuelve un intervalo de 40 horas
INTERVAL 'minute' MINUTE[(minute_precision)]

Devuelve un período de tiempo en minutos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '15' MINUTE devuelve un intervalo de 15 minutos
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en minutos y segundos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '15:30' MINUTE TO SECOND devuelve un intervalo de 15 minutos y 30 segundos
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en segundos.

fractional_seconds_precision es el número de dígitos en la parte fraccional del campo second; oscila entre 0 y 9. El valor por defecto es 3.

INTERVAL '15.678' SECOND devuelve un intervalo de 15 678 segundos
Funciones analíticas
Función Descripción Ejemplo
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Devuelve el valor evaluado en la fila que es la primera fila del marco de ventana. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el primer valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionada por BANK_ID y en orden ascendente por BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado antes de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) devuelve el valor de BANK_ID de la segunda fila antes de la fila actual, particionado por BANK_ID y en orden descendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Devuelve el valor evaluado en la fila que es la última fila del marco de ventana. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el último valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionado por BANK_ID y en orden ascendente por BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado después de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el valor de BANK_ID de la segunda fila después de la fila actual, particionado por BANK_ID y en orden ascendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
RANK() OVER([ partition_clause ] order_by_clause) Devuelve el rango de la fila actual con intervalos, contando desde 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el rango de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Devuelve el número único de la fila actual dentro de su partición, contando desde 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el número de fila único de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnas.CONCAT('Oracle','SQL') devuelve OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Devuelve los valores combinados de cadenas o columnas utilizando el separador especificado entre las cadenas o columnas.

Se necesita un separador y debe ser una cadena.

Se debe proporcionar al menos una expresión después del separador. Por ejemplo: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') devuelve Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) devuelve 123 MyCity 987654

Si un secundario de la función es una matriz, la matriz se simplifica:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) devuelve 1,2,3,4,5,6,7,8,9

INITCAP(string)Devuelve la cadena con la primera letra de cada palabra en mayúsculas, mientras que el resto de letras están en minúsculas, y cada palabra está delimitada por un espacio en blanco.INITCAP('oRACLE sql') devuelve Oracle Sql
INSTR(string, substring[start_position])Devuelve el índice (basado en 1) de la primera ocurrencia de substring en string.INSTR('OracleSQL', 'SQL') devuelve 7
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
NVL(expr1, epxr2)Devuelve el argumento que no es nulo.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') devuelve https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('ABCabc', 'abc', 'DEF') devuelve ABCDEF
RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Devuelve la subcadena que empieza en la posición. SUBSTRING('Oracle SQL' FROM 2 FOR 3) devuelve rac
Para números, TO_CHAR(expr) y para fechas TO_CHAR(expr, format[, locale])Convierte números y fechas en cadenas. Para los números, no es necesario ningún formato. Para las fechas, utilice el mismo formato que DATE_FORMAT descrito en Funciones de fecha y hora. La configuración regional por defecto es en-US. Consulte las etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato de fecha soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

Ejemplo de número: TO_CHAR(123) devuelve 123

Ejemplo de fecha: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') devuelve la cadena 2020.10.30. El primer argumento es un objeto Date que representa el 30 de octubre de 2020,

UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
LPAD(str, len[, pad])Devuelve una cadena que está rellena a la izquierda con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.LPAD('ABC', 5, '*') devuelve '**ABC'
RPAD(str, len[, pad])Devuelve una cadena que está rellenada a la derecha con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Funciones de operador (de comparación)
FunciónDescripciónEjemplo
CASE WHEN condition1 THEN result1 ELSE result2 ENDDevuelve el valor para el que se cumple una condición.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END devuelve ABC si 1> 0, de lo contrario, devuelve XYZ
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
LIKERealiza una coincidencia de patrones de cadena, si string1 coincide con el patrón de string2.
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
!=Comprueba la desigualdad. Devuelve true si expr1 no es igual a expr2; de lo contrario, devuelve false.x != 10 devuelve "false" si el valor de x es 10; de lo contrario, devuelve "true"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
||Concatena dos cadenas.'XYZ' || 'hello' devuelve 'XYZhello'
BETWEENEvalúa un rango.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INPrueba si una expresión coincide con una lista de valores.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Funciones de identificador único
FunciónDescripciónEjemplo
NUMERIC_ID()Genera un identificador único universal que es un número de 64 bits para cada fila.NUMERIC_ID() devuelve, por ejemplo, 3458761969522180096 y 3458762008176885761
ROWID()Genera números de 64 bits monótonamente.ROWID() devuelve, por ejemplo, 0, 1, 2, etc.
UUID()Genera un identificador único universal que es una cadena de 128 bits para cada fila.UUID() devuelve, por ejemplo, 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Genera números enteros únicos que aumentan monótonamente 64 bits que no son números consecutivos. MONOTONICALLY_INCREASING_ID() returns for example, 8589934592 and 25769803776
Funciones condicionales
FunciónDescripciónEjemplo
COALESCE(value, value [, value]*)Devuelve el primer argumento no nulo, si existe; de lo contrario, devuelve null.COALESCE(NULL, 1, NULL) devuelve 1
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
Funciones jerárquicas
FunciónDescripciónEjemplo
SCHEMA_OF_JSON(string)Analiza una cadena JSON e infiere el esquema en formato DDL.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') devuelve 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') devuelve 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analiza una columna que contiene una cadena JSON en uno de los siguientes tipos, con el esquema especificado.

  • Map, con String como tipo de clave
  • Estruc
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') devuelve una columna de tipo Struct con el esquema especificado: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') devuelve una columna de tipo Struct con el esquema especificado: {1, 0.8}

TO_JSON(column)Convierte una columna que contiene un tipo Struct o Array of Structs, o Map o Array of Map en una cadena JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) devuelve una cadena JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

TO_STRUCT('Ename',Expression_1.attribute1) devuelve {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) devuelve {100, "John"}

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) devuelve ["John","Friend"]

Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]
Edición de condiciones de división

Puede editar cualquier condición de división excepto la condición No coincidente.

  1. En el lienzo del diseñador, seleccione el operador de división de la condición que desea cambiar.
    El separador Detalles del operador de división aparecerá en el panel Propiedades. En el lienzo, puede ampliar y reducir el icono del operador para mostrar y ocultar las condiciones de división existentes.
  2. En el separador Detalles, en Condiciones de división, seleccione Editar en el menú Acciones (Acciones, menú) situado junto a la condición de división que desea cambiar.
  3. En el panel Edit split condition, edite el valor Identifier o deje el campo as-is.
  4. En la sección Creador de condiciones, puede arrastrar o arrastrar atributos o funciones de entrada al editor para crear la condición. También puede editar la expresión de condición manualmente en el editor y validar la condición antes de guardarla.
  5. Seleccione Guardar cambios.
Cambio de la secuencia de condiciones de división

Puede mover una condición de división hacia arriba o hacia abajo en la secuencia. La condición No coincidente es la única que no se puede mover.

  1. En el lienzo del diseñador, seleccione el operador de división que tiene la secuencia de condiciones que desea cambiar.
    El separador Detalles del operador de división aparecerá en el panel Propiedades. En el lienzo, puede ampliar y reducir el icono del operador para mostrar y ocultar las condiciones de división existentes.
  2. En el separador Detalles, en Condiciones de división, revise la secuencia de condiciones de división.
  3. Junto a una fila de condición, en el menú Acciones (Acciones, menú), seleccione la acción para subir o bajar esa condición en la secuencia.
    Observe que la posición de condición en el icono de operador de división ampliado del lienzo cambia según corresponda cuando se mueve una condición.
Supresión de condiciones de división

Puede suprimir cualquier condición de división excepto la condición No coincidente.

  1. En el lienzo del diseñador, seleccione el operador de división de la condición que desea suprimir.
    El separador Detalles del operador de división aparecerá en el panel Propiedades. En el lienzo, puede ampliar y reducir el icono del operador para mostrar y ocultar las condiciones de división.
  2. En el separador Detalles, en Condiciones de división, seleccione Suprimir en el menú Acciones (Acciones, menú) situado junto a la condición que desea suprimir.
  3. Para suprimir dos o más condiciones, utilice la columna que está junto a la columna Secuencia para seleccionar las condiciones y, a continuación, seleccione Suprimir.
  4. Si el puerto de salida de una condición suprimida estaba conectado a otro operador o destino, asegúrese de revisar el flujo de datos y de realizar los cambios necesarios después de suprimir las condiciones.

Operador PIVOT

El operador dinámico permite tomar valores de fila únicos de un atributo en un origen de entrada y girar los valores en varios atributos en la salida.

Mediante la entrada de varias filas, la operación dinámica realiza una transformación basada en expresiones de función agregada y los valores de un atributo que especifique como clave dinámica. El resultado de una operación dinámica es una salida dinámica o reorganizada de filas y atributos.

El número de filas de la salida se basa en la selección de atributos por los que agrupar.

  • Si especifica uno o más atributos por los que agrupar, las filas de entrada que tienen el mismo valor de atributo agrupar por se agrupan en una fila. Por ejemplo, si especifica un atributo agrupar por que tenga cuatro valores únicos, los datos de entrada se transforman y agrupan en cuatro filas en la salida.
  • Si no especifica ningún atributo por el que agrupar, todos los datos entrantes se transforman en una única fila de salida.

El número de atributos en la salida es:

  • Según el número de atributos que seleccione por los que agrupar
  • Un múltiplo del número de valores que selecciona en la clave dinámica
  • Un resultado del número de atributos que transforman las expresiones de función de agregación

Por ejemplo, si selecciona un atributo group by y tres valores de clave dinámica, y agrega una expresión que transforma dos atributos, el número de atributos de la salida es:

1 + (3 * 2)

El número total de atributos en la salida dinámica resultante se calcula de la siguiente manera:

Number of group by attributes + (Number of pivot key values * Number of attributes that are transformed from expressions)

Los nombres de los nuevos atributos en la salida se derivan de un patrón que agrega para los atributos de destino al crear las expresiones.

Las funciones de agregado que utilice con un operador dinámico determinan los valores dinámicos de la salida. Si no se encuentran datos, se inserta un valor nulo donde se espera un valor dinámico.

Ejemplo dinámico

Tenga en cuenta la entidad de datos PRODUCT_SALES, que incluye los atributos STORE, PRODUCT y SALES. La entidad de datos tiene cinco filas. Desea crear un elemento dinámico en el atributo PRODUCTO con una función SUM de agregado en SALES.

Puede especificar que se agrupen filas dinámicas por el atributo STORE. Cada valor STORE único se convierte en una fila en la salida resultante. Las filas de entrada con el mismo valor de agrupación se agrupan en la misma fila de la salida dinámica. Si no especifica un atributo group by, todas las filas de entrada se transforman en una sola fila en la salida resultante.

Especifique PRODUCT como clave dinámica y seleccione los tres valores para girar en nuevos atributos en la salida resultante.

La expresión de función SUM de agregado en SALES es:

SUM(PIVOT_1_1.PRODUCT_SALES.SALES)

El patrón para los atributos de destino es:

%PIVOT_KEY_VALUE%
Entidad de datos PRODUCT_SALES
STOREPRODUCTSALES
Tienda ABTelevisión2
Tienda ABTelevisión4
País-TiendaTelevisión6
País-TiendaRefrigerador8
Tienda electrónicaCafetera10
Salida dinámica: Group By STORE, Clave dinámica PRODUCT
STORETELEVISIÓNREFRIGERADORCAFETERA
Tienda-AB6--
País-Tienda68-
Tienda electrónica--10
Salida dinámica: sin Group By, Clave dinámica PRODUCT
TELEVISIÓNREFRIGERADORCAFETERA
12810
Adición y configuración de un operador PIVOT

El operador dinámico realiza una transformación mediante una o más expresiones de función de agregado en uno o más valores de un atributo que especifique como clave dinámica.

Puede agrupar las filas dinámicas en una sola fila o seleccionar atributos para crear varias filas de salida basadas en el mismo valor agrupar por.

  1. Desde el panel Operadores, arrastre un operador Pivot al lienzo.
  2. Con el operador PIVOT enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. (Opcional) En Agregar por, especifique los atributos cuyos valores distintos se utilizan para organizar los datos dinámicos en filas agrupadas. Por defecto, todas las filas entrantes se agregan y agrupan en una fila, a menos que especifique uno o más atributos por los que agrupar las filas.
    • Seleccione Atributos y, a continuación, seleccione uno o más atributos para agrupar filas dinámicas por el mismo valor. Por ejemplo, si selecciona un atributo que tiene dos valores únicos, la salida resultante tiene dos filas de datos agregados.
    • Seleccione Patrón para utilizar un patrón de expresión regular para seleccionar los atributos por los que agrupar. Solo los atributos que coincidan con el patrón se utilizan para agrupar filas dinámicas por el mismo valor.
  4. En clave dinámica, seleccione el atributo cuyos valores se pueden utilizar como nuevos atributos en la salida dinámica. Solo se pueden utilizar como clave dinámica los atributos de tipo VARCHAR, INTEGER, FLOAT o BOOLEAN.
  5. En Valores de clave dinámica, seleccione Agregar valores de clave para seleccionar uno o más valores de las claves dinámicas seleccionadas que desea convertir en atributos dinámicas en la salida. Se pueden seleccionar hasta 50 valores.

    Puede utilizar un alias para un valor de clave dinámica seleccionado. Un alias no puede empezar con un número. Solo se permite el carácter especial _.

    Para utilizar un alias para un valor de clave dinámica seleccionado, seleccione Editar en el menú Acciones (Acciones, menú) para ese valor de clave. En el panel Editar alias de clave dinámica, introduzca el alias para el valor de clave.

    Para suprimir un valor de clave dinámica de la lista seleccionada, seleccione la casilla de control situada junto a él y seleccione Suprimir. Asimismo, puede seleccionar Suprimir en el menú Acciones (Menú Acciones).

  6. En Expresiones, seleccione Agregar expresión para agregar las expresiones de función agregada. Consulte Adición de una expresión dinámica.
  7. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  8. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  9. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Adición de una expresión dinámica

Se necesitan una o más expresiones de función de agregación para un operador dinámico.

  1. Con el operador dinámico seleccionado en el lienzo del flujo de datos, en Expresiones del panel de propiedades, seleccione Agregar expresión.

  2. En el panel Agregar expresión, introduzca un nombre para la expresión en el campo Identificador o deje el nombre como está.

  3. (Opcional) Para utilizar un patrón para aplicar una expresión a varios atributos de origen, seleccione Permitir selección masiva.

    Por ejemplo, supongamos que tiene dos atributos DISCOUNT_ en el juego de datos (DISCOUNT_VALUE y DISCOUNT_RATE) y desea aplicar la función MAX a ambos.

    1. En Atributos del origen, seleccione Patrón y seleccione Agregar patrón.

    2. En el panel Agregar patrón de origen, agregue un patrón para seleccionar un grupo de atributos de origen que tengan nombres que comiencen por DISCOUNT_. Por ejemplo, introduzca DISCOUNT* y seleccione Agregar. A continuación, seleccione el tipo de datos.

    3. En Atributos de destino, utilice un patrón para los nombres de atributo de salida resultantes.

      Por defecto, el patrón %MACRO_INPUT%_%PIVOT_KEY_VALUE% ya está insertado. %MACRO_INPUT% se corresponde con los nombres de los atributos de origen seleccionados por el patrón que haya agregado. %PIVOT_KEY_VALUE% se corresponde con los valores seleccionados en la clave dinámica.

      Por ejemplo, si %PIVOT_KEY_VALUE% indica TELEVISION y %MACRO_INPUT% indica DISCOUNT_VALUE y DISCOUNT_RATE, en la salida, los atributos dinámicos son <pivot_name>.<expression_name>.DISCOUNT_VALUE_TELEVISION y <pivot_name>.<expression_name>.DISCOUNT_RATE_TELEVISION.

    4. Puede mantener la selección de Usar tipos de dato de atributo de origen. De lo contrario, en Tipo de datos de expresión, seleccione el tipo de datos y complete los campos correspondientes al tipo seleccionado.
  4. Si no ha seleccionado Permitir selección masiva, en Atributos de destino, utilice un patrón para los nombres de atributo de salida resultantes.

    Por defecto, el patrón %PIVOT_KEY_VALUE% ya está insertado. %PIVOT_KEY_VALUE% se corresponde con los valores seleccionados en la clave dinámica.

    Por ejemplo, si %PIVOT_KEY_VALUE% indica TELEVISION y TELEPHONE y, a continuación, en la salida, los atributos dinámicos son <pivot_name>.<expression_name>.TELEVISION y <pivot_name>.<expression_name>.TELEPHONE.

    En Tipo de datos de expresión, seleccione el tipo de datos y complete los campos correspondientes al tipo seleccionado.

  5. En la sección Creador de expresiones, haga clic dos veces o arrastre los atributos, parámetros y funciones de agregación de entrada para agregarlos al editor a fin de crear la expresión. También puede escribir manualmente la expresión y validar la expresión.

    En la siguiente tabla se muestra la lista de funciones de agregado que están disponibles para crear expresiones dinámicas.

    FunciónDescripciónEjemplo
    COUNT(value[, value]*)Devuelve el número de filas para las que una o más expresiones proporcionadas son no nulas.COUNT(expr1)
    COUNT(*)Devuelve el número total de filas recuperadas, incluidas las filas que contienen un valor nulo.COUNT(*)
    MAX(value)Devuelve el valor máximo del argumento.MAX(expr)
    MIN(value)Devuelve el valor mínimo del argumento.MIN(expr)
    SUM(numeric)Devuelve la suma calculada a partir de los valores de un grupo.SUM(expr1)

    También puede utilizar funciones de orden superior (transformación) en una expresión dinámica.

  6. Para crear una expresión dinámica, especifique el atributo o los atributos y la función de agregado.

    • Si ha seleccionado Permitir selección masiva, utilice %MACRO_INPUT% en la expresión para indicar los atributos en los que se aplicará la función.

      Por ejemplo, si ha utilizado el patrón DISCOUNT* para que coincida con los atributos de origen DISCOUNT_RATE y DISCOUNT_VALUE, puede especificar una función de agregado como SUM(numeric) para aplicar la función en todos los atributos que coincidan con el patrón. %MACRO_INPUT% sustituye el marcador de posición numeric en la función:

      SUM(%MACRO_INPUT%)
    • Si no ha seleccionado Permitir selección masiva, especifique el atributo en la función.

      Por ejemplo, la entidad de datos es PRODUCT_SALES y desea utilizar una función SUM de agregado en el atributo SALES. Puede especificar la función, como SUM(numeric), sustituyendo el marcador de posición numeric en la función por el nombre de atributo:

      SUM(PIVOT_1_1.PRODUCT_SALES.SALES)
    • Puede utilizar un parámetro de expresión para el nombre de función de agregado en la expresión dinámica. Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto.

      Por ejemplo, el parámetro de expresión P_VARCHAR tiene el tipo VARCHAR y MIN como valor por defecto. Puede especificar la función de agregado como:

      $P_VARCHAR(%MACRO_INPUT%)
      $P_VARCHAR(PIVOT_1_1.PRODUCT_SALES.SALES)
  7. En el panel Agregar expresión, seleccione Agregar.

Operador de consulta

El operador de consulta realiza una consulta y una transformación mediante una condición de consulta y datos de dos orígenes, un origen de entrada principal y un origen de entrada de consulta.

La operación de consulta utiliza la condición y un valor en la entrada principal para buscar filas en el origen de consulta. La transformación agrega atributos del origen de consulta al origen principal.

Puede especificar la acción que se debe realizar cuando la consulta de búsqueda devuelve varias filas y ninguna fila. Por ejemplo, puede especificar que la acción omita las filas no coincidentes y devuelva cualquier fila coincidente cuando haya varias filas coincidentes.

La salida resultante es una combinación de ambos orígenes de entrada en función de la condición de consulta, un valor en la entrada principal y las acciones preferidas que se deben realizar. La entrada principal determina el orden de los atributos y las filas de la salida, con los atributos de la entrada principal colocados antes de los atributos de la entrada de consulta.

Ejemplo de consulta

Considere dos entidades de datos de origen en un flujo de datos. La entidad de datos 1 (PAYMENTS) se define como la entrada principal. La entidad de datos 2 (CUSTOMERS) se define como la entrada de consulta. La condición de consulta se define de la siguiente manera:

LOOKUP_1_1.PAYMENTS.CUSTOMER_ID = LOOKUP_1_2.CUSTOMERS.CUSTOMER_ID

La salida de consulta resultante muestra cómo se combinan y transforman los datos de las dos entradas. Los atributos del origen de consulta se agregan a los atributos de origen principales, con los siguientes comportamientos:

  • Si la operación no encuentra un registro coincidente para un valor del origen de consulta, el registro se devuelve con un valor nulo insertado para los atributos de consulta. Por ejemplo, no se han encontrado registros coincidentes para los valores 103, 104 y 105 de CUSTOMER_ID. Por lo tanto, en la salida resultante, se rellena con un valor nulo en los atributos agregados CUSTOMER_ID y NAME.
  • Si la operación encuentra varios registros coincidentes para un valor del origen de consulta, se devuelven todos los registros coincidentes.
Entidad de datos 1, origen de entrada principal
PAYMENT_IDCUSTOMER_IDAMOUNT
11012500
21021110
3103500
4104400
5105150
6102450
Entidad de datos 2, origen de entrada de consulta
CUSTOMER_IDNAME
101Peter
102Paul
106Mary
102Pauline
Salida de consulta
PAYMENT_IDCUSTOMER_IDAMOUNTCUSTOMER_IDNAME
11012500101Peter
21021110102Paul
3103500nullnull
4104400nullnull
5105150nullnull
6102450102Paul
Agregación y configuración de un operador de consulta

Un operador de consulta utiliza dos orígenes de entrada en un flujo de datos.

En el siguiente procedimiento, se asume que ha agregado y configurado dos operadores de origen.

  1. Desde el panel Operadores, arrastre un operador de Consulta al lienzo.
  2. Con el operador de consulta enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. En Entrada principal, seleccione el origen que contiene un valor para hacer coincidir una o más filas en el origen de consulta. La coincidencia se basa en una condición de consulta, que debe crear en el paso 5.
    La entrada principal también determina el orden de los atributos y las filas de la salida de consulta resultante.
  4. Para Entrada de consulta, seleccione el origen al que hace referencia el origen principal para hacer coincidir una o más filas.
    Los atributos de la entrada de consulta se agregan a los atributos de entrada principal en la salida resultante.
  5. En Varias coincidencias, seleccione la acción que se va a realizar cuando se encuentren varias filas coincidentes entre el origen principal y el origen de consulta. La acción que seleccione determina las filas que se utilizarán en la salida resultante.
    • Devolver cualquier fila coincidente: acción por defecto. Selecciona cualquier fila coincidente.
    • Devolver la primera fila coincidente: selecciona la primera fila de las filas que coinciden.
    • Devolver la última fila coincidente: selecciona la última fila de las filas que coinciden.
    • Devolver error: muestra un error. No completa la operación.
    • Devolver todas las filas coincidentes: selecciona todas las filas coincidentes.
  6. En Sin coincidencia, seleccione la acción que desea realizar cuando no se encuentre ninguna fila coincidente entre el origen principal y el origen de consulta. La acción que seleccione determina cómo manejar la fila de origen principal que no tiene una fila coincidente en el origen de consulta.
    • Saltar Filas No Coincidentes: No incluye filas no coincidentes en la salida resultante.
    • Devolver filas no coincidentes: acción por defecto. Incluye filas no coincidentes en la salida resultante con valores nulos.
  7. Junto a Condición de consulta, seleccione Crear.
    1. En la sección Creador de condiciones del panel Crear condición de consulta, puede arrastrar o hacer doble clic en atributos, parámetros y funciones o arrastrarlos para agregarlos al editor a fin de crear una condición. También puede introducir la expresión de condición manualmente en el editor y validar la expresión.
      Nota

      En el editor, un elemento agregado, como una función, puede tener marcadores de posición. Para sustituir un marcador de posición por otro elemento, resalte el marcador de posición y, a continuación, haga doble clic en otro elemento de la lista.
    2. Seleccione Crear.
  8. (Opcional) Seleccione Asignar parámetros para utilizar parámetros de modo que la condición de consulta no esté vinculada al código compilado al publicar el flujo de datos. Consulte Asignación de un parámetro.
  9. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  10. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  11. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Creación de una condición de búsqueda

Utilice el Creador de condiciones para seleccionar visualmente elementos para crear una condición de consulta. También puede introducir una condición manualmente en el editor.

Una condición de consulta permite utilizar un valor en un origen de entrada principal para buscar registros de consulta en un origen de entrada de consulta y devolver las filas que coincidan. Las filas que no tienen una coincidencia se devuelven con valores nulos.

Los elementos que puede utilizar en una condición de consulta incluyen atributos, parámetros y funciones de entrada. Puede arrastrar o hacer doble clic en un elemento de la lista para agregarlo al editor a fin de crear una condición. Puede validar la condición antes de crearla.

De entrada muestra los atributos de los puertos de entrada ascendentes en dos carpetas LOOKUP separadas. Para ver los atributos de cada puerto, amplíe o reduzca la carpeta LOOKUP adecuada. Por ejemplo, LOOKUP_1_1 es la entrada principal, LOOKUP_1_2 es la entrada de consulta; las condiciones de consulta basadas en un valor del atributo de entrada principal ADDRESS_ID podrían ser:

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = '2001'
LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID

Los parámetros son los parámetros de expresión que se han agregado al flujo de datos mediante el Creador de condiciones (operadores de filtro, unión, consulta y división) o el Creador de expresiones (operadores de expresión y agregación). Un parámetro de expresión tiene un nombre, un tipo y un valor por defecto. Consulte Adición de un parámetro de expresión.

Supongamos que desea buscar clientes bancarios de un banco específico. Puede crear un parámetro VARCHAR con el nombre P_LOOK_UP y definir el valor por defecto en 2001, que es el valor bancario específico. A continuación, puede crear la condición de consulta del siguiente modo:

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID AND LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = $P_LOOK_UP

Las funciones son las funciones disponibles en Data Integration que puede utilizar en una condición. Las funciones son operaciones realizadas en argumentos transferidos a la función. Las funciones calculan, manipulan o extraen valores de datos de los argumentos.

A continuación se muestra una lista de funciones que están disponibles para su agregación al crear condiciones:

Funciones hash
FunciónDescripciónEjemplo
MD5(all data types)Calcula un total de control MD5 del tipo de dato y devuelve un valor de cadena. MD5(column_name)
SHA1(all data types)Calcula un valor hash SHA-1 del tipo de dato y devuelve un valor de cadena. SHA1(column_name)
SHA2(all data types, bitLength)Calcula un valor hash SHA-2 del tipo de dato y devuelve un valor de cadena. bitLengthes un entero. SHA2 (column_name, bitLength can be set to 0 (equivalent to 256), 256, 384, or 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcula un valor hash para expr y devuelve un valor NUMBER.

expr puede ser una expresión, una columna, un literal.

max_bucket es el valor de cubo máximo devuelto, entre 0 y 4294967295 (valor por defecto).

seed_value es un valor entre 0 (valor por defecto) y 4294967295.

Oracle aplica la función hash a la combinación de expr y seed_value para producir muchos resultados diferentes para el mismo juego de datos.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Funciones aritméticas
FunciónDescripciónEjemplo
ABS(numeric)Devuelve la potencia absoluta del valor numeric.ABS(-1)
CEIL(numeric)Devuelve el entero más pequeño que no sea mayor que el valor numericCEIL(-1,2)
FLOOR(numeric)Devuelve el entero más grande que no sea mayor que el valor numericFLOOR(-1,2)
MOD(numeric1, numeric2)Devuelve el resto después de dividir numeric1 por numeric2.MOD(8,2)
POWER(numeric1, numeric2)Eleva numeric1 a la potencia numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Devuelve numeric1 redondeado a numeric2 posiciones decimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Devuelve numeric1 truncado a numeric2 posiciones decimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convierte una expr a un número, según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato soportados:

  • 0: un dígito
  • #: un dígito, cero se muestra como ausente
  • .: marcador de posición para el separador decimal
  • ,: marcador de posición para el separador de agrupación
  • E: separa la mantisa y el exponente para formatos exponenciales
  • -: prefijo negativo por defecto
  • ¤: signo de moneda; se sustituye por el símbolo de moneda; si se duplica, se sustituye por el símbolo de moneda internacional; si está presente en un patrón, se utiliza el separador decimal monetario en lugar del separador decimal

TO_NUMBER('5467.12') returns devuelve 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') devuelve -45677.7

Funciones de fecha y hora
Función Descripción Ejemplo
CURRENT_DATE Devuelve la fecha actual. CURRENT_DATEdevuelve la fecha de hoy, como 2023-05-26
CURRENT_TIMESTAMP Devuelve la hora y la fecha actuales de la zona horaria de la sesión. CURRENT_TIMESTAMP devuelve la fecha actual y la hora actual, como 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Devuelve la fecha que es el valor number especificado de los días posteriores al valor date especificado. DATE_ADD('2017-07-30', 1) devuelve 2017-07-31
DATE_FORMAT(expr, format[, locale])

Aplica un formato expr de fecha según el valor de format y de locale opcional proporcionados. La configuración regional por defecto es en-US. Etiquetas de idioma soportadas.

Patrones de formato de fecha soportados:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') devuelve '2020-10-11'. El primer argumento es un objeto Date que representa el 11 de octubre de 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') devuelve '2018/junio/17'

DAYOFMONTH(date) Devuelve el día del mes de la fecha. DAYOFMONTH('2020-12-25') devuelve 25
DAYOFWEEK(date) Devuelve el día de la semana de la fecha. DAYOFWEEK('2020-12-25') devuelve 6 para Friday. En los Estados Unidos, el domingo se considera 1, el lunes es 2, y así sucesivamente.
DAYOFYEAR(date) Devuelve el día del año de la fecha. DAYOFYEAR('2020-12-25') devuelve 360
WEEKOFYEAR(date) Devuelve la semana del año de la fecha.

WEEKOFYEAR('2022-07-28') devuelve 30

WEEKOFYEAR('2022-07-28 13:24:30') returns 30

HOUR(datetime) Devuelve el valor de hora de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 15
LAST_DAY(date) Devuelve el último día del mes de la fecha. LAST_DAY('2020-12-25') devuelve 31
MINUTE(datetime) Devuelve el valor de minutos de la fecha y hora. HOUR('2020-12-25 15:10:30') devuelve 10
MONTH(date) Devuelve el valor de mes de la fecha. MONTH('2020-06-25') devuelve 6
QUARTER(date) Devuelve el trimestre del año en el que se encuentra la fecha. QUARTER('2020-12-25') devuelve 4
SECOND(datetime) Devuelve el segundo valor de la fecha y hora. SECOND('2020-12-25 15:10:30') devuelve 30
TO_DATE(string, format_string[, localeStr]) Analiza la expresión de cadena con la expresión format_string en una fecha. La configuración regional es opcional. El valor por defecto es en-US. Etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, las cadenas de formato sensibles a mayúsculas/minúsculas soportadas son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') devuelve el valor de fecha 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') devuelve el valor de fecha 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convierte una expr de VARCHAR a un valor de TIMESTAMP, según el valor de format_string y de localeStr opcional proporcionados.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') devuelve un objeto TIMESTAMP que representa 11am 10:10 Oct 11th, 2020
WEEK(date)

Devuelve el valor de semana de la fecha.

WEEK('2020-06-25') devuelve 4
YEAR(date) Devuelve el valor de año de la fecha. YEAR('2020-06-25') devuelve 2020
ADD_MONTHS(date_expr, number_months) Devuelve la fecha después de agregar el número de meses especificado a la fecha, registro de hora o cadena especificados con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) devuelve 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) devuelve 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Devuelve el número de meses entre start_date_expr y end_date_expr. start_date_expr y end_date_expr pueden ser una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Se devuelve un número entero si ambas fechas son el mismo día del mes o ambas son el último día de sus meses respectivos. De lo contrario, la diferencia se calcula en función de 31 días al mes.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') devuelve 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') devuelve 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') devuelve 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interpreta una fecha, un registro de hora o una cadena como hora UTC y la convierte en un registro de hora en la zona horaria especificada.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl' o un desfase de zona horaria (por ejemplo, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convierte una fecha, un registro de hora o una cadena en la zona horaria especificada en un registro de hora UTC.

Para la cadena, utilice un formato como: yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

El formato de zona horaria es un ID de zona basado en región (por ejemplo, 'área/ciudad' como 'Asia/Seúl') o un desfase de zona horaria (por ejemplo, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') devuelve 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convierte la hora o época de Unix especificada en una cadena que representa el registro de hora de ese momento en la zona horaria del sistema actual y en el formato especificado.

Nota: La hora de Unix es el número de segundos transcurridos desde el 1 de enero de 1970 00:00:00 UTC.

Si se omite fmt, el formato por defecto es yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) devuelve '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) devuelve '2021-11-18 10:07:34'

La zona horaria por defecto es PST en los ejemplos

UNIX_TIMESTAMP([time_expr[, fmt]])

Convierte la hora actual o especificada en un registro de hora de Unix en segundos.

time_expr es una fecha, un registro de hora o una cadena con un formato como yyyy-MM-dd o yyyy-MM-dd HH:mm:ss.SSS

Si no se proporciona time_expr, se convierte la hora actual.

Si time_expr es una cadena y se omite fmt, el valor por defecto es yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') devuelve 28800

La zona horaria por defecto es PST en este ejemplo

INTERVAL 'year' YEAR[(year_precision)]

Devuelve un período de tiempo en años.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '1' YEAR devuelve un intervalo de 1 año

INTERVAL '200' YEAR(3) devuelve un intervalo de 200 años

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Devuelve un período de tiempo en años y meses. Se utiliza para almacenar un período de tiempo utilizando los campos year y month.

year_precision es el número de dígitos del campo year; está comprendido entre 0 y 9. Si se suprime year_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '100-5' YEAR(3) TO MONTH devuelve un intervalo de 100 años, 5 meses. Debe especificar una precisión de año inicial 3.
INTERVAL 'month' MONTH[(month_precision)]

Devuelve un período de tiempo en meses.

month_precision es el número de dígitos del campo mes; está comprendido entre 0 y 9. Si se suprime month_precision, el valor por defecto es 2 (debe ser inferior a 100 años).

INTERVAL '200' MONTH(3) devuelve un intervalo de 200 meses. Debe especificar una precisión de mes 3.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) devuelve un intervalo de 11 días, 10 horas, 09 minutos, 08 segundos y 555 milésimas de segundo
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en días, horas y minutos.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '11 10:09' DAY TO MINUTE devuelve un intervalo de 11 días, 10 horas y 09 minutos
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Devuelve un período de tiempo en días y horas.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '100 10' DAY(3) TO HOUR devuelve un intervalo de 100 días y 10 horas
INTERVAL 'day' DAY[(day_precision)]

Devuelve un período de tiempo en días.

day_precision es el número de dígitos del campo day; está comprendido entre 0 y 9. El valor por defecto es 2.

INTERVAL '999' DAY(3) devuelve un intervalo de 999 días
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en días, horas, minutos y segundos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) devuelve un intervalo de 9 horas, 08 minutos y 76 666 666 segundos
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Devuelve un período de tiempo en horas y minutos.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '09:30' HOUR TO MINUTE devuelve un intervalo de 9 horas y 30 minutos
INTERVAL 'hour' HOUR[(hour_precision)]

Devuelve un período de tiempo en horas.

hour_precision es el número de dígitos del campo hora; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '40' HOUR devuelve un intervalo de 40 horas
INTERVAL 'minute' MINUTE[(minute_precision)]

Devuelve un período de tiempo en minutos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

INTERVAL '15' MINUTE devuelve un intervalo de 15 minutos
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en minutos y segundos.

minute_precision es el número de dígitos del campo minuto; está comprendido entre 0 y 2. El valor por defecto es 2.

fractional_seconds_precision es el número de dígitos de la parte fraccional del valor second del campo time; está comprendido entre 0 y 9.

INTERVAL '15:30' MINUTE TO SECOND devuelve un intervalo de 15 minutos y 30 segundos
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Devuelve un período de tiempo en segundos.

fractional_seconds_precision es el número de dígitos en la parte fraccional del campo second; oscila entre 0 y 9. El valor por defecto es 3.

INTERVAL '15.678' SECOND devuelve un intervalo de 15 678 segundos
Funciones analíticas
Función Descripción Ejemplo
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Devuelve el valor evaluado en la fila que es la primera fila del marco de ventana. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el primer valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionada por BANK_ID y en orden ascendente por BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado antes de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) devuelve el valor de BANK_ID de la segunda fila antes de la fila actual, particionado por BANK_ID y en orden descendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Devuelve el valor evaluado en la fila que es la última fila del marco de ventana. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) devuelve el último valor de BANK_ID en una ventana en la que las filas se calculan como la fila actual y 1 fila después de esa fila, particionado por BANK_ID y en orden ascendente por BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Devuelve el valor evaluado en la fila en un desplazamiento determinado después de la fila actual dentro de la partición. Si no existe dicha fila, se devuelve el valor por defecto. Tanto el desplazamiento como el valor por defecto se evalúan con respecto a la fila actual. Si se omite, el desplazamiento se define por defecto en 1 y por defecto en NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el valor de BANK_ID de la segunda fila después de la fila actual, particionado por BANK_ID y en orden ascendente por BANK_NAME. Si no existe dicho valor, se devuelve hello.
RANK() OVER([ partition_clause ] order_by_clause) Devuelve el rango de la fila actual con intervalos, contando desde 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el rango de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Devuelve el número único de la fila actual dentro de su partición, contando desde 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) devuelve el número de fila único de cada fila dentro del grupo de partición BANK_ID, en orden ascendente por BANK_NAME.
Funciones de Cadena
FuncionesDescripciónEjemplo
CAST(value AS type)Devuelve el valor especificado en el tipo especificado.CAST("10" AS INT) devuelve 10
CONCAT(string, string)Devuelve los valores combinados de cadenas o columnas.CONCAT('Oracle','SQL') devuelve OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Devuelve los valores combinados de cadenas o columnas utilizando el separador especificado entre las cadenas o columnas.

Se necesita un separador y debe ser una cadena.

Se debe proporcionar al menos una expresión después del separador. Por ejemplo: CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') devuelve Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) devuelve 123 MyCity 987654

Si un secundario de la función es una matriz, la matriz se simplifica:

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) devuelve 1,2,3,4,5,6,7,8,9

INITCAP(string)Devuelve la cadena con la primera letra de cada palabra en mayúsculas, mientras que el resto de letras están en minúsculas, y cada palabra está delimitada por un espacio en blanco.INITCAP('oRACLE sql') devuelve Oracle Sql
INSTR(string, substring[start_position])Devuelve el índice (basado en 1) de la primera ocurrencia de substring en string.INSTR('OracleSQL', 'SQL') devuelve 7
LOWER(string)Devuelve la cadena con todas las letras cambiadas a minúsculas.LOWER('ORACLE') devuelve oracle
LENGTH(string)Devuelve la longitud de caracteres de la cadena o el número de bytes de datos binarios. La longitud de la cadena incluye los espacios finales.LENGTH('Oracle') devuelve 6
LTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la izquierda.LTRIM(' Oracle')
NVL(expr1, epxr2)Devuelve el argumento que no es nulo.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Busca y extrae la cadena que coincide con un patrón de expresión regular de la cadena de entrada. Si se ha proporcionado el índice de grupo de captura opcional, la función extrae el grupo específico.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') devuelve https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) devuelve 22
REPLACE(string, search, replacement)Sustituye todas las ocurrencias de search por replacement.

Si no se encuentra search en la cadena, la cadena se devuelve sin cambios.

Si no se especifica replacement o es una cadena vacía, nada sustituye a search, que se elimina de string.

REPLACE('ABCabc', 'abc', 'DEF') devuelve ABCDEF
RTRIM(string)Devuelve la cadena con los espacios iniciales eliminados de la derecha.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Devuelve la subcadena que empieza en la posición. SUBSTRING('Oracle SQL' FROM 2 FOR 3) devuelve rac
Para números, TO_CHAR(expr) y para fechas TO_CHAR(expr, format[, locale])Convierte números y fechas en cadenas. Para los números, no es necesario ningún formato. Para las fechas, utilice el mismo formato que DATE_FORMAT descrito en Funciones de fecha y hora. La configuración regional por defecto es en-US. Consulte las etiquetas de idioma soportadas.

En las expresiones de pipeline, format_string debe utilizar los códigos de formato strftime. De lo contrario, los patrones de formato de fecha soportados son:

  • yy: año de dos dígitos
  • yyyy: año de cuatro dígitos
  • M: mes numérico; por ejemplo, 1 para enero
  • MM: mes numérico; por ejemplo, 01 para enero
  • MMM: mes abreviado; por ejemplo, Jan
  • MM: mes completo; por ejemplo, Enero
  • d: día numérico del mes; por ejemplo, 1 para el 1 de junio
  • dd: día numérico del mes; por ejemplo, 01 para el 1 de junio.
  • DDD: día numérico del año del 001 al 366, como 002 para el 2 de enero
  • F: día numérico de la semana de un mes, como 3 para el 3er lunes de junio.
  • EEE o E: nombre de día de la semana abreviado; por ejemplo, Dom para el domingo.
  • EEEE: nombre de día de la semana; por ejemplo, el domingo
  • HH: formato de 24 horas de 00 a 23
  • H: formato de 24 horas de 0 a 23
  • hh: formato de 12 horas de 01 a 12
  • h: formato de 12 horas de 1 a 12
  • mm: minutos de 00 a 59
  • ss: segundos de 00 a 59
  • SSS: milisegundos de 000 a 999
  • a: AM o PM
  • z: zona horaria como PDT

Ejemplo de número: TO_CHAR(123) devuelve 123

Ejemplo de fecha: TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') devuelve la cadena 2020.10.30. El primer argumento es un objeto Date que representa el 30 de octubre de 2020,

UPPER(string)Devuelve una cadena con todas las letras cambiadas a mayúsculas.UPPER('oracle') devuelve ORACLE
LPAD(str, len[, pad])Devuelve una cadena que está rellena a la izquierda con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.LPAD('ABC', 5, '*') devuelve '**ABC'
RPAD(str, len[, pad])Devuelve una cadena que está rellenada a la derecha con caracteres especificados a una longitud determinada. Si se deja el carácter pad, el valor por defecto es un espacio.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Funciones de operador (de comparación)
FunciónDescripciónEjemplo
CASE WHEN condition1 THEN result1 ELSE result2 ENDDevuelve el valor para el que se cumple una condición.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END devuelve ABC si 1> 0, de lo contrario, devuelve XYZ
ANDOperador lógico AND. Devuelve true si ambos operandos son verdaderos; de lo contrario, devuelve false.(x = 10 AND y = 20) devuelve "true" si x es igual a 10 e y es igual a 20. Si uno de las dos no es verdadero, devuelve "false"
OROperador lógico OR. Devuelve true si cualquiera de los operandos es true o ambos son true; de lo contrario, devuelve false.(x = 10 OR y = 20) devuelve "false" si x no es igual a 10 y, también, si y no es igual a 20. Si cualquiera de ellos es verdadero, devuelve "true"
NOTOperador lógico NOT.
LIKERealiza una coincidencia de patrones de cadena, si string1 coincide con el patrón de string2.
=Comprueba la igualdad. Devuelve true si expr1 es igual a expr2; de lo contrario, devuelve false.x = 10 devuelve "true" cuando el valor de x es 10; de lo contrario, devuelve "false"
!=Comprueba la desigualdad. Devuelve true si expr1 no es igual a expr2; de lo contrario, devuelve false.x != 10 devuelve "false" si el valor de x es 10; de lo contrario, devuelve "true"
>Comprueba si una expresión es mayor que. Devuelve true si expr1 es mayor que expr2.x > 10 devuelve "true" si el valor de x es mayor que 10; de lo contrario, devuelve "false"
>=Comprueba si una expresión es mayor o igual que. Devuelve true si expr1 es mayor o igual que expr2.x > =10 devuelve "true" si el valor de x es mayor o igual que 10; de lo contrario, devuelve "false"
<Comprueba si una expresión es menor que. Devuelve true si expr1 es menor que expr2.x < 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
<=Comprueba si una expresión es menor o igual que. Devuelve true si expr1 es menor o igual que expr2.x <= 10 devuelve "true" si el valor de x es menor que 10; de lo contrario, devuelve "false"
||Concatena dos cadenas.'XYZ' || 'hello' devuelve 'XYZhello'
BETWEENEvalúa un rango.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INPrueba si una expresión coincide con una lista de valores.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Funciones de identificador único
FunciónDescripciónEjemplo
NUMERIC_ID()Genera un identificador único universal que es un número de 64 bits para cada fila.NUMERIC_ID() devuelve, por ejemplo, 3458761969522180096 y 3458762008176885761
ROWID()Genera números de 64 bits monótonamente.ROWID() devuelve, por ejemplo, 0, 1, 2, etc.
UUID()Genera un identificador único universal que es una cadena de 128 bits para cada fila.UUID() devuelve, por ejemplo, 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Genera números enteros únicos que aumentan monótonamente 64 bits que no son números consecutivos. MONOTONICALLY_INCREASING_ID() returns for example, 8589934592 and 25769803776
Funciones condicionales
FunciónDescripciónEjemplo
COALESCE(value, value [, value]*)Devuelve el primer argumento no nulo, si existe; de lo contrario, devuelve null.COALESCE(NULL, 1, NULL) devuelve 1
NULLIF(value, value)Devuelve null si los dos valores son iguales entre sí; de lo contrario, devuelve el primer valor.NULLIF('ABC','XYZ') devuelve ABC
Funciones jerárquicas
FunciónDescripciónEjemplo
SCHEMA_OF_JSON(string)Analiza una cadena JSON e infiere el esquema en formato DDL.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') devuelve 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') devuelve 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analiza una columna que contiene una cadena JSON en uno de los siguientes tipos, con el esquema especificado.

  • Map, con String como tipo de clave
  • Estruc
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') devuelve una columna de tipo Struct con el esquema especificado: {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') devuelve una columna de tipo Struct con el esquema especificado: {1, 0.8}

TO_JSON(column)Convierte una columna que contiene un tipo Struct o Array of Structs, o Map o Array of Map en una cadena JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) devuelve una cadena JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crea una nueva columna de tipo Asignación. Las columnas de entrada se deben agrupar como pares clave-valor. Las columnas de clave de entrada no pueden ser nulas y todas deben tener el mismo tipo de datos. Todas las columnas de valor de entrada deben tener el mismo tipo de datos.

TO_MAP('Ename',Expression_1.attribute1) devuelve una columna de tipo Map: {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) devuelve una columna de tipo Map: {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crea una nueva columna de tipo Struct. Las columnas de entrada se deben agrupar como pares clave-valor.

TO_STRUCT('Ename',Expression_1.attribute1) devuelve {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) devuelve {100, "John"}

TO_ARRAY(column[,column]*)Crea una nueva columna como tipo Array. Todas las columnas de entrada deben tener el mismo tipo de datos.

TO_Array(Expression_1.attribute1) devuelve [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) devuelve ["John","Friend"]

Funciones de orden superior

Los operadores de flujo de datos que soportan la creación de expresiones y tipos de dato jerárquicos pueden utilizar funciones de orden superior.

Los operadores soportados son:

  • Agregar

  • Expresión

  • Filtro

  • Entrar

  • Consulta

  • Dividir

  • Girar

FunciónDescripciónEjemplo
TRANSFORM(column, lambda_function)Toma una matriz y una función anónima, y configura una nueva matriz aplicando la función a cada elemento y asignando el resultado a la matriz de salida.Para una matriz de entrada de enteros [1, 2, 3], TRANSFORM(array, x -> x + 1) devuelve una nueva matriz de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Toma una asignación y una función con 2 argumentos (clave y valor), y devuelve una asignación en la que las claves tienen el tipo del resultado de la función lambda, y los valores tienen el tipo de los valores de asignación de columna.Para una asignación de entrada con claves enteras y valores de cadena de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) devuelve una nueva asignación de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Toma un mapa y una función con 2 argumentos (clave y valor), y devuelve un mapa en el que los valores tienen el tipo del resultado de las funciones lambda, y las claves tienen el tipo de las claves del mapa de columnas. Para una asignación de entrada con claves de cadena y valores de cadena de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) devuelve una nueva asignación de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Solo el operador de expresión soporta ARRAY_SORT.

Toma una matriz y la ordena según la función dada que toma 2 argumentos.

La función debe devolver -1, 0 o 1 en función de si el primer elemento es menor que, igual a o mayor que el segundo elemento.

Si se omite la función, la matriz se ordena en orden ascendente.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

La matriz devuelta es:

[1,5,6]

Operador de función

Utilice el operador de función para llamar a Oracle Cloud Infrastructure Functions desde Data Integration.

Nota

Para estructuras de datos complejas como Map, Array y Composite (Struct), solo está soportado actualmente el formato de serialización JSON.

Antes de utilizar OCI Functions desde un flujo de datos en Data Integration, asegúrese de conocer las dependencias y de haber completado las tareas previas necesarias.

Antes de empezar

La función a la que desea llamar se debe desplegar en OCI Functions. La función se puede escribir en cualquier idioma.

Utilice la siguiente lista de comprobación de tareas para asegurarse de que tiene la información y la configuración necesarias para utilizar el operador de función con OCI Functions.

TareaRequisito
Configuración para utilizar y acceder a OCI Functions

En este tema se asume que el arrendamiento y el entorno de desarrollo ya están configurados para desplegar funciones en OCI Functions.

Consulte Preparación de funciones.

Solo las funciones desplegadas en OCI Functions se pueden utilizar con el operador de función en Data Integration.

Cree políticas para controlar la llamada y la gestión de funciones.

En este tema se asume que usted o el administrador del arrendamiento ya han creado las políticas necesarias de Oracle Cloud Infrastructure. Consulte Creating Policies to Control Access to Network and Function-Related Resources.

En un entorno de producción, puede que desee restringir los usuarios que puedan llamar a funciones en una aplicación específica o que llamen solo a una función específica.

Por ejemplo, para restringir que los usuarios llamen a funciones de un espacio de trabajo específico, introduzca las sentencias de política con el siguiente formato:

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

Para que los usuarios solo puedan llamar a una función específica en un espacio de trabajo:

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

Consulte Control de acceso para llamar y gestionar funciones.

Cree una aplicación en OCI Functions.

Una aplicación es una agrupación lógica de funciones.

En una aplicación, especifique entre una y tres subredes en las que ejecutar funciones. Las funciones que se ejecutan en una aplicación están aisladas de funciones que se ejecutan en otra aplicación.

Consulte Creación de aplicaciones (en Functions).

Despliegue una función en OCI Functions.

Para que la función de OCI Functions funcione con el operador de función Data Integration en un flujo de datos, la función no debe leer ni escribir ningún identificador con un carácter de espacio.

Al desplegar una función en OCI Functions con la CLI de Fn Project, la función se crea como una imagen de Docker y se transfiere a un registro de Docker especificado.

Consulte Creación y despliegue de funciones.

Recopile la información necesaria para utilizar la función desplegada con el operador de función.

Al agregar y configurar un operador de función en un flujo de datos de Data Integration, debe saber lo siguiente:

  • El compartimento que tiene la aplicación de OCI Functions en la que se despliega la función que desea utilizar.
  • La aplicación en OCI Functions que tiene la función desplegada
  • El nombre de la función desplegada
  • Los campos definidos en la función
Adición y configuración de un operador de función

Un operador de función permite utilizar una función desplegada en OCI Functions para procesar los datos de un origen de entrada. Están soportados los tipos de datos principales y complejos.

Especifique la unidad de entrada de la función y los atributos de entrada y salida del operador de función que leer y escribir. A continuación, asigne manualmente los atributos de origen a los atributos de entrada.

Actualmente, solo está soportado el formato de serialización JSON para estructuras de datos complejas como mapa, matriz y compuesto (estructura).

En el siguiente procedimiento se asume que ha agregado y configurado un operador de origen con la entidad de datos que desea utilizar con la función.

  1. En el panel Operadores, arrastre un operador de Función al lienzo.
  2. Con el operador de función enfocado, en el separador Detalles del panel Propiedades, introduzca un nombre en el campo Identificador o deje el nombre como está.
  3. Seleccione la función de OCI que desea utilizar para este operador. Consulte Selección de una función.
  4. Seleccione el formato de serie y defina los datos de entrada y salida de la función.
  5. Especifique los atributos de entrada y los atributos de salida para el operador y los valores de Configuración de función para la función. Consulte Adición de una propiedad de operador de función.

    Los Atributos de entrada definen la unidad de entrada para el operador de función, que es uno o más atributos de entrada para la función en la que se va a trabajar. Los atributos de entrada se asignan a los atributos de entrada desde el origen de la entidad de datos.

    Los valores de Configuración de función definen la unidad de entrada de la función, que es uno o más campos definidos en la función. Defina un campo de función con un nombre y un valor. El valor de un campo coincide con un atributo de entrada. Puede establecer parámetros para un valor de configuración de función.

    Los Atributos de salida definen la unidad de salida para el operador de función, que es uno o más atributos en los que la función escribe la salida. Agregue un atributo de salida para cada campo de función que desee en la salida. Los operadores descendentes posteriores pueden utilizar los atributos de salida.

    Nota

    No utilice un carácter de espacio en el nombre de identificador para un atributo de entrada, un atributo de salida o un campo de función. Además, no se permiten nombres como "Element", "Key" y "Value".
  6. (Opcional) En Function properties, amplíe Function configuration para revisar los valores de configuración de función. Puede cambiar o establecer parámetros para un valor.

    BATCH_SIZE es una configuración de función predefinida que representa el número de filas que una función procesa a la vez. El valor por defecto es 10,000 filas.

    En un valor de configuración de función, puede:

  7. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  8. En el separador Asignación, arrastre y suelte un atributo del origen de datos al atributo de entrada correspondiente en la función para crear una asignación manual.
  9. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    Los atributos de salida de función se agregan al juego de datos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  10. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Selección de una función

La función que desea utilizar con un operador de función se debe desplegar en una aplicación en Oracle Cloud Infrastructure Functions.

  1. En el lienzo, seleccione el operador de función.
  2. En el separador Detalles del panel Propiedades, en Función de OCI, haga clic en Seleccionar.
  3. En el panel, seleccione el compartimento que tiene la aplicación OCI Functions en la que se ha desplegado la función que desea utilizar.
  4. Seleccione la aplicación en OCI Functions que tiene la función desplegada.
  5. En la sección Función de OCI, seleccione la función.
  6. Seleccione OK (Aceptar).
Adición de una propiedad de operador de función

Después de seleccionar una función desplegada, especifique las propiedades que definen los datos de entrada para la función que se va a procesar, los campos de la configuración de la función y los datos de salida que devuelve la función.

Nota

No utilice un carácter de espacio en el nombre de identificador para un atributo de entrada, un atributo de salida o un campo de función. Además, no se permiten nombres como "Element", "Key" y "Value".
  1. En Propiedades de función, seleccione Agregar propiedad.
  2. En el panel, seleccione el tipo de propiedad que desea especificar.
    • Atributos de entrada: unidad de entrada para el operador. Especifique uno o más atributos para representar los atributos de entrada para la función que se va a procesar. Los atributos de entrada se asignan a los atributos de entrada desde el origen de la entidad de datos.
    • Configuración de función: especifique uno o más campos de función que definan la unidad de entrada de la función. Un campo tiene un nombre y un valor. El valor de un campo especifica un atributo de entrada.
    • Atributos de salida: unidad de salida para el operador. Especifique cero o más atributos para representar la salida de la función después de procesar los datos. Agregue un atributo de salida para cada campo de función que desee en la salida. Los operadores descendentes posteriores pueden utilizar los atributos de salida.
  3. Introduzca un nombre para la propiedad en el campo Identificador. No utilice un carácter de espacio en el nombre para un atributo de entrada, un atributo de salida o un campo de función.
  4. Seleccione el tipo de datos de la propiedad.
  5. Para un tipo de dato primitivo, según el Tipo y el Tipo de datos de la propiedad que está especificando, especifique los siguientes campos y otros campos aplicables.

    • L largo: para un atributo de entrada o salida, introduzca una longitud. Por ejemplo, especifique una longitud para un tipo de datos numérico o varchar.
    • Valor: para un campo de función, introduzca un valor que coincida con un atributo de entrada.
  6. Para un tipo de dato complejo Map, especifique el par clave-valor para un elemento map. Seleccione Agregar Tipo de Datos para seleccionar el Tipo de Datos de Clave y El Tipo de Datos de Valor.

    • Clave: seleccione solo entre tipos de datos primitivos.
    • Valor: seleccione entre tipos de datos primitivos y complejos.
  7. Para un Tipo de Datos Complejo Array, seleccione Agregar Tipo de Datos para especificar el Tipo de Datos Element. Puede seleccionar entre tipos de datos primitivos y complejos.

  8. Para un tipo de dato compuesto (Struct), especifique el esquema secundario o los esquemas secundarios. Para agregar un esquema secundario, seleccione el símbolo + junto al nombre del esquema principal.

    En el panel Agregar campo para un esquema secundario, introduzca el identificador y seleccione un Tipo de datos. Puede seleccionar entre tipos de datos primitivos y complejos. Seleccione Agregar para agregar el esquema secundario.

    Vuelva a seleccionar el símbolo + si desea agregar más de un esquema secundario al esquema principal.

    Para editar o suprimir un esquema secundario, utilice el menú Acciones (Acciones, menú) al final de la fila.

    No puede suprimir el elemento de esquema principal.

  9. En el panel Agregar propiedad, seleccione Agregar.
  10. Repita los pasos para agregar las propiedades que necesita para definir la entrada de función, los campos de función y la salida de función.

Operador de simplificación

Utilice el operador de simplificación para transformar los datos jerárquicos en un formato simplificado para utilizarlos con otros datos relacionales. El proceso de aplanamiento también se conoce como desnormalización o desanidamiento.

Los formatos de archivo jerárquicos que puede desnormalizar son:

  • JSON y JSON multilínea
  • Avro
  • Parquet

Actualmente, el tipo de dato jerárquico soportado que puede anular la anidación es Matriz. Solo puede seleccionar un nodo de matriz en un juego de datos jerárquico para simplificar. La estructura de datos se simplifica desde la raíz hasta el nodo de matriz seleccionado y se presenta en un formato simplificado. Si el juego de datos tiene otros nodos de matriz, tiene la opción de convertirlos en cadenas.

Puede configurar los atributos o campos que se incluirán en la salida simplificada definiendo Preferencias de proyección.

Concepto de preferencias de proyección

Las preferencias de proyección son valores para el formato, el número y el tipo de atributos proyectados que se incluirán en la salida después de ajustar los datos entrantes.

Data Integration proporciona cuatro configuraciones de preferencias de proyecto seleccionadas por defecto, lo que da como resultado una salida proyectada que tiene lo siguiente:

  • Matrices de índices
  • Todos los atributos hasta el atributo seleccionado para la simplificación
  • Valores nulos para los atributos que faltan en las matrices siguientes
  • Linaje de nombre principal en los nombres de atributo

Para comprender las preferencias de proyección que puede configurar, utilice los siguientes temas con el ejemplo de estructura de datos JSON.

Ejemplo de estructura de datos JSON
id
vehicle[]
    make
    model
    insurance{}
        company
        policy_number
    maintenance[]
        date
        description[]
        dealerdetails[]
            servicestation1[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
            servicestation2[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
Crear y proyectar índices de matriz

El valor de preferencia de proyección Crear índices de matriz de proyecto permite controlar si se deben incluir atributos de índice para matrices en la salida simplificada.

El atributo index representa el índice de una matriz. Supongamos que la matriz es ["a","b","c"], que el índice de "a" es 0, que el índice de "b" es 1 y que el índice de "c" es 2.

Por defecto, Data Integration crea un atributo con el sufijo _INDEX para el nodo de matriz en el que seleccione simplificar datos. El tipo de dato de un atributo de índice de matriz es Entero.

Los atributos de índice también se crean para los nodos de matriz principal del nodo de matriz seleccionado. La operación de simplificación afecta a todos los nodos de matriz principal de la estructura jerárquica desde la raíz hasta el nodo seleccionado. Si un nodo de matriz principal afectado tiene matrices hermanas, no se crean atributos de índice para esos nodos de matriz hermano.

En el ejemplo de estructura de datos de JSON, si selecciona la matriz dealeraddress que está en servicestation2 para la simplificación, Data Integration crea cinco atributos de índice de matriz: uno para el nodo de matriz seleccionado y cuatro para los nodos principales afectados por la operación de simplificación.

Después de la simplificación, los atributos de la estructura simplificada son los siguientes:

id
vehicle_INDEX
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_INDEX
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername

No se ha creado un atributo de índice de matriz para servicestation1 porque el nodo de matriz es hermano del nodo principal afectado servicestation2. Del mismo modo, no se crea un atributo de índice para description porque el nodo de matriz es hermano del nodo principal afectado dealerdetails.

Si no selecciona la preferencia de proyección Crear e índices de matriz de proyecto, los atributos de la estructura simplificada son los siguientes:

id
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername
Retener todos los atributos hasta la matriz simplificada

La configuración de la preferencia de proyección Retener todos los atributos hasta la matriz simplificada permite controlar si se deben incluir en la salida simplificada los atributos que no forman parte de las matrices simplificadas.

Por defecto, Data Integration muestra todos los atributos de la raíz a la matriz seleccionada, incluidas las matrices hermanas que no se ven afectadas por la simplificación.

En el ejemplo de estructura de datos JSON, si no selecciona la preferencia de proyección Retener todos los atributos hasta la matriz simplificada, los atributos de la estructura simplificada son los siguientes:

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
Producir una única fila con valores nulos para la matriz principal que falta

La configuración de la preferencia de proyección Producir una sola fila con valores nulos para la matriz principal que falta permite controlar si se omitirán las filas que no tienen los atributos afectados por la simplificación.

El efecto de la configuración Producir una sola fila con valores nulos para la matriz principal que falta solo se ve en el separador Datos. Por defecto, Data Integration muestra valores nulos para los atributos que faltan en las matrices siguientes.

Por ejemplo, la siguiente es una salida proyectada con valores nulos:

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
|Company3|Bellevue|null |true |[...]|0 |4 |123.34 |null |null |null |
|Company4|Kirkland|null |null |null |null |null |null |null |null |null |

Si no selecciona la opción, se omiten las filas y la salida prevista es:

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
Retener linaje de nombre del elemento principal en los nombres de atributo

El valor de preferencia de proyección Retener linaje de nombre principal en nombres de atributo permite controlar si se deben incluir los nombres principales en los nombres de atributo secundarios.

Por defecto, Data Integration crea nombres de nodo secundario con sus nombres de nodo principal.

En el ejemplo de estructura de datos JSON, los atributos con nombres principales en la estructura simplificada son los siguientes (suponiendo que las matrices hermanas no afectadas por la simplificación se excluyen en la salida):

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact

Si no selecciona la preferencia de proyección Retener linaje de nombre principal en nombres de atributo, los atributos son los siguientes:

id
vehicle_INDEX
maintenance_INDEX
dealerdetails_INDEX
servicestation2_INDEX
dealeraddress_INDEX
city
state
contact
Adición y configuración de un operador de simplificación

En el siguiente procedimiento se asume que ha agregado un operador de origen y configurado el operador en un origen de Object Storage con tipos de dato complejos, como un archivo JSON.

  1. En el panel Operadores, arrastre el operador Flatten al lienzo y conecte el operador al operador de origen.

    El separador Detalles del operador de simplificación se muestra en el panel Propiedades.

    La tabla de atributos muestra la estructura de datos de árbol de los datos entrantes. De forma predeterminada, se expanden todos los nodos. Cada nodo tiene un tipo de dato y una ruta de acceso como VARCHAR y parent1.parent2.node1. Por ejemplo: vehicle.insurance.company

    En el campo de búsqueda, solo puede buscar nodos de nivel superior.

  2. Con el operador de simplificación enfocado, utilice el separador Detalles para realizar lo siguiente:
    1. Introduzca un nombre para el operador en el campo Identificador o deje el nombre como está.
    2. En Preferencias de proyección, revise la configuración. Por defecto, se seleccionan todos los valores. Desactive la casilla de control de los valores que no desea configurar para esta operación.
    3. En las tablas de atributos, active la casilla de control situada junto al nodo de matriz al que desea simplificar la estructura de datos. A continuación, seleccione Flatten data to selected attribute.

      Solo puede seleccionar una casilla de control.

      Después de la simplificación, la ruta del atributo complejo seleccionado y simplificado se muestra encima de la tabla, junto a Redondear por. Por ejemplo: FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    4. (Opcional) Si procede en la estructura simplificada, seleccione el icono de acciones junto a un nodo de matriz en la tabla y seleccione Convertir matriz en cadena. Consulte también Conversiones de matriz.
    5. (Opcional) Para revertir la simplificación seleccionada en el paso c, seleccione Borrar que está junto a la ruta Ajustar por. Consulte Eliminación de una ruta de simplificación.
  3. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, si aplica un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar), los atributos se filtran por el patrón de nombre *_CODE y el tipo numérico o varchar.
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  4. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y las reglas que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  5. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar el fallo del flujo de datos.
Conversión de otras matrices en cadenas

Después de seleccionar un atributo complejo para la simplificación, puede haber otros nodos de matriz en la estructura simplificada.

Con los otros nodos de matriz en una estructura simplificada, puede convertir una matriz de tipos de dato primitivos o una matriz de estructuras en una cadena. Actualmente, el formato soportado de una cadena de conversión es JSON.

En función de los datos, el tipo de dato de una cadena de conversión es VARCHAR o BLOB. Puede cambiar una cadena de conversión de VARCHAR a CLOB y, a la inversa, de CLOB a VARCHAR.

En el siguiente procedimiento se asume que ha agregado un operador de simplificación y seleccionado un atributo complejo para crear una estructura de datos simplificada.

  1. Con el operador de simplificación enfocado en el lienzo de flujo de datos, vaya al separador Detalles del panel Propiedades.
  2. En la tabla de atributos, verifique que la estructura de datos esté simplificada.

    Junto a Aplanar por está la ruta del atributo complejo que ha seleccionado para la simplificación. Por ejemplo: FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    Se muestra el icono de acciones (tres puntos) para los nodos de matriz que están disponibles en la estructura simplificada para la conversión.

  3. Cuando corresponda, seleccione el icono de acciones junto a un nodo de matriz y, a continuación, seleccione Convertir matriz en cadena.

    Ejemplos de atributos convertidos:

    Tipo de matriz Atributo convertido

    Matriz de cadenas

    "goods": [
        "laptop",
        "charger",
        "chair"
      ]

    ["laptop","charger","chair"]

    Matriz de números

    "numbers": [
        234,
        455,
        98
      ]

    [234,455,98] 
Visualización, cambio y eliminación de conversiones de matriz

El siguiente procedimiento supone que ha seleccionado un nodo de matriz para convertirlo en una cadena, si procede.

  1. Con el operador de simplificación enfocado en el lienzo de flujo de datos, vaya al separador Detalles del panel Propiedades.
  2. Seleccione Ver conversiones de matriz.
  3. En el panel Conversiones de matriz que aparece, revise los atributos complejos que se han convertido en una cadena.
  4. Para cambiar el tipo de dato de una cadena de conversión, seleccione una acción de actualización en el icono de acciones. En función del tipo de dato, seleccione Actualizar Tipo de Dato a CLOB o Actualizar Tipo de Dato a VARCHAR.
  5. Realice una de las siguientes acciones para eliminar conversiones:
    • Para eliminar una sola conversión, seleccione la casilla de control situada junto a una conversión y, a continuación, seleccione Eliminar. También puede seleccionar Eliminar en el icono de acciones de una conversión.
    • Para eliminar todas las conversiones, seleccione la casilla de control situada en la parte superior de la lista (junto a la cabecera Conversiones de matriz) y, a continuación, seleccione Eliminar.

    Se elimina una conversión seleccionada y el atributo convertido anteriormente se revierte a su estructura de jerarquía y tipo de dato originales.

Eliminación de una ruta de simplificación

Al configurar un operador de simplificación en un flujo de datos, puede revertir una simplificación borrando la ruta de acceso Planificar por.

  1. Con el operador de simplificación enfocado en el lienzo de flujo de datos, vaya al separador Detalles del panel Propiedades.
  2. Encima de la tabla de atributos, junto a la ruta Aplicar plano por, seleccione Borrar.
  3. En el cuadro de diálogo Borrar simplificación que aparece, confirme el nombre del atributo complejo que desea anular la simplificación y, a continuación, seleccione Borrar para continuar.

    Al eliminar el aplanamiento, la estructura de datos original antes de que se restaure el aplanamiento:

    • Si se crea, se eliminan los atributos con el sufijo _INDEX.
    • Si los nombres principales se han eliminado de los nombres de nodos secundarios, se restaura la jerarquía de linaje de nombre principal-secundario.
    • Si algunas matrices se convirtieron en cadenas, las conversiones de matriz se eliminan y los atributos convertidos anteriormente se revierten a su estructura de jerarquía original y tipo de dato.

Operador de Función de Tabla

Utilice el operador de función de tabla para agregar funciones de tabla que devuelvan datos en forma de tablas.

Actualmente, solo se pueden seleccionar funciones de tabla incorporadas de una lista. Las funciones de tabla que proporciona el operador de función de tabla incluyen cubo, análisis de tabulación cruzada, elementos frecuentes, acumulación y SQL de Spark. Cada función de tabla incorporada tiene campos predefinidos que se configuran para devolver la recopilación de datos deseada. La lógica compleja se puede consolidar en una sola función que devuelve juegos de datos específicos. La parametrización de los campos permite flexibilidad en el ajuste de la lógica.

Un operador de función de tabla se puede conectar con cualquier otro operador dentro de un flujo de datos. Por lo tanto, se puede utilizar un operador de función de tabla como origen de datos, operador de flujo medio y destino.

Adición de un operador de función de tabla
  1. Desde el panel Operadores, arrastre y suelte un operador de función de tabla en el lienzo.
  2. Con el operador enfocado, en el separador Details (Detalles) del panel Properties (Propiedades), introduzca un nombre en el campo Identifier (Identificador) o deje el nombre como está.
  3. En Tipo de transformación, seleccione la función de tabla que desea utilizar para este operador.
  4. En Configurar parámetros, realice los siguientes pasos:
    1. Configure la lógica principal de la función de tabla especificando los detalles de la función. Solo se pueden configurar claves de entrada de función específicas y sus valores, como se muestra en el separador Detalles de la función de tabla seleccionada.
    2. (Opcional) Para parametrizar un par clave-valor de entrada, seleccione Asignar parámetro para utilizar parámetros. Consulte Asignación de un parámetro.
    3. Después de completar los campos de entrada, seleccione Calcular unidad de salida.

      Data Integration genera los campos de salida mediante los detalles de la lógica principal y materializa las unidades de entrada/salida. Utilice el separador Atributos para ver las unidades de entrada/salida.

  5. En el separador Atributos, seleccione ver los atributos de entrada o los atributos de salida. Los atributos de entrada se enlazan al operador del lado izquierdo. Los atributos de salida se enlazan al operador de la derecha y pasan al siguiente operador.

    Puede seleccionar atributos individuales o utilizar los iconos de filtro para filtrar la lista de atributos. A continuación, aplique reglas de exclusión masiva a los atributos seleccionados o filtrados.

    • Seleccione el icono del filtro de la columna Nombre para filtrar los atributos por un patrón de nombre. En el campo de filtro, introduzca una expresión regular simple. Puede utilizar los comodines ? y * en el patrón de expresión regular.
    • Seleccione el icono del filtro de la columna Tipo para filtrar los atributos por un tipo de dato. Utilice el menú para seleccionar el tipo que desea utilizar como filtro.
      Nota

      Solo puede aplicar un filtro de patrón de nombre, pero puede aplicar varios filtros de tipo, a la vez. Por ejemplo, para filtrar por el patrón de nombre *_CODE y por el tipo numérico o varchar, aplique un filtro de patrón de nombre (*_CODE) y dos filtros de tipo (numérico, varchar).
    • Utilice el menú Acciones para aplicar reglas de exclusión masiva a los atributos seleccionados o a los atributos filtrados. Seleccione Exportar por selección o Exportar por filtro aplicado.
    • Seleccione Ver Reglas para abrir el panel Reglas. Puede ver y gestionar las reglas que se han aplicado a la entidad de datos. Por defecto, la primera regla del panel Reglas lo incluye todo.

    Un tipo complejo se muestra como ARRAY (data type), COMPOSITE o MAP (key type, value type). Consulte Tipos de datos jerárquicos para saber lo que está soportado para los tipos complejos.

  6. En el separador Datos, visualice un ejemplo de los datos basado en la configuración del operador y cualquier regla que haya aplicado en el separador Atributos.

    El perfil de datos no aparece para atributos de datos complejos. En los atributos de datos complejos, para ver la jerarquía de la estructura de datos en una estructura simplificada, seleccione los datos complejos que se muestran. Por ejemplo, [...] o {…}.

    Puede aplicar transformaciones a atributos individuales o realizar una transformación masiva en un grupo de atributos.

    En el caso de entidades con tipos de datos jerárquicos, consulte Tipos de datos jerárquicos para saber lo que está soportado.

  7. En el separador Validación, compruebe si hay advertencias o errores que puedan provocar un fallo en el flujo de datos.
Descripción de Funciones de Tabla

A continuación, se muestra una lista de las funciones de tabla incorporadas soportadas por el operador de función de tabla.

Caché

Persiste y almacena en caché un juego de datos según el almacenamiento de memoria proporcionado level.

Devuelve un nuevo conjunto de datos en el conjunto de datos distribuido resistente (RDD) almacenado en caché.

Parámetro Descripción
level

Almacenamiento de memoria para utilizar:

MEMORY_ONLY: almacene como objetos Java deserializados en JVM. Si la memoria es insuficiente, algunas particiones RDD no se almacenan en caché, sino que se vuelven a calcular cuando es necesario.

MEMORY_AND_DISK: almacene como objetos Java deserializados en JVM. Si la memoria es insuficiente, algunas particiones RDD se almacenan en el disco y se leen desde el disco cuando es necesario.

MEMORY_ONLY_SER: almacenar como objetos Java deserializados.

MEMORY_AND_DISK_SER: almacenar como objetos Java deserializados. Las particiones que no encajan se almacenan en el disco.

DISK_ONLY: almacena las particiones RDD solo en el disco.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc: es similar a otros niveles, pero cada partición se replica en dos nodos de cluster.

Análisis de tabulación cruzada

Calcula una tabla de frecuencia o una tabla de contingencia por pares a partir de valores distintos de las dos columnas proporcionadas.

El número de valores distintos para cada columna debe ser menor que 1e4.

Devuelve un marco de datos que contiene la tabla de contingencia. En la tabla de contingencias:

  • El nombre de la primera columna es col1_col2, donde col1 es la primera columna y col2 es la segunda columna antes de la transformación. La primera columna de cada fila son los valores distintos de col1.
  • Los demás nombres de columna son los valores distintos de col2.
  • Los recuentos se devuelven como tipo long.
  • A los pares sin incidencias se les asigna cero como recuento.
  • El número máximo de pares distintos de cero es 1e6.
  • Los elementos nulos se sustituyen por null.
Parámetro Descripción
col1

Nombre de la primera columna. Consulte la nota que aparece después de esta tabla para ver las limitaciones.

Los elementos distintos de col1 convierten el primer elemento de cada fila en el marco de datos devuelto.

col2

Nombre de la segunda columna. Consulte la nota que aparece después de esta tabla para ver las limitaciones.

Distintos elementos de co2 convierten los nombres de columna en el marco de datos devuelto.

Nota

Solo se permiten los siguientes caracteres en un nombre de columna:

  • letras minúsculas y mayúsculas a-z A-Z
  • Números 0-9
  • guión bajo _
Ejemplo

Supongamos que col1 es age y col2 es salary.

Antes de la transformación:

+---+------+
|age|salary|
+---+------+
|1  |100   |
|1  |200   |
|2  |100   |
|2  |100   |
|2  |300   |
|3  |200   |
|3  |300   |
+---+------+

Después de la transformación:

+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2         |2  |0  |1  |
|1         |1  |1  |0  |
|3         |0  |1  |1  |
+----------+---+---+---+
Cubo

Genera un cubo multidimensional de todas las combinaciones posibles mediante la lista de columnas proporcionada y los cálculos en las expresiones de función de agregación proporcionadas.

Las expresiones admiten las siguientes funciones de agregación:

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Devuelve un marco de datos después de la transformación del cubo.

Parámetro Descripción
cubeColumns

Lista de columnas, separadas por comas, por las que se genera el cubo multidimensional.

aggExpressions

Expresiones de función de agregación que se van a realizar en las columnas.

Por ejemplo: salary -> avg, age -> max

Ejemplo

Antes de la transformación:

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Si cubeColumns es department, region y aggExpressions essalary -> avg, age -> max (cálculo del salario medio y la edad máxima), el cubo de transformación posterior es:

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|null      |local  |1125.0           |32      |
|Art       |foreign|2500.0           |30      |
|null      |foreign|1700.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Generación de Datos

Genera datos sintéticos mediante el contenido y el formato de archivo proporcionados. Los formatos de archivo admitidos son:

  • CSV
  • JSON

Devuelve una entidad de datos. El origen de datos sintético se puede utilizar en pruebas unitarias de pipeline en las que no se utilizan ni se mueven datos reales.

Parámetro Descripción
format

Tipo de archivo. Los valores soportados son:

  • CSV
  • JSON
content

Contenido del archivo para el formato especificado.

Ejemplo

Ejemplo de contenido CSV:

co1,co2,co3
1,B,3
A,2,C

Resultado de generación de datos:

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Desduplicación

Busca duplicados en la lista de columnas o columnas proporcionadas y devuelve un nuevo juego de datos con las filas duplicadas eliminadas.

Parámetro Descripción
columns

Un nombre de columna o una lista separada por comas de nombres de columna.

Ejemplo

Antes de la transformación:

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|1  |3  |
|2  |4  |
+---+---+

Si columns es a, el juego de datos después de la transformación es:

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|2  |4  |
+---+---+
Artículos frecuentes

Busca elementos frecuentes en la columna o la lista de columnas proporcionadas con la frecuencia mínima especificada.

El algoritmo de recuento de elementos frecuentes propuesto por Karl et al. se utiliza para encontrar elementos frecuentes. Los falsos positivos son posibles.

Devuelve un marco de datos con una matriz de elementos frecuentes para cada columna.

Parámetro Descripción
freqItems

Nombre de columna o lista separada por comas de nombres de columna para los que desea buscar elementos frecuentes.

support

Frecuencia mínima para considerar frecuente un ítem.

El valor debe ser mayor que 1e-4 (valor decimal de 0.0001).

Por ejemplo, 0.6 representa el 60 %. Es decir, un elemento que aparece en al menos el 60% de las filas es un elemento frecuente.

Ejemplo

Antes de la transformación:

+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
|      1|         apple|
|      2|        banana|
|      3|         apple|
|      4|        orange|
|      5|        banana|
|      6|        banana|
|      7|         apple|
+-------+--------------+

Si freqItems es favorite_fruit y support es 0.6, el marco de datos devuelto después de la transformación es:

+------------------------+
|favorite_fruit_freqItems|
+------------------------+
|                [banana]|
+------------------------+
Na Drop

Elimina las filas que contienen valores nulos o NaN en la lista de columnas o columnas proporcionadas.

Devuelve un marco de datos que excluye las filas.

Parámetro Descripción
how

Cómo determinar si se va a borrar una fila. Los valores soportados son:

  • any: borre la fila que contiene cualquier valor nulo o NaN en el cols especificado.
  • all: borre la fila solo si cada cols especificado es nulo o NaN para esa fila.

El parámetro how se ignora si se especifica el parámetro minNonNulls.

cols

Un nombre de columna o una lista separada por comas de nombres de columna.

minNonNulls

Número mínimo de valores no nulos y no NaN que puede contener una fila.

Borra las filas que contienen menos del mínimo especificado.

El parámetro minNonNulls sustituye el parámetro how.

Ejemplo

Antes de la transformación:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si how es any y cols es name, el marco de datos devuelto después de la transformación es:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Al utilizar el parámetro how con el valor all, se borra una fila solo si todos sus valores son nulos. Por ejemplo, antes de la transformación:

+----+--------+----+
|  id|    name| age|
+----+--------+----+
|   1|John Doe|  30|
|   2|    null|null|
|   3|Jane Doe|  25|
|   4|Jake Doe|null|
|null|    null|null|
+----+--------+----+

Después de la transformación:

+---+--------+----+
| id|    name| age|
+---+--------+----+
|  1|John Doe|  30|
|  2|    null|null|
|  3|Jane Doe|  25|
|  4|Jake Doe|null|
+---+--------+----+
Relleno de Na

Sustituye los valores nulos y devuelve un marco de datos mediante los valores sustituidos.

Parámetro Descripción
replacement

Asignación de clave-valor que se utilizará para sustituir valores nulos. La clave es un nombre de columna. El valor es un valor de sustitución.

La clave apunta al valor de sustitución. Por ejemplo: name -> Tom significa sustituir valores nulos en la columna name por Tom.

Se convierte un valor de sustitución en el tipo de dato de la columna. Un valor de sustitución debe ser del siguiente tipo:

  • Entero
  • Long
  • Float
  • Doble
  • Cadena
  • Booleano
Ejemplo

Antes de la transformación:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si la asignación de clave-valor es la siguiente:

id -> 3

name -> unknown

age -> 10

Después de la transformación:

+---+-------+---+
|id |name   |age|
+---+-------+---+
|1  |Alice  |25 |
|2  |unknown|28 |
|3  |Bob    |10 |
|4  |Charlie|30 |
+---+-------+---+
Sustitución Na

Sustituye un valor por otro valor en la columna o columnas proporcionadas haciendo coincidir las claves en la clave y la asignación de valores de sustitución proporcionadas.

Devuelve un nuevo marco de datos que contiene la transformación sustituida.

Parámetro Descripción
cols

Nombre de columna o lista separada por comas de nombres de columna sobre los que aplicar valores de sustitución.

Si cols es *, la sustitución se aplica en todas las columnas String, Numeric o Boolean.

replacement

Asignación de clave-valor de sustitución que se va a utilizar. La clave es un valor para sustituir. El valor es el valor de sustitución. El valor de asignación puede tener valores nulos.

La clave apunta al valor de sustitución. Por ejemplo: Alice -> Tom significa sustituir Alice por Tom.

El par de clave y valor de sustitución debe tener el mismo tipo. Solo se admiten los siguientes tipos:

  • Booleano
  • Doble
  • Cadena
Ejemplo

Antes de la transformación:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si cols es name y replacement es Alice -> Tom, el marco de datos después de la transformación es:

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Tom    |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+
Volver a Particionar

Divide un juego de datos por las columnas proporcionadas en el número especificado de particiones.

Devuelve un nuevo juego de datos particionado hash. Se devuelve el número exacto de partición especificado.

Parámetro Descripción
partitionColumns

Nombre de columna o lista separada por comas de nombres de columna por los que se particiona el juego de datos.

numberOfPartitions

Número de particiones que se van a crear.

Acumulación

Genera una acumulación multidimensional de posibles combinaciones mediante la lista de columnas proporcionada y los cálculos en las expresiones de función de agregación proporcionadas.

Las expresiones admiten las siguientes funciones de agregación:

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Devuelve un marco de datos después de la transformación de acumulación.

Parámetro Descripción
rollupColumns

Lista de columnas, separadas por comas, por la que se genera la acumulación multidimensional.

aggExpressions

Expresiones de función de agregación que se van a realizar en las columnas.

Por ejemplo: salary -> avg, age -> max

Ejemplo

Antes de la transformación:

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Si rollupColumns es department, region y aggExpressions es salary -> avg, age -> max (cálculo del salario medio y la edad máxima), la acumulación después de la transformación es:

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|Art       |foreign|2500.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Spark SQL

Ejecuta consultas SQL de Spark en datos entrantes, creando primero vistas temporales con los nombres de tabla proporcionados.

Parámetro Descripción
SQL

Sentencia SQL o script que se va a ejecutar.

Ejemplo: select * from table1

tableName

Nombre de tabla o lista separada por comas de nombres de tabla por los que Spark crea tablas temporales.

Ejemplo: table1, table2

Muestreo Estratificado

Genera una muestra estratificada sin sustitución basada en la fracción de muestreo dada para cada estrato.

Devuelve un nuevo marco de datos que representa la muestra estratificada.

Parámetro Descripción
strata_col

Columna que define los estratos.

fractions

Fracción de muestreo para cada estrato, de 0.0 a 1.0.

Por ejemplo, 0.1 devuelve el 10% de las filas y 1.0 devuelve el 100% de las filas.

Si no se especifica una fracción, se asume cero.

sample_size

Si no se especifica fractions, especifique una parte del juego de datos que se va a muestrear, de 0.0 a 1.0.

seed

Utilice cualquier número aleatorio en seed para devolver el mismo ejemplo cada vez, manteniendo el resultado consistente.

Ejemplo

Antes de la transformación:

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  2|    1|
|  2|    1|
|  2|    3|
|  3|    2|
|  3|    3|
+---+-----+

Si strata_col es key y fractions es el siguiente:

1 -> 1.0, 3 -> 0.5

Después de la transformación:

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  3|    2|
+---+-----+
Resumen

Calcula las estadísticas proporcionadas para columnas numéricas y de cadena.

Si no se proporcionan estadísticas, se calculan todas las siguientes opciones:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • cuartiles aproximados (percentiles al 25 %, 50 % y 75 %)
  • MAX
Parámetro Descripción
statistics

Lista separada por comas de estadísticas.

Los valores soportados son:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • uno o más percentiles aproximados arbitrarios especificados como porcentaje (por ejemplo, 75%)
  • MAX

Ejemplo: count, mean, stddev, min, 27%, 41%, 95%, max

Ejemplo

Antes de la transformación:

+----------+------+-----------------+--------+
|department|gender|avg(salary)      |max(age)|
+----------+------+-----------------+--------+
|Eng       |female|900.0            |21      |
|Sport     |null  |1250.0           |28      |
|Art       |null  |2000.0           |32      |
|Eng       |null  |933.3333333333334|21      |
|Art       |female|2500.0           |30      |
|Eng       |male  |1000.0           |10      |
|null      |null  |1412.5           |32      |
|Sport     |male  |1250.0           |28      |
|Art       |male  |1000.0           |32      |
+----------+------+-----------------+--------+

Supongamos que statistics es count, mean, stddev, min, 27%, 41%, 95%, max.

Después de la transformación:

+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary          |age             |
+-------+----------+-----+------+----------------+----------------+
|count  |8         |8    |8     |8               |8               |
|mean   |null      |null |null  |1412.5          |20.5            |
|stddev |null      |null |null  |749.166203188585|8.76682056718072|
|min    |Art       |A    |female|800             |10              |
|27%    |null      |null |null  |1000            |13              |
|41%    |null      |null |null  |1000            |19              |
|95%    |null      |null |null  |3000            |32              |
|max    |Sport     |E    |male  |3000            |32              |
+-------+----------+-----+------+----------------+----------------+