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