Sample tables from Oracle
https://oracle-base.com/articles/misc/apex_json-package-generate-and-parse-json-documents-in-oracle
CREATE TABLE DEPT ( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, DNAME VARCHAR2(14), LOC VARCHAR2(13) ) ; CREATE TABLE EMP ( EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT ); 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'); INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20); INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30); INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30); INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20); INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30); INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30); INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10); INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87','dd-mm-rr')-85,3000,NULL,20); INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10); INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30); INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,to_date('13-JUL-87', 'dd-mm-rr')-51,1100,NULL,20); INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30); INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20); INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10); COMMIT;Sample block to generated JSON manually
SET SERVEROUTPUT ON DECLARE l_deptno dept.deptno%TYPE := 10; l_dept_row dept%ROWTYPE; BEGIN APEX_JSON.initialize_clob_output; APEX_JSON.open_object; -- { SELECT d.* INTO l_dept_row FROM dept d WHERE d.deptno = l_deptno; APEX_JSON.open_object('department'); -- department { APEX_JSON.write('department_number', l_dept_row.deptno); APEX_JSON.write('department_name', l_dept_row.dname); APEX_JSON.open_array('employees'); -- employees: [ FOR cur_rec IN (SELECT * FROM emp e WHERE e.deptno = l_deptno) LOOP APEX_JSON.open_object; -- { APEX_JSON.write('employee_number', cur_rec.empno); APEX_JSON.write('employee_name', cur_rec.ename); APEX_JSON.close_object; -- } employee END LOOP; APEX_JSON.close_array; -- ] employees APEX_JSON.close_object; -- } department APEX_JSON.open_object('metadata'); -- metadata { APEX_JSON.write('published_date', TO_CHAR(SYSDATE, 'DD-MON-YYYY')); APEX_JSON.write('publisher', 'oracle-base.com'); APEX_JSON.close_object; -- } metadata APEX_JSON.close_object; -- } DBMS_OUTPUT.put_line(APEX_JSON.get_clob_output); APEX_JSON.free_output; END; /OUTPUT:
{ "department": { "department_number": 10, "department_name": "ACCOUNTING", "employees": [ { "employee_number": 7782, "employee_name": "CLARK" }, { "employee_number": 7839, "employee_name": "KING" }, { "employee_number": 7934, "employee_name": "MILLER" } ] }, "metadata": { "published_date": "04-APR-2016", "publisher": "oracle-base.com" } }References:
https://oracle-base.com/articles/misc/apex_json-package-generate-and-parse-json-documents-in-oracle
No comments:
Post a Comment
Please do not add any spam links or abusive comments.