Skip to content

Commit fa8401d

Browse files
committed
feat: added json duality script
1 parent 566247c commit fa8401d

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

json-dual.sql

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
drop table if exists emp purge;
2+
drop table if exists dept purge;
3+
drop view if exists department_dv;
4+
5+
6+
create table dept (
7+
deptno number(2) constraint pk_dept primary key,
8+
dname varchar2(14),
9+
loc varchar2(13)
10+
) ;
11+
12+
create table emp (
13+
empno number(4) constraint pk_emp primary key,
14+
ename varchar2(10),
15+
job varchar2(9),
16+
mgr number(4),
17+
hiredate date,
18+
sal number(7,2),
19+
comm number(7,2),
20+
deptno number(2) constraint fk_deptno references dept
21+
);
22+
23+
create index emp_dept_fk_i on emp(deptno);
24+
25+
insert into dept values (10,'ACCOUNTING','NEW YORK');
26+
insert into dept values (20,'RESEARCH','DALLAS');
27+
insert into dept values (30,'SALES','CHICAGO');
28+
insert into dept values (40,'OPERATIONS','BOSTON');
29+
30+
insert into emp values (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,null,20);
31+
insert into emp values (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
32+
insert into emp values (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
33+
insert into emp values (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,null,20);
34+
insert into emp values (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
35+
insert into emp values (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,null,30);
36+
insert into emp values (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,null,10);
37+
insert into emp values (7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87','dd-mm-rr')-85,3000,null,20);
38+
insert into emp values (7839,'KING','PRESIDENT',null,to_date('17-11-1981','dd-mm-yyyy'),5000,null,10);
39+
insert into emp values (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
40+
insert into emp values (7876,'ADAMS','CLERK',7788,to_date('13-JUL-87', 'dd-mm-rr')-51,1100,null,20);
41+
insert into emp values (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,null,30);
42+
insert into emp values (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,null,20);
43+
insert into emp values (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,null,10);
44+
commit;
45+
46+
create or replace json relational duality view department_dv as
47+
select json {
48+
'_id' : d.deptno,
49+
'departmentName' : d.dname,
50+
'location' : d.loc,
51+
'employees' :
52+
[ select json {'employeeNumber' : e.empno,
53+
'employeeName' : e.ename,
54+
'job' : e.job,
55+
'salary' : e.sal}
56+
from emp e with insert update delete
57+
where d.deptno = e.deptno ]}
58+
from dept d with insert update delete;
59+
commit;
60+
exit;

0 commit comments

Comments
 (0)