LP3PLSQL
LP3PLSQL
--LP3
--Ex1
CREATE TYPE OBJ_ADRESA AS OBJECT(
STRADA VARCHAR2(50),
NUMAR VARCHAR2(3),
COD_POSTAL VARCHAR2(6),
ORAS VARCHAR2(10),
ID_TARA CHAR(2),
MEMBER FUNCTION ADRESA_COMPLETA RETURN VARCHAR2 );
--Ex 2
SET SERVEROUTPUT ON
DECLARE
variabila OBJ_ADRESA;
BEGIN
variabila := OBJ_ADRESA('Eremia Grigorescu', '19','100', 'Ploiesti','01');
DBMS_OUTPUT.PUT_LINE(variabila.strada || ' ' || variabila.numar);
END;
-- Ex 3
--ex urmator
declare
v_adresa obj_adresa;
v_adresa_2 obj_adresa;
begin
v_adresa := obj_adresa(
'Str. Lunga',
'Brasov',
'10',
'012531'
);
v_adresa_2 := obj_adresa(
'Bd. Unirii',
'Bucuresti',
'10',
'012531'
);
dbms_output.put_line(v_adresa.adresa_completa());
dbms_output.put_line(v_adresa_2.adresa_completa());
end;
/
ultimul exercitiu
—urmatorul
CREATE TABLE UTILIZATOR OF obj_utilizator;
——
implementarea metodelor
end;
end;
——
Apel metode
-- sa se afiseze nr de utilizatori
select obj_utilizator.nr_utilizat()
from dual;
declare
begin
dbms_output.put_line(obj_utilizator.nr_utilizat());
end;
/
——
--PENTRU CURSANT
CREATE OR REPLACE TYPE obj_cursant UNDER obj_utilizator(
an varchar2(20),
grupa varchar2(20),
member procedure afis_an_gr
);
——
——
create or replace type body obj_cursant is
member procedure afis_an_gr is
begin
dbms_output.put_line(an||' '||grupa);
end;
end;
——
declare
cursor c is select * from cursant;
cursant obj_cursant;
begin
for variabila in c loop
cursant := obj_cursant(variabila.id_user, variabila.cnp,
variabila.nume, variabila.email, variabila.date_login,
variabila.adresa, variabila.an, variabila.grupa);
cursant.afis_an_gr;
end loop;
end;
——