Vous êtes sur la page 1sur 8

ALAYA Oumaima

Compte rendu TP4 : Atelier SGBD


Alaya Oumaima DSI1.2(Groupe1)

1)
create or replace procedure sal_emp (emp_id in employees.employee_id%type,sal_men out
employees.salary%type,sal_ann out employees.salary%type) is

begin

select salary*12 , salary into sal_men,sal_ann

from employees

where employee_id=emp_id;

end sal_emp;

declare

emp_sal_men employees.salary%type;

emp_sal_ann employees.salary%type;

begin

sal_emp(171,emp_sal_men,emp_sal_ann);

dbms_output.put_line('le salaire mensuel est: '||emp_sal_ann||' le salaire annuel est:


'||emp_sal_men);

end;

le salaire mensuel est: 8140 le salaire annuel est: 97680

1
ALAYA Oumaima

2)
create or replace procedure history_emp (f_job varchar2) is
cursor emp_cur is
select * from job_history
where job_id=f_job;
begin
for emp_record in emp_cur loop
dbms_output.put_line('l''employee id: '||emp_record.employee_id||' start date:
'||emp_record.start_date||' end date: '||emp_record.end_date||' department id:
'||emp_record.department_id||' job title: '||emp_record.job_id);
end loop;
end history_emp;
/
execute history_emp('SA_REP')
l'employee id: 176 start date: 24/03/06 end date: 31/12/06 department id: 80 job
title: SA_REP

3)
create or replace procedure affiche_emp (job in employees.job_id%type, dep_id in
employees.department_id%type) is
cursor emp_cur is
select last_name,first_name,salary from employees
where job_id=job and department_id=dep_id;
begin
for record in emp_cur loop
dbms_output.put_line('le nom est: '||record.last_name||' le prenom est:
'||record.first_name||' le salaire est: '||record.salary);
end loop;
end affiche_emp;
/

2
ALAYA Oumaima

execute affiche_emp('SA_REP',80);
le nom est: Tucker le prenom est: Peter le salaire est: 11000
le nom est: Bernstein le prenom est: David le salaire est: 10450
le nom est: Hall le prenom est: Peter le salaire est: 9900
le nom est: Olsen le prenom est: Christopher le salaire est: 8800
le nom est: Cambrault le prenom est: Nanette le salaire est: 8250
le nom est: Tuvault le prenom est: Oliver le salaire est: 7700
le nom est: King le prenom est: Janette le salaire est: 11000
le nom est: Sully le prenom est: Patrick le salaire est: 10450
le nom est: McEwen le prenom est: Allan le salaire est: 9900
le nom est: Smith le prenom est: Lindsey le salaire est: 8800
le nom est: Doran le prenom est: Louise le salaire est: 8250
le nom est: Sewall le prenom est: Sarath le salaire est: 7700
le nom est: Vishney le prenom est: Clara le salaire est: 11550
le nom est: Greene le prenom est: Danielle le salaire est: 10450
le nom est: Marvins le prenom est: Mattea le salaire est: 7920
le nom est: Lee le prenom est: David le salaire est: 7480
le nom est: Ande le prenom est: Sundar le salaire est: 7040
le nom est: Banda le prenom est: Amit le salaire est: 6820
le nom est: Ozer le prenom est: Lisa le salaire est: 12650
le nom est: Bloom le prenom est: Harrison le salaire est: 11000
le nom est: Fox le prenom est: Tayler le salaire est: 10560
le nom est: Smith le prenom est: William le salaire est: 8140
le nom est: Bates le prenom est: Elizabeth le salaire est: 8030
le nom est: Kumar le prenom est: Sundita le salaire est: 6710
le nom est: Abel le prenom est: Ellen le salaire est: 12100
le nom est: Hutton le prenom est: Alyssa le salaire est: 9680
le nom est: Taylor le prenom est: Jonathon le salaire est: 10406
le nom est: Livingston le prenom est: Jack le salaire est: 9240
le nom est: Johnson le prenom est: Charles le salaire est: 6820

3
ALAYA Oumaima

4)
create or replace procedure emp_by_city (ville in locations.city%type) is

cursor emp_cur is

select last_name,first_name,salary from employees

join departments using(department_id)

join locations using(location_id)

where city=ville;

begin

for record in emp_cur

LOOP

dbms_output.put_line('le nom est: '||record.last_name||' le prenom est:


'||record.first_name||' le salaire est: '||record.salary);

end loop;

end emp_by_city;

*************************

execute emp_by_city('Oxford')

le nom est: Russell le prenom est: John le salaire est: 15400

le nom est: Partners le prenom est: Karen le salaire est: 14850

le nom est: Errazuriz le prenom est: Alberto le salaire est: 13200

le nom est: Cambrault le prenom est: Gerald le salaire est: 12100

le nom est: Zlotkey le prenom est: Eleni le salaire est: 11550

le nom est: Tucker le prenom est: Peter le salaire est: 11000

le nom est: Bernstein le prenom est: David le salaire est: 10450

le nom est: Hall le prenom est: Peter le salaire est: 9900

le nom est: Olsen le prenom est: Christopher le salaire est: 8800

le nom est: Cambrault le prenom est: Nanette le salaire est: 8250

4
ALAYA Oumaima

le nom est: Tuvault le prenom est: Oliver le salaire est: 7700

le nom est: King le prenom est: Janette le salaire est: 11000

le nom est: Sully le prenom est: Patrick le salaire est: 10450

le nom est: McEwen le prenom est: Allan le salaire est: 9900

le nom est: Smith le prenom est: Lindsey le salaire est: 8800

le nom est: Doran le prenom est: Louise le salaire est: 8250

le nom est: Sewall le prenom est: Sarath le salaire est: 7700

le nom est: Vishney le prenom est: Clara le salaire est: 11550

le nom est: Greene le prenom est: Danielle le salaire est: 10450

le nom est: Marvins le prenom est: Mattea le salaire est: 7920

le nom est: Lee le prenom est: David le salaire est: 7480

le nom est: Ande le prenom est: Sundar le salaire est: 7040

le nom est: Banda le prenom est: Amit le salaire est: 6820

le nom est: Ozer le prenom est: Lisa le salaire est: 12650

le nom est: Bloom le prenom est: Harrison le salaire est: 11000

le nom est: Fox le prenom est: Tayler le salaire est: 10560

le nom est: Smith le prenom est: William le salaire est: 8140

le nom est: Bates le prenom est: Elizabeth le salaire est: 8030

le nom est: Kumar le prenom est: Sundita le salaire est: 6710

le nom est: Abel le prenom est: Ellen le salaire est: 12100

le nom est: Hutton le prenom est: Alyssa le salaire est: 9680

le nom est: Taylor le prenom est: Jonathon le salaire est: 10406

le nom est: Livingston le prenom est: Jack le salaire est: 9240

le nom est: Johnson le prenom est: Charles le salaire est: 6820

5
ALAYA Oumaima

5)
create or replace function job_n (job_title employees.job_id%type) return number is

n number ;

begin

select count(job_id) into n from employees

where job_id=job_title;

return n;

end job_n;

**************************

variable nn number

execute :nn := job_n('ST_CLERK')

print :nn

NN

----------

20

execute dbms_output.put_line('Le nombre est: '||job_n('ST_CLERK'))

Le nombre est: 20

6)
create or replace function sal_ag (emp_id employees.employee_id%type) return number
is

sal_augmente employees.salary%type;

begin

select salary+salary*nvl(commission_pct,1) into sal_augmente from employees

where employee_id=emp_id;

6
ALAYA Oumaima

return sal_augmente;

end sal_ag;

*********************

execute dbms_output.put_line('le salaire augmente est: '||sal_ag(103))

le salaire augmente est: 19800

7)
create or replace function ville_dep (dep_name departments.department_name%type)
return varchar2 is

ville locations.city%type;

l departments.location_id%type;

begin

select location_id into l from departments

where department_name=dep_name;

select city into ville from locations

where location_id=l;

return ville;

end ville_dep;

**************************

execute dbms_output.put_line('ville est :'||ville_dep('Sales'))

ville est :Oxford

8)
create or replace function n_emp(ville locations.city%type) return number is

n number ;

7
ALAYA Oumaima

begin

select count(employee_id) into n from employees

join departments using (department_id)

join locations using (location_id)

where city=ville;

return n;

end n_emp;

******************

execute dbms_output.put_line('le nombre d''employees est: :'||n_emp('Oxford'))

le nombre d'employees est: :34

9)
create or replace function poste_emp (emp_id employees.employee_id%type) return
varchar2 is

intitule jobs.job_title%type;

begin

select job_title into intitule from jobs join employees

on (jobs.job_id=employees.job_id)

and employee_id=emp_id;

return intitule;

end poste_emp;

************

execute dbms_output.put_line(poste_emp(103))

Programmer

Vous aimerez peut-être aussi