JSON_OBJECT Enhancements in Oracle Database 19c
The SQL/JSON function JSON_OBJECT got a whole lot easier to use in Oracle 19c.
oracle 19cconfigurationintermediate
by OracleDba
16 views
The SQL/JSON function JSON_OBJECT got a whole lot easier to use in Oracle 19c.
12345678910111213
-- DROP TABLE DEPT PURGE;
CREATE TABLE DEPT (
DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);
INSERT INTO DEPT VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES (30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES (40,'OPERATIONS','BOSTON');
COMMIT;1234567891011121314151617181920212223
SELECT JSON_OBJECT(*) AS json_data
FROM dept;
JSON_DATA
-------------------------------------------------------
{"DEPTNO":10,"DNAME":"ACCOUNTING","LOC":"NEW YORK"}
{"DEPTNO":20,"DNAME":"RESEARCH","LOC":"DALLAS"}
{"DEPTNO":30,"DNAME":"SALES","LOC":"CHICAGO"}
{"DEPTNO":40,"DNAME":"OPERATIONS","LOC":"BOSTON"}
SQL>
SELECT JSON_OBJECT(a.*) AS json_data
FROM dept a;
JSON_DATA
-------------------------------------------------------
{"DEPTNO":10,"DNAME":"ACCOUNTING","LOC":"NEW YORK"}
{"DEPTNO":20,"DNAME":"RESEARCH","LOC":"DALLAS"}
{"DEPTNO":30,"DNAME":"SALES","LOC":"CHICAGO"}
{"DEPTNO":40,"DNAME":"OPERATIONS","LOC":"BOSTON"}
SQL>1234567891011121314151617181920212223
SELECT JSON_OBJECT(deptno, dname) AS json_data
FROM dept;
JSON_DATA
-------------------------------------------------------
{"deptno":10,"dname":"ACCOUNTING"}
{"deptno":20,"dname":"RESEARCH"}
{"deptno":30,"dname":"SALES"}
{"deptno":40,"dname":"OPERATIONS"}
SQL>
SELECT JSON_OBJECT(Deptno, Dname) AS json_data
FROM dept;
JSON_DATA
-------------------------------------------------------
{"Deptno":10,"Dname":"ACCOUNTING"}
{"Deptno":20,"Dname":"RESEARCH"}
{"Deptno":30,"Dname":"SALES"}
{"Deptno":40,"Dname":"OPERATIONS"}
SQL>123456789101112131415161718192021
SELECT JSON_OBJECT(KEY 'deptno' VALUE deptno,
KEY 'dname' VALUE dname) AS json_data
FROM dept;
SELECT JSON_OBJECT('deptno' VALUE deptno,
'dname' VALUE dname) AS json_data
FROM dept;
SELECT JSON_OBJECT('deptno' : deptno,
'dname' : dname) AS json_data
FROM dept;
JSON_DATA
-------------------------------------------------------
{"deptno":10,"dname":"ACCOUNTING"}
{"deptno":20,"dname":"RESEARCH"}
{"deptno":30,"dname":"SALES"}
{"deptno":40,"dname":"OPERATIONS"}
SQL>12345678910111213141516171819202122232425262728293031
WITH converted_data AS (
SELECT deptno AS "deptnoCol",
dname AS "dnameCol"
FROM dept
)
SELECT JSON_OBJECT(a.*) AS json_data
FROM converted_data a;
JSON_DATA
-------------------------------------------------------
{"deptnoCol":10,"dnameCol":"ACCOUNTING"}
{"deptnoCol":20,"dnameCol":"RESEARCH"}
{"deptnoCol":30,"dnameCol":"SALES"}
{"deptnoCol":40,"dnameCol":"OPERATIONS"}
SQL>
SELECT JSON_OBJECT(a.*) AS json_data
FROM (SELECT deptno AS "deptnoCol",
dname AS "dnameCol"
FROM dept) a;
JSON_DATA
-------------------------------------------------------
{"deptnoCol":10,"dnameCol":"ACCOUNTING"}
{"deptnoCol":20,"dnameCol":"RESEARCH"}
{"deptnoCol":30,"dnameCol":"SALES"}
{"deptnoCol":40,"dnameCol":"OPERATIONS"}
SQL>Please to add comments
No comments yet. Be the first to comment!