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