Sunteți pe pagina 1din 23

Academia de Studii Economice

Bucureti

Cibernetic, Statistic i
Informatic Economic

Disciplina: SGBD

Numele firmei: S.C. ALPROM S.A.

Student: Iordache Mihai


Vlad Diaconia
Grupa 1026

Profesor:

Seria A
Firma S.C.ALPROM.S.A. are ca domeniu de activitate
proiectarea si productia de elemente profilate din lemn, servicii
de prelucrare PAL si comercializarea materialelor pentru
productia de mobilier din PAL melaminat si elemente profilate
din lemn pentru amenajari interioare si lucrari de constructii.
Pentru a gestiona cu usurin informaiile legate de
produsele i comenzile diferiilor clieni, am creat aceast baz
de date, care cuprinde 5 tabele: Angajai, Clieni, Comenzi,
Produse i Rnd Comenzi.
create table PRODUSE
(id_produs number(5),
denumire_produs varchar2(30) not null,
descriere varchar(500),
cantitate_produs number(8),
pret number(8,2) );
create table RAND_COMENZI
( nr_comanda NUMBER(12),
id_produs NUMBER(5) not null,
pret
NUMBER(8,2),
cantitate NUMBER(8) );
create table COMENZI
(nr_comanda NUMBER(12),
data_comanda DATE,
id_client NUMBER(5),
stare_comanda VARCHAR2(25),
id_angajat NUMBER(5) );
create table ANGAJATI
(id_angajat NUMBER(5),
prenume
VARCHAR2(20) not null,
nume
VARCHAR2(20) not null,
email
VARCHAR2(25) unique,
telefon
VARCHAR2(20) unique,
data_angajare DATE,

salariul

NUMBER(8,2) );

create table CLIENTI


( id_client NUMBER(5),
nume_client VARCHAR2(20),
cod_fiscal VARCHAR2(15),
strada_client VARCHAR2(30),
numar_client NUMBER(5),
telefon_client VARCHAR2(15) not null,
email_client VARCHAR2(30) not null );
Ca restrictii de integritate am folosit:
ALTER TABLE PRODUSE
ADD CONSTRAINT pk_produse PRIMARY KEY(id_produs);
ALTER TABLE PRODUSE
ADD CONSTRAINT ck_produse CHECK(descriere IS NOT
NULL);
ALTER TABLE RAND_COMENZI
ADD CONSTRAINT pk_rand_comenzi PRIMARY
KEY(nr_comanda, id_produs);
ALTER TABLE RAND_COMENZI
ADD CONSTRAINT id_produs_fk FOREIGN KEY (id_produs)
REFERENCES PRODUSE(id_produs);
ALTER TABLE RAND_COMENZI
ADD CONSTRAINT nr_comanda_fk FOREIGN KEY (nr_comanda)
REFERENCES COMENZI(nr_comanda);
ALTER TABLE COMENZI
ADD CONSTRAINT pk_nr_comanda PRIMARY KEY(nr_comanda);
ALTER TABLE COMENZI
ADD CONSTRAINT id_angajat_fk FOREIGN KEY(id_angajat)
REFERENCES ANGAJATI(id_angajat);
ALTER TABLE COMENZI
ADD CONSTRAINT id_client_fk FOREIGN KEY(id_client)
REFERENCES CLIENTI(id_client);

ALTER TABLE ANGAJATI


ADD CONSTRAINT pk_id_angajat PRIMARY KEY(id_angajat);
ALTER TABLE ANGAJATI
ADD CONSTRAINT salariul_min CHECK(salariul>0);
ALTER TABLE ANGAJATI
ADD CONSTRAINT data_angajare_nn CHECK(data_angajare is
not null);
ALTER TABLE CLIENTI
ADD CONSTRAINT id_client_pk PRIMARY KEY(id_client);
ALTER TABLE CLIENTI
ADD CONSTRAINT nume_client_nn CHECK(nume_client is not
null);
ALTER TABLE CLIENTI
ADD CONSTRAINT email_client_u UNIQUE(email_client);

In continuare voi insera inregistrari in table folosind comanda


INSERT.

In tabela PRODUSE:
INSERT INTO PRODUSE VALUES(1,'Scaun Janin', 'Scaun din
lemn (brad)',10,130);
INSERT INTO PRODUSE VALUES(2,'Taburet Cool', 'Taburet
stofa(n culori)',20,200);
INSERT INTO PRODUSE VALUES(3,'Fotoliu Dream', 'Fotoliu
(alb-negru)',10,420);
INSERT INTO PRODUSE VALUES(4,'Hol Laura', 'Canapea
extensibila(stofa,brate din lemn',3,2199);
INSERT INTO PRODUSE VALUES(5,'Hol Alex', 'Canapea 3 locuri
cu extensie(beige)',2,2450);
INSERT INTO PRODUSE VALUES(6,'Masa Cleo', 'Masa
wenge',7,320);
INSERT INTO PRODUSE VALUES(7,'Masa bucatarie', 'Masa
lemn de nuc',4,265);
INSERT INTO PRODUSE VALUES(8,'Masa fixa', 'Masa
stejar',3,350);
INSERT INTO PRODUSE VALUES(9,'Pat Classic', 'Pat lemn de
fag lacuit',2,780);
INSERT INTO PRODUSE VALUES(10,'Pat suprapus', 'Pat
metalic',100,500);
INSERT INTO PRODUSE VALUES(11,'Patut Mickey','Patut verde
transformer',5,690);
INSERT INTO PRODUSE VALUES(12,'Birou Gama', 'Birou mic si
practic pt. calculator',8,450);
COMMIT;
In tabela RAND_COMENZI:
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO
INTO
INTO
INTO

RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI

VALUES(1,4,2199,1);
VALUES(2,3,420,3);
VALUES(3,1,130,5);
VALUES(4,2,200,3);
VALUES(5,7,265,1);
VALUES(6,10,500,50);
VALUES(7,12,450,2);
VALUES(8,11,690,1);

INSERT INTO
INSERT INTO
INSERT INTO
INSERT INTO
COMMIT;

RAND_COMENZI
RAND_COMENZI
RAND_COMENZI
RAND_COMENZI

VALUES(9,7,265,1);
VALUES(10,6,500,1);
VALUES(11,9,690,2);
VALUES(12,8,450,1);

In tabela COMENZI:
INSERT INTO COMENZI
finalizata',001);
INSERT INTO COMENZI
finalizata',002);
INSERT INTO COMENZI
finalizata',008);
INSERT INTO COMENZI
anulata',004);
INSERT INTO COMENZI
finalizata',003);
INSERT INTO COMENZI
finalizata',007);
INSERT INTO COMENZI
finalizata',003);
INSERT INTO COMENZI
anulata',004);
INSERT INTO COMENZI
finalizata',003);
INSERT INTO COMENZI
finalizata',002);
INSERT INTO COMENZI
finalizata',001);
INSERT INTO COMENZI
finalizata',009);
COMMIT;

VALUES(1,'30.01.2012',3,'
VALUES(2,'14.02.2012',3,'
VALUES(3,'15.02.2012',4,'
VALUES(4,'15.02.2012',1,'
VALUES(5,'15.02.2012',2,'
VALUES(6,'16.02.2012',7,'
VALUES(7,'18.02.2012',5,'
VALUES(8,'15.03.2012',6,'
VALUES(9,'30.04.2012',7,'
VALUES(10,'04.06.2012',6,'
VALUES(11,'16.07.2012',1,'
VALUES(12,'21.09.2012',4,'

In tabela ANGAJATI:
INSERT INTO ANGAJATI VALUES(1,'Iordache',
'Andrei','io.andrei@alprom.ro

','0744128488','02.10.2002',1850);
INSERT INTO ANGAJATI VALUES(2,'Stefan',
'Baicu','steff_b@alprom.ro
','0742789182','04.03.2002',1900);
INSERT INTO ANGAJATI VALUES(3,'Andreea',
'Saul','sauldeea@alprom.ro','0723857425','12.11.2005',2480);
INSERT INTO ANGAJATI VALUES(4,'Boros',
'Cosmin','cosma@alprom.ro
','0741123456','17.06.1005',2950);
INSERT INTO ANGAJATI VALUES(5,'Dorel',
'Icogrum','ico_dorel@alprom.ro
,'0733978544','25.10.2011',1550);
INSERT INTO ANGAJATI VALUES(6,'Ioana',
'Badea','ioanab@gmail.com,'0765890775','29.07.2005',2800);
INSERT INTO ANGAJATI VALUES(7,'Vasile',
'Stoica','stoicavasi@gmail.com','0741886675','10.12.2009',2640);
INSERT INTO ANGAJATI VALUES(8,'Mircea',
'Ionescu','ionescu.m@yahoo.com','0744095518','04.01.2008',365
0);
INSERT INTO ANGAJATI VALUES(9,'Laura',
'Pop','pop_laura@alprom.ro
,'0743442908','30.03.20014',1900);
COMMIT;
In tabela CLIENTI:
INSERT INTO CLIENTI VALUES(1,'S.C. KOSEPA S.R.L.', 'RO
867552',' Industriilor',14,' 021890627','kosepa@gmail.com');
INSERT INTO CLIENTI VALUES(2,'S.C.BENVENUTII S.R.L.', 'RO
779952',' Mihai VBravu',79,' 0217985','radix.srl@yahoo.com');
INSERT INTO CLIENTI VALUES(3,'S.C. APLA S.R.L.', 'RO
1672885',' Soseaua de centura',116,'
0753991112',aplalux@gmail.com);
INSERT INTO CLIENTI VALUES(4,'SC.RDS-RCS S.A.', 'RO
7124124',' Bulevardul Stefan cel Mare',89,'
021121212','rds.rcs@rds.ro');

INSERT INTO CLIENTI VALUES(5,'S.C.DONNA S.R.L.', 'RO


234221',' Bulevardul Unirii',357,'
021885647','belladonna_1@yahoo.com');
INSERT INTO CLIENTI VALUES(6,'Radu Sandra Ana Maria.', '-','
Veteranilor',55,' 0765422108','radu.sl@yahoo.ro');
INSERT INTO CLIENTI VALUES(7,'Academia de Studii
Economice .', 'RO 855098',' Bd-ul Lascar Catargiu ',248,'
021664455','ase@ase.ro');
COMMIT;
Exerciii:

1. S se creeze o nou tabel Produse2 care s conin


aceleai produse ca i tabela iniial.
BEGIN
execute immediate 'CREATE table PRODUSE2 AS
SELECT * FROM
PRODUSE';
END;
/

2. n tabela nou creat (Produse 2 ), s se adauge o


coloan cu numele Stoc. Afiai rezultatul.
DECLARE
v_sir varchar2(50);
BEGIN
v_sir:='ALTER TABLE PRODUSE2 add (Stoc number (7))';
dbms_output.put_line (v_sir);
EXECUTE IMMEDIATE v_sir;
END;
/
Select * from Produse2;

3. S se afieze numele angajatului cu codul 2.


DECLARE
v_nume angajati.nume%TYPE;
BEGIN
select nume
into v_nume
from angajati
where id_angajat = 2;
dbms_output.put_line('Angajatul :' || v_nume||);
END;
/

4. S se mreasc cu 20% salariul angajailor care au n


prezent salariul mai mic de 2000 de RON.
DECLARE
v_procent number:=0.2;
v_prag angajati.salariul%type:=2000;
BEGIN
update angajati
set salariul=salariul*(1+v_procent)
where salariul < v_prag;
END;

5. S se afieze numrul de comenzi ale angajatului al


crui cod este introdus de la tastatur.
DECLARE
v_nr_comenzi number(2);
BEGIN
select count(nr_comanda) into v_nr_comenzi from comenzi
where id_angajat=&id_angajat;
dbms_output.put_line ('Angajatul are: '|| v_nr_comenzi||'
comenzi');
END;
/

6. Se d numele unui angajat: Ionescu. Afiai prenumele


i salariul acestui angajat.
SET SERVEROUTPUT ON
variable a_salariul number
DEFINE
s_nume=Ionescu
DECLARE
v_prenume angajati.nume%type;
BEGIN
select prenume,salariul into v_prenume, :a_salariul
from angajati where nume='&s_nume';
DBMS_OUTPUT.PUT_LINE ('Prenumele angajatului este: '||
v_prenume);
END;
/
STRUCTURI ALTERNATIVE SI REPETITIVE

7. In functie de cantitate din produsul cu codul 1 , acesta


va fi afisat modificat.
DECLARE

v_cant produse.canitate_produs%type;
BEGIN
SELECT cantitate_produs into v_cant from produse
where id_produs=1;
dbms_out.put_line(Stocul initial este: || v_cant);
IF
v_cant <10 then v_cant:=2*v_cant;
ELSIF v_cant between 10-20 then
v_cant:=2*v_cant;
ELSE
v_cant:=1.25&v_cant;
end if;
dbms_out.put_line(Stocul final este: ||v_cant);
end;
8. Afiai angajaii cu id-urile n intervalul 1-7 att timp ct
salariul acestora este mai mic dect media salariilor.
DECLARE
v_sal angajati.salariul%type;
v_sal_mediu v_sal%type;
i number(4):=1;
BEGIN
select avg(salariul) into v_sal_mediu from angajati;
dbms_output.put_line('Salariul mediu este: '||v_sal_mediu);
loop
select salariul into v_sal from angajati where id_angajat=i;
dbms_output.put_line('Angajatul cu codul '||i||' are salariul:
'||v_sal);
i:=i+1;
exit when v_sal<v_sal_mediu or i>7;
end loop;
END;
/

9.Modificai denumirea produsului cu id-ul 6 n Scaun.


n cazul n care acest produs nu exist, afiai pe ecran
mesajul corespunztor.
set serveroutput on
BEGIN
update produse
set denumire_produs='Scaun' where id_produs=6;
if SQL%NOTFOUND then
dbms_output.put_line('Nu exista produsul cu acest
cod');
end if;
END;
/
GESTIONAREA CURSORILOR

10. Creai o nou tabel: EMPLOYEE, care s conin idul, numele i prenumele primilor 3 angajai din tabela
Angajai folosind un cursor explicit.
CREATE TABLE EMPLOYEE
(cod varchar2(7),
nume varchar2(30),
prenume varchar2(30)
);
DECLARE
v_id angajati.id_angajat%type;
v_nume angajati.nume%type;
v_prenume angajati.prenume%type;
cursor c is select id_angajat, nume, prenume from angajati;
BEGIN
open c;
for i in 1..3 loop
fetch c into v_id, v_nume, v_prenume;
insert into EMPLOYEE values(v_id, v_nume, v_prenume);
end loop;
close c;

END;
/

11.Sa se afiseze pentru fiecare comanda in parte


produsele comandate.
set serveroutput on
DECLARE
cursor c1 is select nr_comanda from comenzi
where stare_comanda=finalizata
order by nr_comanda;
cursor c2(p_comanda number) is select
r.id_produs,p.denumire_produs,r.cantitate)
from produse p ,rand_comenzi r
where p.id_produs=r.id_produs
and r.nr_comanda=p_comanda
order by r.id_produs desc;
r1 c1%rowtype;
r2 c2%rowtype;
BEGIN
open c1;
loop
fetch c1 into r1;
exit when c1%notfound;
dbms_output.put_line('Comanda incheiata' ||r1.nr_comanda);
open c2(r1.nr_comanda);
loop
fetch c2 into r2;
exit when c2%notfound;
dbms_output.put_line('Din produsul'||r2.id_produs|| ' '||
r2.denumire||

' s-au vandut' ||r2.cantitate);


end loop;
close c2;
end loop;close c1;
end;
/

12. S se afieze primele 4 comenzi care au cele mai


multe produse comandate. nregistrrile vor fi ordonate
crescator n funcie de numrul produselor.
DECLARE
cursor c_comenzi is
select c.nr_comanda, count(r.id_produs) numar
from comenzi c, rand_comenzi r
where c.nr_comanda=r.nr_comanda
group by c.nr_comanda
order by count(r.id_produs) asc;
rec_comenzi c_comenzi%rowtype;
BEGIN
dbms_output.put_line ('Numrul de produse pt. fiecare
comand este:');
if not c_comenzi%ISOPEN then
open c_comenzi;
end if;
loop
fetch c_comenzi into rec_comenzi;
exit when c_comenzi%NOTFOUND or c_comenzi
%ROWCOUNT>4;
dbms_output.put_line ('Comanda '||
rec_comenzi.nr_comanda||' are:
'||rec_comenzi.numar||'
produse');
end loop;
close c_comenzi;
END;
/

TRATAREA EXCEPTIILOR

13.S se afieze angajatul cu codul 20. In cazul in care


nu exista nici un angajat cu acest cod sa se trateze
eroarea aparuta.(exceptie predefinita)
DECLARE
v_nume varchar2(20);
v_prenume varchar2(20);
BEGIN
select nume, prenume INTO v_nume, v_prenume
from angajati
where id_angajat=&id_angajat;
dbms_output.put_line(v_nume ||' '|| v_prenume);
EXCEPTION
when no_data_found then
dbms_output.put_line('Angajatul nu exista.');
END;
/

14.Sa se modifice salariul angajatului cu codul 101.Sa se


creeze o exceptie pentru eroarea aparuta in cazul in care
nu exista angajatul.(exceptie definita de utilizator)
DECLARE
nu_exista_ang exception;
pragma exception_init(nu_exista_ang, -20001);
begin
update a.salariul from angajati a
where a.id_angajat=101;
if SQL%not found then

raise nu_exista_ang;
end if;
exception when nu_exista_ang then
dbms_output.line('Nu exista angajatul ! ');
end;
/

15. S se afieze salariul angajatului cu prenumele


Miruna. S se trateze dou exceptii.
DECLARE
sal angajati.salariul%type;
BEGIN
select salariul into sal from angajati where
prenume='Cosmin';
dbms_output.put_line('Cosmin are salariul de: '||sal);
EXCEPTION
when too_many_rows then
dbms_output.put_line('Exist mai muli salariai cu acelasi
prenume);
when no_data_found then
dbms_output.put_line('Nu exist angajatul specificat');
END;
/

16.Sa se stearga
toate nregistrrile din tabela:
PRODUSE2, dup care creati o nou tabel: ERORI care
s conin valorile SQLCODE i SQLERRM.
create table ERORI
(utilizator varchar2(40),

cod_eroare number(10),
mesaj_eroare varchar2(255)
);
DECLARE
cod number;
mesaj varchar2(255);
del_exception exception;
pragma exception_init (del_exception, -2292);
BEGIN
delete from produse2;
EXCEPTION
when del_exception then
dbms_output.put_line('Produsul nu poate fi ters. ');
dbms_output.put_line('Exist comenzi n derulare. ');
cod:=SQLCODE
mesaj:=SQLERRM;
insert into ERORI values(user, cod, mesaj);
END;
/

17. S se modifice denumirea unui produs cu id-ul


introdus de la tastatur. Tratai cte o excepie dac:
-nu exist id-ul specificat;
-apare o alt eroare.
DECLARE
invalid_prod EXCEPTION;
BEGIN
update produse
set denumire_produs='Pat pliabil'
where id_produs=&id_produs;
if SQL%NOTFOUND then
raise invalid_prod;
end if;
EXCEPTION
when invalid_prod then

dbms_output.put_line ('Nu exist produsul');


when OTHERS then
dbms_output.put_line ('A aprut o eroare.');
END;
/
SUBPROGRAME

18.Folosind o procedura sa se afiseze primii 3


angajati care au salariul mai mare decat o valoare
primita ca parametru.
set serveroutput on
create or replace procedure
afisare_primii_trei ( pSAL NUMBER) as
cursor c is select * from angajati where salariul > pSAL
order by salariul;
r c%rowtype;
BEGIN
open c;
loop;
fetch c into r;
dbms_output.put_line('Numele angajatului'||r.nume||'are
salariul'
||r.salariul);
end loop;
if(c%rowcount <3) then
raise_application_error(-20001, 'Sunt mai putini angajati');
end if;
close c;
end;
/

19.Sa se trateze exceptia aparuta in cazula in care


sunt mai putin de 3 angajati care indeplinesc conditi din
cadrul procedurii create anterior.
DECLARE
exc_angajati EXCEPTION
pragma exception_init(exc_angajati, -20001);
BEGIN
afisare_primii_trei ( 1600);
exception when exc_angajati
then dbms_output.put_line('Mai putin de 3 angajati cu salariul <
1600. ');
end;
/

20. Cu ajutorul unei proceduri sa se mareasca cu un


anumit procent pretul unui produs.
create or replace procedure marire_pret
(id_p IN produse.id_produs%type,procent IN number)
IS
BEGIN
update produse
set pret = pret*(1+procent/100)
where id_produs=id_p;
end;
/
call marire_pret(2,30);

21.Prin intermediul unei functii sa se verifice daca


salariul angajatului cu id-ul X este mai mare decat
salariul mediu.Aceasta sa returneze o var. de tip boolean.

create or replace function verifica_salariul


(p_id angajati.id_angajat%type) RETURN boolean
IS
v_id_angajat angajati.id_angajat%type;
v_nume angajati.nume%type;
v_salariul angajati.salariul%type;
v_salariul_med angajati.salariul%type;
BEGIN
SELECT id_angajat,nume,salariul into
v_id_angajat,v_nume,v_salariul
from angajati
where id_angajat=p_id;
SELECT avg(salariul) into v_salariul_med from angajati;
IF v_salariul>v_salariul_med
then return true;
ELSE
return false;
end if;
EXCEPTION
when no_data_found then
return NULL;
end;
/
22.Sa se construiasca un subprogram de tip pachet care sa
efectueze operatiile de actualizare pentru tabela comenzi + o
functie pentru verificarea accesului la tabela.
CREATE OR REPLACE PACKAGE actualizare_comanda IS
procedure insert_comanda(nr comenzi.nr_comanda%type, data
comenzi.data_comanda%type,idC comenzi.id_client%type,stare
comenzi.stare_comanda%type,idA comenzi.id_angajat%type);
procedure modifica_comanda
(nr comenzi.nr_comanda%type, data comenzi.data_comanda
%type,idC comenzi.id_client%type,stare comenzi.stare_comanda
%type,idA comenzi.id_angajat%type);
procedure sterge_comanda (nr comenzi.nr_comanda%type);

function exista_comanda
(nr comenzi.nr_comanda%type);
return boolean;
exceptie exception;
END;
/
CREATE OR REPLACE PACKAGE BODY actualizare_comanda IS
procedure insert_comanda(nr comenzi.nr_comanda%type, data
comenzi.data_comanda%type,idC comenzi.id_client%type,stare
comenzi.stare_comanda%type,idA comenzi.id_angajat%type)
IS
BEGIN
if exista_comanda(nr) then raise exceptie;
else
insert into comenzi valuse(nr,data,idC,stare,idA);
end if ;
exception
when exception then dbms_out.put_line('Comanda existenta! ');
procedure modifica_comanda
(nr comenzi.nr_comanda%type, data comenzi.data_comanda
%type,idC comenzi.id_client%type,stare comenzi.stare_comanda
%type,idA comenzi.id_angajat%type)
IS
BEGIN
if exista_comanda(nr) then
update comenzi
set data_comanda=data,id_client=idC,stare_comanda=stare,
id_angaja=idA;
where nr_comanda=nr;
else
raise exceptie;
end if;
exception
when exceptie then
dbms_output.put_line('Comanda cu nr '||nr|| ' nu exista');
procedure sterge_comanda
(nr comenzi.nr_comanda%type)
is

begin
if exista_comanda(nr) then
delete from comenz
where nr_comanda=nr;
dbms_out.put_line('Comanda cu nr '||nr|| ' nu exista!');
end;
function exista_comanda
(nr comenz.nr_comanda%type)
return boolean
is
v_nr number;
select * into v_nr
from comenz
where nr_comanda=nr;
return true;
exception
when no_data_found then
return false;
end;
END;
/
23. Realizai un trigger care s nu permit depirea unei limite
maxime a salariului unui angajat.
CREATE or replace trigger restrictie
before insert or update on angajati
for each row
DECLARE
sal_max number;
BEGIN
select max(salariul) into sal_max from angajati where
id_funct :new.id_functie;
if :new.salariul>v_sal_max then
raise_application_error (-20202, 'Nu se poate depsi
salariul maxim');
end if;
END;
/

24.Sa se creeze un trigger pentru a nu permite depasirea


stocului maxim pentru produsul denumit Scaun Janin.
CREATE or REPLACE trigger restrict_cant
before INSERT or UPDATE on PRODUSE
for each row when (old.denumire_produs='Scaun Janin');
BEGIN
if :new.canitate_produs >20 then raise_application_error
(-20202, 'Cantitatea din produsul respectiv un poate fi depasita');
end if;
end;
/
UPDATE PRODUSE
set cantitate_produs=100;
where id_produs=1;

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