You are on page 1of 2

Create or replace Type house_t As Object ( Lnqth Number, width Number, height Number, Member Function square_foot Return

Number, Member Function volume Return Number); Create or replace Type Body house_t AS Member Function square_foot Return Number is Begin Return lngth * width; End; Member Function volume Return Number is Begin Return lngth * width * height; End; End; Create Table houses (house varchar2(20), house_dimensions house_t); Insert into houses Values ('Townhouse',house_t(85,70,35)); Declare area Number ; volume Number; housetemp house_t; Begin Select house_dimensions Into housetemp From houses Where house = ' Townbouse ' ; area:=housetemp.squar_foot(); volume:=housetemp.volume(); dbms_output.put_line('Square feet = ' ||To_char(area)); dbms=output.put=line('Volume =' ||TO_Char(volume)); END; SQL> Create or replace type person as object ( 2 name varchar2 (25), 3 age number (3), 4 member function write_person (name in varchar2, age in number )return person) ; 5 / Type created. SQL> create or replace type body person 2 as 3 member function write_person(name in varchar2, age in number ) return person 4 is 5 student_1 person:= self; 6 7 begin 8 student_1.name:=name; 9 student_1.age:=age; 10 return student_1;

11 end; 12 end; 13 / Type body created. SQL> create table studentlnfo (person_s person, studentNo number(7)), Table created. SQL> insert into studentlnfo values (person( 'John Smith', 30), 1234567) ; 1 row created. SQL> declare student_1 person; 2 begin 3 student_1:=person('John Smith', 32) ; 4 student_1:=student_1.write_person('Shirley', 33); 5 DBMS_OUTPUT.PUT_LINE('name: ' || student_1.name) ; 6 DBMS_OUTPUT.PUT_LINE('age:' || student_1.age) ; 7 end; 8 / PL/SQL procedure successfully completed. SQL> select * from studentlnfo; PERSON_S (NAME, AGE) STUDENTNO ----------------------------------------------------------------PERSON( 'John Smith', 30) 1234567 SQL> set serveroutput on; SQL> declare student_1 person; 2 begin 3 student_1:=person('John Smith', 32); 4 student_1:=student_l.write_person('Shirley', 33); 5 DBMS_OUTPUT.PUT_LINE('name: ' || student_l.name); 6 DBMS_OUTPUT.PUT_LINE('age: ' || student_1.age) ; 7 end; 8 / name: Shirley age:33

You might also like