Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set serveroutput on;
- DROP TYPE student;
- DROP TABLE studenti_tema6;
- CREATE table studenti_tema6 of student;
- CREATE OR REPLACE TYPE student AS OBJECT (
- nume varchar2(10),
- prenume varchar2(10),
- grupa varchar2(4),
- varsta NUMBER,
- member procedure afiseaza_foaie_matricola,
- member procedure afiseaza_nume_prenume,
- order member function stud_cmp(in_stud student) RETURN NUMBER,
- constructor function student(first_name VARCHAR2) RETURN SELF AS RESULT,
- constructor function student(first_name VARCHAR2, last_name VARCHAR2, in_data_nastere NUMBER) RETURN SELF AS RESULT
- );
- /
- CREATE TYPE BODY student AS
- constructor function student(first_name VARCHAR2) RETURN SELF AS RESULT AS
- BEGIN
- SELF.nume := first_name;
- DBMS_OUTPUT.PUT_LINE(SELF.nume);
- RETURN;
- END;
- constructor function student(first_name VARCHAR2, last_name VARCHAR2, in_data_nastere NUMBER) RETURN SELF AS RESULT AS
- BEGIN
- SELF.nume := first_name;
- SELF.prenume := last_name;
- self.varsta := in_data_nastere;
- DBMS_OUTPUT.PUT_LINE(SELF.nume || SELF.prenume);
- RETURN;
- END;
- member procedure afiseaza_foaie_matricola IS
- BEGIN
- DBMS_OUTPUT.PUT_LINE('afisam foaie matricola pentru ' || self.nume);
- END afiseaza_foaie_matricola;
- member procedure afiseaza_nume_prenume IS
- BEGIN
- DBMS_OUTPUT.PUT_LINE(self.nume || ' ' || self.prenume);
- END afiseaza_nume_prenume;
- order member function stud_cmp(in_stud student) RETURN NUMBER IS
- BEGIN
- if self.varsta > in_stud.varsta THEN RETURN 1;
- elsif self.varsta = in_stud.varsta THEN RETURN 0;
- elsif self.varsta < in_stud.varsta THEN RETURN -1;
- end if;
- END stud_cmp;
- END;
- /
- DECLARE
- s1 student;
- s2 student;
- s3 student;
- BEGIN
- s1 := student('Ion', 'Antonescu', 17);
- s2 := student('Anton', 'Dan', 21);
- s3 := student('Cristoiu', 'Ionut', 20);
- s1.afiseaza_foaie_matricola;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement