Sunteți pe pagina 1din 77

A.

-Proiect SGBD-
Fabrica de Cosmetice
’’DreamLAND’’
Ianuarie 2022

Student: Filip Adriana-Ioana, grupa 1072 CSIE

Profesor coordonator: – Iuliana Botha

B. Descriere problema
Tema proiectului este reprezentata de dezvoltarea unei noi fabrici de cosmetice, iar aceasta tine evidenta stocurilor de produse precum si
a vanzarilor efectuate. In plus programul ofera rapoarte cu vanzarile pe anumite perioade.
Am ales sa abordez aceasta tema, intrucat din totdeauna, femeile au visat să devină și mai frumoase. Pentru aceasta, a fost necesară dezvoltarea de
noi tehnici care să aducă profit. Astăzi, vânzarea de produse cosmetice este dezvoltată destul de larg. Astfel, aceasta este una dintre cele mai profitabile
afaceri. La urma urmei, o femeie este capabilă să își nege singură multe dorințe, dar nu și cea de achiziționare a produselor de înfrumusețare.
Pentru inceput, m-am gandit sa imi deschid propria fabrica de cosmetice cu numele “DreamLAND”. Stiu ca pe piața romaneasca există o
concurență destul de mare între producătorii de produse cosmetice. De aceea, puțini oameni consideră această afacere promițătoare pentru ei înșiși. Cu
toate acestea, în ciuda scării mari a pieței, simt ca pot găsi o anumită nișă și să încep să produc propriile produse cosmetice cu o investiție inițială mică.
Deci…De unde să încep? Un plan de afaceri este compilat în prealabil. Producția de produse cosmetice, precum și toate etapele activităților
pregătitoare ar trebui descrise în acest document. În primul rând, trebuie studiată cererea consumatorilor. Acest lucru va permite producția de produse
cosmetice adaptate dorințelor lor. Pentru începători, cum sunt si eu, lansarea și vânzarea produselor care includ numai ingrediente naturale pot fi de
interes deosebit. Este imposibil să se producă astfel de produse cosmetice la scară industrială, deoarece substanțele naturale nu pot fi păstrate mult timp.
Pentru a preveni stricarea, se adaugă emulsifianți și conservanți la produsele finite. Producția de produse cosmetice constând numai din ingrediente
naturale este la îndemâna micilor antreprenori. Acestea pot garanta calitatea înaltă a produselor lor prin dezvoltarea propriilor rețete și eliberarea de
bunuri la comandă.
Cosmeticele naturale nu conțin aditivi chimici nocivi.Le produc pe baza de extracte de plante medicinale. Zerul, uleiurile naturale și alte
ingrediente naturale sunt utilizate în aceste produse. Produsele care se vor vinde vor fi disponibile atat pentru femei cat si pentru barbate, iar acestea vor
fi adaptate pentru fiecare persoana in parte, in functie de tipul tenului, pielii, parului.
Imi voi creea propria mea baza de date care sa stocheze informatiile de gestionare a fabricii “DreamLand”.
Pentru aceasta am folosit urmatoarele tabele: PRODUSE, COMENZI, CLIENTI, ANGAJATI, FUNCTII, DEPARTAMENTE, LOCATII,
TRANSPORT, MATERII_PRIME, COMPONENTA_PRODUSE.
-FILIP_PRODUSE cu structura: id_produs(number( 5)), denumire_produs(varchar2(50)), categorie(varchar2(20)),
utilizare(varchar2(50)), pret(number(4)), dimensiune(varchar2(6)),data_expirare(timestamp with local time
zone(6)),id_componenta_produs(number(5)), id_materie_prima(number(5)); Cheia primara o reprezinta id_produs, iar foreign key este
id_componenta_produs si id_materie_prima;
-FILIP_COMENZI cu structura:id_comanda(number(12)), id_produs(number(5), id_client(number(6), id_angajat(number(6)),
data(timestamp with local time zone(6)), suma_de_achitat(number(10)), stare_comanda(varchar2(60)), modalitate_plata(varchar2(50)); Cheia
primara o reprezinta id_comanda, iar foreign key este id_produs, id_client si id_angajat;
-FILIP_CLIENTI cu structura: id_client(number(6)), nume_client(varchar2(50)), prenume_client(varchar2(50)),
telefon_client(varchar2(15)), email_client(varchar2(30)), adresa_client(varchar2(100)); Cheia primara este id_client.
-FILIP_ANGAJATI cu structura: id_angajat(number(6)) ,nume(varchar2(20)),prenume(varchar2(20)),telefon (varchar2(20)), email(varchar2(30)),
id_functie(number(6)), id_departament(number(6)), data_angajare(timestamp with local time zone(6)). Cheia primara este id_angajat, iar foreign key
este id_functie si id_departament;
-FILIP_FUNCTII cu structura id_functie(number(6)), denumire_functie(varchar2(20)), salariu(number(8)). Cheia primara este id_functie.
-FILIP_DEPARTAMENTE cu structura: id_departament(number(6)), denumire_departament(varchar2(20)). Cheia primara este id_departament.
-FILIP_LOCATII cu structura id_locatie(number(5)), oras(varchar2(30)), cod_postal(varchar2(10)).Cheia primara este id_locatie;
-FILIP_TRANSPORT cu structura id_transport(number(5)), id_angajat(number(6Q)), tip_vehicul(varchar2(20)), id_locatie(number(5)),
id_comanda(number(12)); Cheia primara este id_transport, iar foreign key este reprezentat de id_angajat, id_locatie si id_comanda.
-FILIP_COMPONENTA_PRODUSE cu structura id_componenta_produs(number(5)), id_materie_prima(number(5)),
componenta_produs(varchar2(1000)). Cheia primara este id_componenta_produs, iar foreign key este id_materie_prima.
-FILIP_MATERII _PRIME cu structura id_materie_prima(number(5)), cantitate(varchar2(20)), materie_prima(varchar2(200)). Cheia primara este
id_materie_prima.
Un client poate solicita mai multe tipuri de produse intr-o singura comanda.Un client poate face mai multe comenzi, la date diferite, sau in aceeasi
zi, poate adauga alte produse pe o comanda existenta. Produsele de pe o comanda se livreaza in acelasi timp.
Fiecare produs are o component diferita si o materie prima care se prelucreaza.
Fiecare comanda contine unul sau mai multe produse care se vor livra la un anumit client, de un anumit angajat la fabricii care se incadreaza in
departamentul de transporturi.
Fiecare angajat are o functie bine definita si apartine unui anumit department.
Pentru rubrica de transport este alocat un anumit angajat care se ocupa de partea de transport, primind astfel comanda clientului si adresa locatiei
unde trebuie trimise produsele comandate.
Fiind la inceput de drum nu am o gama prea larga de produse, nu am nici un numar mare de angajati, acestia fiind 11 la numar.
C. Schema conceptuala:
D. Crearea tabelelor si adaugarea datelor–, legături între tabele
şi restricţii de integritate. CREATE, ALTER, DROP asupra
tabelelor :
CHEILE PRIMARE+ CHEILE EXTERNE= ASIGURA LEGATURILE INTRE TABELE

CREAREA TABELEI FILIP_PRODUSE:


create table FILIP_PRODUSE(
    ID_PRODUS number(5),
    DENUMIRE_PRODUS varchar2(50) ,
    CATEGORIE varchar2(20),
    UTILIZARE varchar2(50),
    PRET number(4),
DATA_EXPIRARE TIMESTAMP(6) WITH LOCAL TIME ZONE,
    DIMENSIUNE varchar2(6),
    ID_COMPONENTA_PRODUS NUMBER(5),
    ID_MATERIE_PRIMA NUMBER(5)
   
);

Cheia primara:

alter table FILIP_PRODUSE 
add constraint ID_PRODUS_pk primary key(ID_PRODUS);
CREAREA TABELEI FILIP_COMPONENTA_PRODUSE
create table FILIP_COMPONENTA_PRODUSE(
    ID_COMPONENTA_PRODUS number(5),
    ID_MATERIE_PRIMA number(5),
COMPONENTA_PRODUS varchar2(1000)
);

Cheia primara:

alter table FILIP_COMPONENTA_PRODUSE
add constraint ID_COMPONENTA_PRODUS_pk primary key(ID_COMPONENTA_PRODUS);

CREAREA TABELEI FILIP_MATERII_PRIME:


create table FILIP_MATERII_PRIME(
    ID_MATERIE_PRIMA number(5),
    CANTITATE varchar2(20),
MATERIE_PRIMA varchar2(200)
);

Cheia primara:

alter table FILIP_MATERII_PRIME
add constraint ID_MATERIE_PRIMA_pk primary key(ID_MATERIE_PRIMA);
CREAREA TABELEI FILIP_FUNCTII:
create table FILIP_FUNCTII(
    ID_FUNCTIE number(6),
    DENUMIRE_FUNCTIE varchar2(20),
    SALARIU number(8)
);

Cheia primara:

alter table FILIP_FUNCTII
add constraint ID_FUNCTIE_pk primary key(ID_FUNCTIE);

CREAREA TABELEI FILIP_DEPARTAMENTE:


create table FILIP_DEPARTAMENTE(
    ID_DEPARTAMENT number(6),
    DENUMIRE_DEPARTAMENT varchar2(20)
    
);

Cheia primara:

alter table FILIP_DEPARTAMENTE
add constraint ID_DEPARTAMENT_pk primary key(ID_DEPARTAMENT);

CREAREA TABELEI FILIP_LOCATII:


create table FILIP_LOCATII(
    ID_LOCATIE number(5),
    ORAS varchar2(30),
    COD_POSTAL varchar2(10)
);

Cheia primara:
alter table FILIP_LOCATII
add constraint ID_LOCATIE_pk primary key(ID_LOCATIE);

CREAREA TABELEI FILIP_CLIENTI:


create table FILIP_CLIENTI(
    ID_CLIENT number(6),
    NUME_CLIENT varchar2(50),
    PRENUME_CLIENT varchar2(50),
    TELEFON_CLIENT varchar2(15),
    EMAIL_CLIENT varchar2(30),
    ADRESA_CLIENT varchar2(40)
   
);

Cheia primara:

alter table FILIP_CLIENTI
add constraint ID_CLIENT_pk primary key(ID_CLIENT);

CREAREA TABELEI FILIP_TRANSPORT:


create table FILIP_TRANSPORT(
    ID_TRANSPORT number(5),
    ID_ANGAJAT number(6),
    TIP_VEHICUL varchar2(20),
    ID_LOCATIE number(5),
    ID_COMANDA number(12)
   
);

Cheia primara:

alter table FILIP_TRANSPORT
add constraint ID_TRANSPORT_pk primary key(ID_TRANSPORT);

CREAREA TABELEI FILIP_COMENZI:


create table FILIP_COMENZI(
    ID_COMANDA number(12),
    ID_PRODUS number(5),
    ID_CLIENT number(6),
    ID_ANGAJAT number(6),
    DATA TIMESTAMP(6) WITH LOCAL TIME ZONE,
    SUMA_DE_ACHITAT number(10),
STARE_COMANDA varchar2(60),
MODALITATE_PLATA varchar2(50)
   
);
Cheia primara:

alter table FILIP_COMENZI
add constraint ID_COMANDA_pk primary key(ID_COMANDA);

CREAREA TABELEI FILIP_ANGAJATI:


create table FILIP_ANGAJATI(
    ID_ANGAJAT number(6),
    NUME varchar2(20),
    PRENUME varchar2(20),
    TELEFON varchar(20),
    EMAIL varchar(30),
    ID_FUNCTIE number(6),
    ID_DEPARTAMENT number (6),
DATA_ANGAJARE TIMESTAMP(6) WITH LOCAL TIME ZONE
   
);

Cheia primara:

alter table FILIP_ANGAJATI
add constraint ID_ANGAJAT_pk primary key(ID_ANGAJAT);

TOATE FOREIGN KEYS PE CARE LE-AM FOLOSIT IN TOATA SCHEMA


CONCEPTUALA:
alter table FILIP_Produse
add constraint Prod_Comp_fk foreign key(ID_PRODUS)
references FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS);

alter table FILIP_Produse
add constraint Prod_Mat_fk foreign key(ID_PRODUS)
references FILIP_MATERII_PRIME(ID_MATERIE_PRIMA);

alter table FILIP_COMPONENTA_PRODUSE
add constraint Comp_Mat_fk foreign key(ID_COMPONENTA_PRODUS)
references FILIP_MATERII_PRIME(ID_MATERIE_PRIMA);

alter table FILIP_COMENZI
add constraint Comen_Prod_fk foreign key(ID_COMANDA)
references FILIP_PRODUSE(ID_PRODUS);

alter table FILIP_COMENZI
add constraint Comen_Clie_fk foreign key(ID_COMANDA)
references FILIP_CLIENTI(ID_CLIENT);

alter table FILIP_COMENZI
add constraint Comen_Angj_fk foreign key(ID_COMANDA)
references FILIP_ANGAJATI(ID_ANGAJAT);

alter table FILIP_ANGAJATI
add constraint Angj_Fnct_fk foreign key(ID_ANGAJAT)
references FILIP_FUNCTII(ID_FUNCTIE);

alter table FILIP_ANGAJATI
add constraint Angj_Depart_fk foreign key(ID_ANGAJAT)
references FILIP_DEPARTAMENTE(ID_DEPARTAMENT);

alter table FILIP_TRANSPORT
add constraint Transp_Angj_fk foreign key(ID_TRANSPORT)
references FILIP_ANGAJATI(ID_ANGAJAT);

alter table FILIP_TRANSPORT
add constraint Transp_Loca_fk foreign key(ID_TRANSPORT)
references FILIP_LOCATII(ID_LOCATIE);

alter table FILIP_TRANSPORT
add constraint Transp_Comen_fk foreign key(ID_TRANSPORT)
references FILIP_COMENZI(ID_COMANDA);

Am creat o tabela imaginara pentru ca mai apoi sa o sterg cu ajutorul comenzii drop :

CERINTA: SE CREAZA O TABELA NUMITA FILIP_FIRME  CARE VA CONTINE  ID_FIRMA SI DENUMIRE_FIRMA, IAR APOI SA SE STEARGA ACEASTA


TABELA
create table FILIP_Firme(
    ID_firma number(5),
    denumire_firma varchar2(30)
    
);

alter table FILIP_firme
add constraint ID_firma_pk primary key(ID_firma);

drop table FILIP_firme cascade constraints;

In continuare voi avea operatii de adaugare a datelor in tabele


Am introdus date in tabela FILIP_MATERII_PRIME;
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (1,'150ml','Lamaie galbena si lime (lamaie verde)');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE, MATERIE_PRIMA)
values (2,'250ml','Ginseng');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (3,'350ml','Miere');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (4,'450ml','Cafea');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (5,'550ml','Stearat de gliceril');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (6,'650ml','Struguri negri');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (7,'750ml','Aloe Vera');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (8,'900ml','Alga bruna');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (9,'150ml','Alcool cetearilic');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (10,'550ml','Arnica');
insert into FILIP_MATERII_PRIME (ID_MATERIE_PRIMA,CANTITATE,MATERIE_PRIMA)
values (11,'150ml','Fruct Acai antioxidant');

Atasez un printscreen cu datele introduse:


Am introdus date in tabela FILIP_COMPONENTA_PRODUSE

insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(1,1,'NCI – Citrus Aurantifolia and Citrus Medica Limonum');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(2,2,'Extract de ginseng. INCI – Panx Ginseng Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(3,3,'Extract de miere. INCI – Honey Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(4,4,'Extract concentrat din seminte nonfermentate de cafea verde. INCI – Coffee Robusta Seed Extrac');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(5,5,'INCI – Glyceryl Stearate');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(6,6,'Extract natural apos obtinut din fruct (bob de strugure). Contine doar arome naturale. INCI – Vitis Vinifera Fruit Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(7,7,'Extract de aloe vera.Aloe barbadensis este una dintre cele mai bogate aloe, cu un continut de 75 de substante nutritive, 20 mine
rale, 18 vitamine si 12 aminoacizi, care sunt prezente in mod natural din pulpa. INCI – Aloe Barbadensis Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(8,8,'INCI – Fucus Vesiculosus Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(9,9,'Mixtura de alcooli grasi. INCI – Cetearyl Alcohol');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(10,10,'Extract de flori uscate de Arnica montana L., Asteraceae
INCI – Arnica Montana Flower Extract');
insert into FILIP_COMPONENTA_PRODUSE(ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA,COMPONENTA_PRODUS)
values(11,11,'INCI-Glycerin-Water-Euterpe Oleracea Fruit Extract');
Atasez un printscreen cu datele introduse:
Am introdus date in tabela FILIP_PRODUSE:
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)

values(1,'Face My Way','Masca Faciala','Femei',599,to_date('03-01-2021', 'dd-mm-yyyy'),'mic',1,1);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(2,'True Match','Fond De Ten','Femei',190,to_date('02-02-2021', 'dd-mm-yyyy'),'mic',2,2);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(3,'Perfect Primer','Baza De Machiaj','Femei',60,to_date('01-05-2021', 'dd-mm-yyyy'),'mediu',3,3);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(4,'MuglerAlien','CremaCorp','Femei',500,to_date('03-04-2021', 'dd-mm-yyyy'),'mediu',4,4);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(5,'Smooth Me','BalsamBarbierit','Barbati',100,to_date('30-05-2021', 'dd-mm-yyyy'),'mediu',5,5);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(6,'BodyFarm','LapteCorp','Femei',110,to_date('15-06-2021', 'dd-mm-yyyy'),'mare',6,6);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(7,'Clarins','Demachiant','Femei',70,to_date('16-07-2021', 'dd-mm-yyyy'),'mare',7,7);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(8,'JoicoHair','BalsamPar','Femei',255,to_date('24-08-2021', 'dd-mm-yyyy'),'mare',8,8);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(9,'ClubMan','IngrijireBarba','Barbati',130,to_date('23-09-2021', 'dd-mm-yyyy'),'mare',9,9);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(10,'HairCream','IngrijirePar','Barbati',80,to_date('09-11-2021', 'dd-mm-yyyy'),'mic',10,10);
insert into FILIP_PRODUSE(ID_PRODUS,denumire_produs, categorie,utilizare,pret,data_expirare,dimensiune,ID_COMPONENTA_PRODUS,ID_MATERIE_PRIMA
)
values(11,'HairStyles','Balsam Par Aspru','Barbati',690,to_date('05-12-2021', 'dd-mm-yyyy'),'mediu',11,11);
Atasez un printscreen cu datele introduse:
Am introdus date in tabela FILIP_LOCATII:
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (1,'Constanta',900541);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (2,'Bucuresti',100542);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (3,'Cluj',20054);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (4,'Timisoara',300543);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (5,'Tulcea',400544);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (6,'Brasov',500545);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (7,'Sinaia',600546);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (8,'Galati',700547);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (9,'Iasi',100058);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (10,'Sibiu',200059);
insert into FILIP_Locatii(id_locatie,oras,cod_postal)
values (11,'Constanta',900540);
Atasez un printscreen cu datele introduse:
Am introdus date in tabela FILIP_CLIENTI :
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(1,'Filip','Adriana-Ioana','0733976227','drnafilip@gmail.com','str Marii,nr 29,Cumpana,Constanta');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(2,'Popescu','Ion','0733976266','popescu@gmail.com','str Soarelui,nr 20,Sibiu');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(3,'Ionescu','Mirel','0733987877','mirel@gmail.com','str Pescar,nr 28,Galati');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(4,'Fuduli','AnaMaria','0733888227','fuduli@gmail.com','str Pahar,nr 5,Iasi');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(5,'Caftanat','Dorel','0744976227','ionelc@gmail.com','str Rotilor,nr 3,Brasov');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(6,'Valeanu','Iulia','0733000227','iuliav@gmail.com','str Zorelelor,nr 90,Sinaia');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(7,'Postaru','Alexandra','0743121554','postaruale@gmail.com','str Traian,nr 2,Constanta');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(8,'Luta','Vlad','0733777777','lutavlad@yahoo.com','str Tulcei,nr 12,Bucuresti');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(9,'Preda','Nicoleta','0799976227','nicopreda@yahoo.com','str Morii,nr 11,Timisoara');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(10,'Coman','Roxana','0777776227','comroxp@gmail.com','str Dorului,nr 122,Tulcea');
insert into FILIP_Clienti(id_client,nume_client,prenume_client,telefon_client,email_client,adresa_client)
values(11,'Pascu','Ioana','0737788897','pascuioa@yahoo.com','str Arcului,nr 23,Cluj');
Atasez printscreen cu datele introduse:
Am introdus date in tabela FILIP_FUNCTII:

insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(1,'ManagerGeneral',7000);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(2,'ManagerFinanciar',6500);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(3,'ManagerDeProductie',6600);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(4,'ManagerDeVanzari',6700);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(5,'Curier',6200);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(6,'ContabilSef',4500);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(7,'DirectorOperatiuni',6500);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(8,'Secretar',2500);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(9,'Casier',2000);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(10,'Informatician',5000);
 insert into FILIP_FUNCTII(ID_FUNCTIE,denumire_functie,salariu)
 values(11,'Contabil',2500);
Atasez printscreen cu datele introduse:
Am introdus date in tabela FILIP_DEPARTAMENTE:

insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(1,'Marketing');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(2,'Investitii');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(3,'Juridic');
insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(4,'Contabilitate');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(5,'Livrari&Curierat');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(6,'IT');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(7,'Depozitare');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(8,'Aprovizionare');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(9,'Administrativ');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(10,'CercetareDezvoltare');
 insert into FILIP_DEPARTAMENTE(id_departament,denumire_departament)
 values(11,'AsigurareaCalitatii');
Atasez un printscreen cu datele introduse:
Am introdus date in tabela FILIP_ANGAJATI:

insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(1,'Dorel','Ionel','0700000000','doreli@gmail.com',to_date('30-01-2020', 'dd-mm-yyyy'),1,1);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(2,'Birsan','Aurelia','0700000001','aurab@gmail.com',to_date('03-05-2020', 'dd-mm-yyyy'),2,2);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(3,'Irene','Ionela','0700000002','irenei@gmail.com',to_date('02-06-2020', 'dd-mm-yyyy'),3,3);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(4,'Vasilache','Dora','0700000003','dorav@yahoo.com',to_date('16-07-2020', 'dd-mm-yyyy'),4,4);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(5,'Celmare','Mihai','0700000004','mihaai@gmail.com',to_date('23-08-2020', 'dd-mm-yyyy'),5,5);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(6,'Vizoc','Maria','0700000005','mariav@gmail.com',to_date('15-09-2020', 'dd-mm-yyyy'),6,6);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(7,'Celmic','Mariana','0700000006','marianac@gmail.com',to_date('12-10-2020', 'dd-mm-yyyy'),7,7);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(8,'Micalcescu','Matias','0700000007','mattias@yahoo.com',to_date('09-11-2020', 'dd-mm-yyyy'),8,8);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(9,'Luta','Argentina','0700000008','tinal@gmail.com',to_date('08-12-2020', 'dd-mm-yyyy'),9,9);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(10,'Filip','Daniela','0700000009','filipd@yahoo.com',to_date('24-01-2020', 'dd-mm-yyyy'),10,10);
insert into FILIP_Angajati(id_angajat,nume,prenume,telefon,email,data_angajare,ID_FUNCTIE,id_departament)
values(11,'Agbas','Iuliana','0700000011','iuliagb@gmail.com',to_date('23-02-2020', 'dd-mm-yyyy'),11,11);
Atasez printscreem cu datele introduse:
Am introdus date in tabela FILIP_COMENZI:

insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(1,1,1,1,to_date('03-01-2020', 'dd-mm-yyyy'),599,'IN CURS DE LIVRARE','ramburs');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(2,2,2,2,to_date('02-02-2020', 'dd-mm-yyyy'),190,'EXPEDIAT','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(3,3,3,3,to_date('04-01-2020', 'dd-mm-yyyy'),60,'IN CURS DE LIVRARE','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(4,4,4,4,to_date('05-01-2020', 'dd-mm-yyyy'),500,'EXPEDIAT','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(5,5,5,5,to_date('06-01-2020', 'dd-mm-yyyy'),100,'PROCESARE COMANDA','ramburs');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(6,6,6,6,to_date('07-01-2020', 'dd-mm-yyyy'),110,'IN CURS DE LIVRARE','ramburs');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(7,7,7,7,to_date('08-01-2020', 'dd-mm-yyyy'),70,'PROCESARE COMANDA','ramburs');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(8,8,8,8,to_date('09-01-2020', 'dd-mm-yyyy'),255,'PROCESARE COMANDA','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(9,9,9,9,to_date('10-11-2020', 'dd-mm-yyyy'),130,'PROCESARE COMANDA','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(10,10,10,10,to_date('03-02-2020', 'dd-mm-yyyy'),80,'IN CURS DE LIVRARE','card');
insert into FILIP_Comenzi(id_comanda,id_produs,id_client,id_angajat,data,suma_de_achitat,stare_comanda,modalitate_plata)
values(11,11,11,11,to_date('03-03-2020', 'dd-mm-yyyy'),690,'EXPEDIAT','ramburs');
Atasez printscreen cu datele introduse:
Am introdus date in tabela FILIP_TRANSPORT:

insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(1,5,1,1,'autoturism');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(2,5,2,2,'furgoneta');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(3,5,3,3,'furgoneta');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(4,5,4,4,'camion');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(5,5,5,5,'camion');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(6,5,6,6,'autoturism');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(7,5,7,7,'autoturism');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(8,5,8,8,'furgoneta');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(9,5,9,9,'camion');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(10,5,10,10,'camion');
insert into FILIP_Transport(id_transport,id_angajat,id_locatie,id_comanda,tip_vehicul)
values(11,5,11,11,'autoturism');
Atasez printscreen cu datele introduse:
E. Blocuri PL/SQL continand structuri de control variate(min 4)
Interactiunea cu serverul Oracle prin intermediul comenzilor SQL
1. Sa se majoreze pretul produselor al caror pret actual este mai mic de 500 de lei cu 20%.
set serveroutput on;
declare
procent number:=0.2;
begin
update filip_produse set pret=(pret*procent)+pret where pret<500;
end;
/
2. Să se modifice toate denumirile departamentelor astfel încât acestea să fie scrise cu litere mari.
begin
update filip_departamente
set denumire_departament=upper(denumire_departament);
end;
/
3. Sa se afiseze numele, telefonul si data comenzii pentru clientul care a avut id-ul comenzii egal cu 8

declare
v_nume filip_clienti.nume%type;
v_tel filip_clienti.telefon_client%type;
v_data filip_comenzi.data%type;
begin
select nume_client, telefon_client, data into v_nume, v_tel, v_data from filip_comenzi c, filip_clienti
a
where c.id_client=a.id_client and c.id_comanda=8;
dbms_output.put_line('Clientul '||v_nume||' are telefonul '||v_tel||' si a cumparat produsele dorite la
data de '||v_data);
end;
/
4.Comparati pretul produselor avand id-ul citit de la tastatura, cu o variabila egala cu 500 si afisati un mesaj.
set serveroutput on
declare
variabila number(5):=500;
pret_p filip_produse.pret%type;
begin
select pret into pret_p from filip_produse where id_produs=&p;
if pret_p<variabila
then dbms_output.put_line('Produs ieftin');
elsif pret_p=variabila
then dbms_output.put_line('Produs mediu');
else dbms_output.put_line('Produs scump');
end if;
end;
/
5. Sa se afiseze in ordine produsele cu id_ul intre 1 si 11, atata timp cat pretul acestora este mai mic decat pretul mediu
declare
pret_p filip_produse.pret%type;
pret_mediu pret_p%type;
i number(4):=1;
begin
loop
select avg(pret) into pret_mediu from filip_produse;
select pret into pret_p from filip_produse where id_produs=i;
if pret_p < pret_mediu and i<12
then dbms_output.put_line('Produsul cu id-ul'||i||' are pretul:'||pret_p);
end if;
i:=i+1;
exit when i>11;
end loop;
end;
/
6. Să se afișeze folosind un bloc PL/SQL numele si prenumele tuturor angajatilor folosind o structură repetitivă de tip FOR.
declare
v_min filip_angajati.id_angajat%type;
v_max filip_angajati.id_angajat%type;
v_nume filip_angajati.nume%type;
v_prenume filip_angajati.prenume%type;
begin
select min(id_angajat), max(id_angajat) into v_min, v_max from filip_angajati;
for i IN v_min..v_max LOOP
select nume, prenume into v_nume, v_prenume FROM filip_angajati where id_angajat=i;
dbms_output.put_line(v_nume||' '||v_prenume);
end loop;
end;
/
7. Să se afișeze toate produsele folosind o structură repetitivă WHILE.
declare
i filip_produse.id_produs%type;
v_min filip_produse.id_produs%type;
v_max filip_produse.id_produs%type;
v_den filip_produse.denumire_produs%type;
begin
select min(id_produs), max(id_produs) into v_min, v_max from filip_produse;
i:=v_min;
while i<=v_max loop
select denumire_produs into v_den from filip_produse where id_produs=i;
i:=i+1;
dbms_output.put_line(v_den);
end loop;
end;
/
F. Utilizarea cursorilor si a exceptiilor in cadrul blocurilor
PL/SQL(min 4)

1. Creati un bloc PL/SQL prin care sa cresteti cu 25% salariul angajatilor cu functia primita de la tastatura.Afisati numarul de inregistrari
modificate. Ridicati o exceptie in cazul in care nu sunt modificari.

declare
id_fun filip_functii.denumire_functie%type:='&p';
e exception;
begin
update filip_functii set salariu=1.25*salariu where id_functie in(select id_functie from filip_functii where denumire_functie=id_fun);
if sql%rowcount=0
then raise e;
else dbms_output.put_line('Numarul de modificari este'||sql%rowcount);
end if;
exception
when e
then dbms_output.put_line('Nu s-a facut nicio modificare');
end;
/
2. Să se modifice salariul angajatului cu id-ul 19. Dacă angajatul nu există sau dacă o altă eroare apare să fie ridicată o excepție.

set serveroutput on
declare
exceptie exception;
begin
update filip_functii
set salariu=salariu+(0.05*salariu)
where id_functie=19;
if sql%notfound then
raise exceptie;
end if;
exception
when exceptie then
dbms_output.put_line('Nu exista angajatul cu aceasta functie');
when others then
dbms_output.put_line('EROARE');
END;
/
3. Să se insereze în tabela FILIP_ANGAJATI un angajat nou, cu numele și prenumele Falcica Rares , însă fără a introduce id-ul. Să se
trateze eroarea apărută.

Declare
exceptie exception;
pragma exception_init(exceptie, -01400);
begin
insert into filip_angajati(id_angajat, nume, prenume) values (NULL, 'Falcica', 'Rares');
Exception
when exceptie then
dbms_output.put_line('Va rugam precizati id-ul angajatului!');
dbms_output.put_line('Mesajul erorii este: ' ||SQLERRM);
DBMS_OUTPUT.put_line('Codul erorii este:'||SQLCODE);
end;
/
4. Sa se creeze un bloc PL/SQL pentru actualizarea informatiilor legate de datele clientilor , unde codul clientului si telefonul sa fie introduse de
la tastatura. Considerati cazul in care codul clientului nu este valid.

set serveroutput on
declare
invalid_idc EXCEPTION;
begin
update filip_clienti
set telefon_client=&a
where id_client=&codc;
if sql%notfound then
raise invalid_idc;
end if;
exception
when invalid_idc then
dbms_output.put_line('Nu exista client cu acest cod');
when others then
dbms_output.put_line('A aparut eroarea:'||SQLERRM);
END;
/
5.Sa se dubleze pretul produselor strict cu utilizarea „Femei”. Daca se produc modificari, afisati numarul acestora,
altfel setati o exceptie.

declare
begin
update filip_produse set pret=pret*2 where id_produs in(select id_produs from filip_produse
where utilizare='Femei');
if sql%found
then dbms_output.put_line(sql%rowcount|| ' modificari');
else dbms_output.put_line('Fara modificari');
end if;
end;
/
6. Sa se construiasca un bloc prin care sa se afiseze pentru fiecare client id_ul, numele si prenumele concatenate, id-ul
comenzii plasate, data, statusul comenzii si modalitatea de plata .

declare
cursor x is select c.id_client, c.nume_client||' '||c.prenume_client as nume_complet, b.id_comanda, b.data,
b.stare_comanda, b.modalitate_plata
from filip_clienti c, filip_comenzi b where c.id_client=b.id_client;
z x%rowtype;
begin
open x;
loop
fetch x into z;
exit when x%notfound;
dbms_output.put_line(z.id_client||' '||z.nume_complet||' '||z.id_comanda|| ' '||z.data||' '|| z.stare_comanda||'
'||z.modalitate_plata);
end loop;
close x;
end;
/
7. Să se afișeze denumirea functiei și salariul angajaților care au salariul mai mic de 6000 folosind un cursor.

declare
cursor c is select denumire_functie, salariu from filip_functii where salariu<6000;
v_den filip_functii.denumire_functie%type;
v_sal filip_functii.salariu%type;
begin
open c;
loop
fetch c into v_den, v_sal;
exit when c%notfound;
dbms_output.put_line(' Functia '||v_den||' are salariul '||v_sal);
end loop;
close c;
end;
/
8. Sa se creeze tabela F_PRODUSE in care sa se insereze toate produsele din tabela FILIP_PRODUSE care au pretul
mai mare de 800.

create table f_produse(id_produs number(4), denumire_produs varchar2(100));


declare
cursor c is select id_produs, denumire_produs from filip_produse where pret>800;
r c%rowtype;
begin
open c;
loop
fetch c into r;
exit when c%notfound;
insert into f_produse values (r.id_produs, r.denumire_produs);
end loop;
close c;
end;
/
G. Functii, proceduri(min 3 functii, 3 proceduri)
1. Creati o procedura care primeste ca paramentru de intrare id-ul unui client si returneaza prin parametru de tip out adresa acestuia.
(procedura)

create or replace procedure cautare_client


(p_id_client in filip_clienti.id_client%type, p_adresa out filip_clienti.adresa_client%type) is
begin
select adresa_client into p_adresa from filip_clienti where id_client=p_id_client;
dbms_output.put_line('Clientul cu id-ul:'||p_id_client||' are adresa:'||p_adresa);
end cautare_client;
/

variable adresa_client varchar2;


execute cautare_client(9,: adresa_client);
2. Creati o functie care sa returneze valoarea totala a comenzii unui client.(functie)

create or replace function client_achiz_tot


(c_id_client in filip_clienti.id_client%type)
return number
is
v_pret filip_comenzi.suma_de_achitat%type;
begin
select sum(a.suma_de_achitat) into v_pret from filip_clienti c, filip_comenzi a where
c.id_client=a.id_client ;
if v_pret=0
then dbms_output.put_line('Clientul nu a efectuat inca achizitii sau nu exista');
else dbms_output.put_line('Valoarea totala a achizitiilor este :'||v_pret);
end if;
return v_pret;
end;
/
show errors;
execute dbms_output.put_line(client_achiz_tot(10));
3.Creati o functie care sa returneze numarul total de angajati care au salariul mai mare decat salariul mediu.(functie)

create or replace function ang_sal_med


return number
is
v_sal_med filip_functii.salariu%type;
v_nr number;
cursor c is select * from filip_functii;
begin
select avg(salariu) into v_sal_med from filip_functii;
v_nr:=0;
for b in c
loop
if b.salariu>v_sal_med
then v_nr:=v_nr+1;
end if;
end loop;
if v_nr=0
then dbms_output.put_line('Nu exista angajati');
end if;
return v_nr;
end;
/

execute dbms_output.put_line(ang_sal_med());
4. Creati o functie care sa verifice daca numarul de telefon al unui angajat este valid sau nu.(functie)

create or replace function verifica_telefon( id filip_angajati.id_angajat%type)


return boolean
is
tlf filip_angajati.telefon%type;
begin
select telefon into tlf from filip_angajati where id_angajat=id;
if tlf like '07%' then return true;
else return false;
end if;
exception
when no_data_found then return null;
end;
/

begin
if(verifica_telefon(1)) then
dbms_output.put_line('Angajatul are telefonul valid');
elsif(verifica_telefon(1) is null) then
dbms_output.put_line('Angajatul nu a fost gasit');
else
dbms_output.put_line('Angajatul are telefonul invalid');
end if;
end;
/
5.Creati o procedura care primeste ca parametru de intrare id-ul unei comenzi si returneaza prin parametru de tip out modalitatea de plata
prin care a fost achitata comanda.(procedura)

create or replace procedure cautare_comanda


(p_id_comanda in filip_comenzi.id_comanda%type, p_modalitate_plata out filip_comenzi.modalitate_plata
%type) is
begin
select modalitate_plata into p_modalitate_plata from filip_comenzi where id_comanda=p_id_comanda;
dbms_output.put_line('Comanda cu id-ul:'||p_id_comanda||' a fost achitata prin:'||p_modalitate_plata);
end cautare_comanda;
/

variable modalitate_plata varchar2;


execute cautare_comanda(5,: modalitate_plata);
6.Creati o procedura care primeste ca parametru de intrare id-ul unui produs si returneaza prin parametru de tip out categoria produsului.

create or replace procedure cautare_produs


(p_id_produs in filip_produse.id_produs%type, p_categorie out filip_produse.categorie%type) is
begin
select categorie into p_categorie from filip_produse where id_produs=p_id_produs;
dbms_output.put_line('Produsul cu id-ul:'||p_id_produs||' face parte din categoria:'||p_categorie);
end cautare_produs;
/

variable categorie varchar2;


execute cautare_produs(4,: categorie);

S-ar putea să vă placă și