1)
create or replace TYPE Publisher_typ as OBJECT (
idPublisher number,
Name varchar2(30),
Address varchar2(100),
Phone varchar2(20),
Map member function get_idPublisher RETURN NUMBER);
/
create or replace TYPE body Publisher_typ as
Map member function get_idPublisher RETURN NUMBER is
BEGIN
RETURN idPublisher;
end;
end;
/
2)
create table BOOK(
ISBN varchar2(10),
Title varchar2(50),
Author varchar2(100),
publisher Publisher_typ);
3)
INSERT into book values('1234567', 'ORDB', 'Evelyn', Publisher_typ(1155314047, 'Valen', 'Kalasan', '1234-08911'));
SELECT * FROM book;
INSERT into book values('115314047', 'BDRO', 'Valen', Publisher_typ(0112, 'Eka', 'Kalasan', '1234-08119'));
4)
create or replace TYPE Person as object(
nama varchar2(20),
tglLahir date,
jenisKelamin VARCHAR2(20),
Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Person as
Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN nama;
end;
end;
/
create or replace TYPE Staff under Person(
stafNo varchar2(20),
Jabatan varchar2(30),
gaji VARCHAR2(50),
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Staff as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'Jabatan:' || Jabatan;
end;
end;
/
create or replace TYPE Client under Person(
ClientNo varchar2(20),
maxDate Number,
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Client as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'ClientNO:' || ClientNo;
end;
end;
/
create or replace TYPE Manager under Staff(
Bonus NUMBER,
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
/
create or replace TYPE body Manager as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'Jabatan:' || Jabatan || 'Bonus:' || Bonus;
end;
end;
/
5) create table person_obj_table of Person;
create or replace TYPE Publisher_typ as OBJECT (
idPublisher number,
Name varchar2(30),
Address varchar2(100),
Phone varchar2(20),
Map member function get_idPublisher RETURN NUMBER);
/
create or replace TYPE body Publisher_typ as
Map member function get_idPublisher RETURN NUMBER is
BEGIN
RETURN idPublisher;
end;
end;
/
2)
create table BOOK(
ISBN varchar2(10),
Title varchar2(50),
Author varchar2(100),
publisher Publisher_typ);
3)
INSERT into book values('1234567', 'ORDB', 'Evelyn', Publisher_typ(1155314047, 'Valen', 'Kalasan', '1234-08911'));
SELECT * FROM book;
INSERT into book values('115314047', 'BDRO', 'Valen', Publisher_typ(0112, 'Eka', 'Kalasan', '1234-08119'));
4)
create or replace TYPE Person as object(
nama varchar2(20),
tglLahir date,
jenisKelamin VARCHAR2(20),
Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Person as
Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN nama;
end;
end;
/
create or replace TYPE Staff under Person(
stafNo varchar2(20),
Jabatan varchar2(30),
gaji VARCHAR2(50),
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Staff as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'Jabatan:' || Jabatan;
end;
end;
/
create or replace TYPE Client under Person(
ClientNo varchar2(20),
maxDate Number,
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
NOT FINAL;
/
create or replace TYPE body Client as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'ClientNO:' || ClientNo;
end;
end;
/
create or replace TYPE Manager under Staff(
Bonus NUMBER,
OVERRIDING Member FUNCTION show RETURN VARCHAR2)
/
create or replace TYPE body Manager as
OVERRIDING Member FUNCTION show RETURN VARCHAR2 is
BEGIN
RETURN (self as Person).show || 'Jabatan:' || Jabatan || 'Bonus:' || Bonus;
end;
end;
/
5) create table person_obj_table of Person;
6) INSERT into person_obj_table values(Staff('Beni', '25-apr-1992', 'Laki', '115314005', 'Programmer',1000));
select * FROM person_obj_table;
7) INSERT into person_obj_table values(Manager('Anggit', '29-May-1993', 'Laki', '200','basisData', 500, 400));
8) INSERT into person_obj_table values(Client('Valen', '15-Jun-1993', 'Laki', '2001', 30000));
9) SELECT p.show() from person_obj_table p;
Tidak ada komentar:
Posting Komentar