Last active
March 2, 2020 10:35
-
-
Save PrabhashwaraL/bd5d260902f29e392ff976e0c6ed0dfa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
create type dept_t | |
/ | |
create type emp_t as object( | |
empno char(6), | |
firstname varchar2(12), | |
lastname varchar2(15), | |
workdept ref dept_t, | |
sex char(1), | |
birthday date, | |
salary number(8,2) | |
) | |
/ | |
create type dept_t as object( | |
deptno char(3), | |
deptname varchar2(36), | |
mgrno ref emp_t, | |
admrdept ref dept_t | |
) | |
/ | |
create table oremp of emp_t( | |
constraint pk_oremp primary key(empno), | |
constraint nn_oremp empno not null, | |
constraint nn2_oremp firstname not null, | |
constraint nn3_oremp lastname not null, | |
constraint chk_oremp check (sex='M' or sex='m' or sex='F' or sex='f') | |
) | |
/ | |
create table ordept of dept_t( | |
constraint pk_ordept primary key(deptno), | |
constraint nn_ordept deptno not null, | |
constraint nn_ordept deptname not null, | |
constraint fk_ordept foreign key(mgrno) references oremp, | |
constraint fk2_ordept foreign key(admrdept) references ordept | |
) | |
/ | |
alter table oremp | |
add constraint fk_oremp foreign key(workdept) references ordept | |
/ | |
insert into oremp values( | |
emp_t('000010', 'christine', 'hass', null, 'F', '31-AUG-1953', 72750) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000020, 'michael', 'thompson', null, 'M', '02-FEB-1968', 61250) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000030, 'sally', 'kwan', null, 'F', '11-MAY-1971', 58250) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000060, 'irving', 'stern', null, 'M', '07-JUL-1965', 55555) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000070, 'eva', 'pulaski', null, 'F', '26-MAY-1973', 56170) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000050, 'jhon', 'geyer', null, 'M', '15-SEP-1955', 60175) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000090, 'eileen', 'henderson', null, 'F', '15-MAY-1961', 49750) | |
) | |
/ | |
insert into oremp values( | |
emp_t(000100, 'theodore', 'spenser', null, 'M', '18-DEC-1976', 46150) | |
) | |
/ | |
insert into ordept values( | |
dept_t('A00', 'spiffy computer service div.', null, null) | |
) | |
/ | |
insert into ordept values( | |
dept_t('B01', 'planning', null, null) | |
) | |
/ | |
insert into ordept values( | |
dept_t('C01', 'information center', null, null) | |
) | |
/ | |
insert into ordept values( | |
dept_t('D01', 'development center', null, null) | |
) | |
/ | |
------------------------------------------------------------------------------ | |
insert into ordept values( | |
dept_t('d01', development center, null, (select ref(d) from ordept d where d.admrdept='C01') | |
) | |
/ | |
------------------------------------------------------------------------------ | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno = 'A00') | |
where empno = 000010; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='B01') | |
where empno = 000020; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='C01') | |
where empno = 000030; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='D01') | |
where empno = 000060; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='D01') | |
where empno = 000070; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='B01') | |
where empno = 000050; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='B01') | |
where empno = 000090; | |
update oremp | |
set workdept = (select ref(a) from ordept a where deptno='B01') | |
where empno = 000100; | |
update ordept | |
set mgrno = (select ref(a) from oremp a where a.empno=000010 ) | |
where deptno = 'A00'; | |
update ordept | |
set mgrno = (select ref(a) from oremp a where a.empno=000020 ) | |
where deptno = 'B01'; | |
update ordept | |
set mgrno = (select ref(a) from oremp a where a.empno=000030 ) | |
where deptno = 'C01'; | |
update ordept | |
set mgrno = (select ref(a) from oremp a where a.empno=000060 ) | |
where deptno = 'D01'; | |
update ordept | |
set admrdept = (select ref(a) from ordept a where a.deptno = 'A00') | |
where deptno = 'A00'; | |
update ordept | |
set admrdept = (select ref(a) from ordept a where a.deptno = 'A00') | |
where deptno = 'B01'; | |
update ordept | |
set admrdept = (select ref(a) from ordept a where a.deptno = 'A00') | |
where deptno = 'C01'; | |
update ordept | |
set admrdept = (select ref(a) from ordept a where a.deptno = 'C01') | |
where deptno = 'D01'; | |
select d.deptname, d.mgrno.lastname | |
from ordept d; | |
select e.empno, e.lastname, e.workdept.deptname | |
from oremp e; | |
select d.deptno, d.deptname, d.admrdept.deptname | |
from ordept d; | |
select d.deptno, d.deptname, d.admrdept.deptname, d.mgrno.lastname | |
from ordept d; | |
select e.empno, e.firstname, e.lastname, e.salary, e.workdept.mgrno.lastname, e.workdept.mgrno.salary | |
from oremp e; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment