es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

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

Cómo almacenar una matriz JSON en la base de datos Oracle

Estoy utilizando IICS para hacer ETL. Mi fuente es un archivo JSON. Estoy utilizando el analizador de jerarquía para analizar ese JSON y cargar la salida en la base de datos. Todo va bien excepto una cosa. Dentro de ese archivo JSON de origen hay un campo que es un array como este:

label: [Rojo, Verde, Azul, Amarillo].

Ahora, en la tabla en la que estoy cargando los datos, hay una columna de etiqueta de tipo varchar2 (510 byte). Cuando se carga la data en la tabla ejecutando el trabajo, la columna de etiqueta en la tabla solo obtiene un valor que es el último índice en el array de origen. En el caso anterior, solo obtiene el valor ‘Amarillo’ mientras que otros 3 valores se pierden.

¿Alguien puede decirme cómo almacenar todo el array en la columna de la tabla? PD: No tenemos flexibilidad para usar ningún lenguaje de programación en IICS, todo lo que necesitamos hacer es utilizar transformaciones de IICS. Por favor, háganme saber si se necesita información adicional.

¡Gracias de antemano!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para almacenar todo el array en la columna de la tabla, se debe utilizar la transformación “Joiner” en IICS.

    En primer lugar, utilice la transformación “Hierarchy Parser” para analizar el archivo JSON y extraer el campo “label”. Asegúrese de configurar el tipo de salida del campo “label” como “Array”.

    Luego, cree una nueva transformación “Joiner” y conéctela a la transformación “Hierarchy Parser”. En la pestaña “Join Condition”, seleccione el campo “label” como condición de unión.

    En la pestaña “Output”, seleccione el campo “label” de la transformación “Hierarchy Parser” como valor de salida para la columna “label” en la tabla de destino.

    Por último, ejecute el trabajo para cargar los datos en la tabla de destino. La transformación “Joiner” debe concatenar todos los valores en el array “label” y almacenarlos en la columna de la tabla de destino.

    Nota: Si la columna de la tabla de destino tiene un tamaño limitado (como varchar2 (510 byte) en este caso), algunos valores en el array pueden ser truncados o perdidos. Para evitar esto, se puede aumentar el tamaño de la columna de destino o dividir los valores en varias columnas en la tabla de destino.

Comments are closed.