viernes, 23 de agosto de 2019

Oracle 19c - Mejoras a JSON_OBJECT


Oracle 19c introduce algunas mejoras significativas en el manejo de datos en formato JSON. En este artículo en particular voy a explicar las mejoras introducidas a la función JSON_OBJECT.

En los siguientes ejemplos, vamos a utilizar una tabla llamada Producto que podemos crear con el script incluido a continuación:


CREATE TABLE Producto ( 
      ID NUMBER(10) NOT NULL, 
      Marca VARCHAR(100) NOT NULL, 
      Nombre VARCHAR(100) NOT NULL, 
      Precio NUMBER(10,4) NOT NULL, 
      CONSTRAINT PK_Producto PRIMARY KEY (ID)
);
--
INSERT INTO Producto VALUES (1, 'Sony', 'TV LED 40"', 20000);
INSERT INTO Producto VALUES (2, 'Philips', 'TV LED 32"', 15000 );
INSERT INTO Producto VALUES (3, 'Motorola', 'Moto Z4', 25000);
--
COMMIT;


 Uso de Comodín

Es posible utilizar el comodín “*” para referenciar todas las columnas en un solo paso. Se puede usar el mismo para toda la consulta o para una tabla en particular usando un alias:


SELECT JSON_OBJECT(t.*) AS json_data
FROM <Tabla> t;

Ejemplo

SELECT JSON_OBJECT(p.*) AS json_data
FROM Producto p;


Lista de Columnas

Es posible utilizar una lista de columnas separadas por coma. Los nombres de los elementos mantienen las mayúsculas / minúsculas definidas en la lista:

SELECT JSON_OBJECT(columnaA, ColumnaB) AS json_data
FROM <Tabla> t;

Ejemplo

SELECT JSON_OBJECT(Nombre, Precio) AS json_data
FROM Producto p;


Sintaxis KEY ... VALUE simplificada

No es necesario utilizar la sintaxis ‘KEY … VALUE’, pudiéndose usar directamente “:” para definir los pares de datos:

SELECT JSON_OBJECT('ID' : id,
                   'Nombre' : name) AS json_data
FROM persons;

Ejemplo


SELECT JSON_OBJECT('ID':id, 
                   'Producto':nombre) AS json_data_new
FROM Producto p;




No hay comentarios.:

Publicar un comentario