Selasa, 20 Mei 2014

Program Basis Data Relasional Object

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;

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