Ndertoni nje procedure qe merr si argument dy numra dhe kthen maksimumin e tyre.
CREATE or replace PROCEDURE findmax(x IN number, y IN number, z OUT number) IS
BEGIN
IF x > y THEN
z:= x;
ELSE
z:= y;
END IF;
END;
Ta perdorim proceduren
SET SERVEROUTPUT ON
DECLARE
numri1 number;
numri2 number;
m number;
BEGIN
numri1:=&n1;
numri2:=&n2;
findmax(numri1,numri2,m);
dbms_output.put_line(' max midis '||numri1||' dhe '||numri2||' eshte : ' ||m);
END;
Ushtrim 2
Ndertoni nje procedure qe ngre nje numer ne rrenje katrore. {Procedur me nje argument hyres dhe dales}
CREATE OR REPLACE PROCEDURE squareNum
(
x IN OUT number
)
IS
BEGIN
x := x * x;
END;
Ta perdorim proceduren
set serveroutput on
DECLARE
n number;
BEGIN
n:=&numri;
squareNum(n);
dbms_output.put_line('numri i ngritur ne rrenje katrore eshte: '||n);
END;
Ushtrim 3
Ndertoni nje procedure qe mer si argument kodin e nje punonjesi dhe kthen emrin dhe mbiemrin e tij ne dy variabla dales
Zgjidhje
CREATE OR REPLACE PROCEDURE pun
(
eid IN number,
emri out varchar2,
mbiemri OUT varchar2
)
IS
--seksioni i deklarimit
BEGIN
select first_name,last_name into emri,mbiemri
from employees where employee_id=eid;
END;
Ta perdorim
SET SERVEROUTPUT ON
DECLARE
eid number;
emri varchar2(50);
mbiemri varchar2(50);
BEGIN
eid:=&n;
pun(eid,emri,mbiemri);
dbms_output.put_line(' emri i '||eid||' eshte '||emri||' mbiemri : ' ||mbiemri);
END;
Ushtrim 4
Ndertoni nje procedure qe merr si argument kodin e nje punonjesi dhe kthen emrin,mbiemrin,emrin e departamentit ku ai punon, emeretiin e pozicionit te punes, dhe numrin e hereve qe ka ndryshuar pozicion pune.
create or replace procedure proc1
(
eid IN number,
emri OUT varchar(50),
mbiemri OUT varchar(50),
departamenti OUT varchar(50),
puna OUT varchar,
here OUT number
)
IS
BEGIN
SELECT FIRST_NAME,LAST_NAME INTO emri,mbiemri
FROM EMPLOYEES
WHERE Employee_id=eid;
SELECT department_name INTO departamenti
from Departments d JOIN Employees e
on d.department_id=e.department_id
where e.employee_id=eid;
SELECT COUNT(*) INTO here
FROM Job_History
where employee_id=eid;
END;
Ushtrim 5
Ndertoni nje procedure qe merr si argument te dhenat e nje punonjesi {si ne prototipin me poshte} , e shton ate ne tabelen e punonjesve {Employees} dhe kthen kodin qe iu caktua ketij punonjesi
Prototipi
CREATE OR REPLACE PROCEDURE shtopun
(
emri in varchar2,
mbiemri in varchar2,
email in varchar2,
hire_date in date:=sysdate,
job_id in varchar2,
kodi out number
)
Zgjidhje
CREATE OR REPLACE PROCEDURE shtopun
(
emri in varchar2,
mbiemri in varchar2,
email in varchar2,
hire_date date:=sysdate,
job_id varchar2,
kodi out number
)
IS
--seksioni i deklarimit
BEGIN
insert into employees(Employee_id,First_name,Last_name,email,hire_date,job_id)
Ndertoni nje procedure e cila merr dy argumenta hyres:
- numrin e viteve te punes (vite psh 10)
- koeficientin e rritjes se pages (rritje psh 1.1)
- daten , ne te cilen do te llogaritet vjetersia e punes
dhe nje argument dales:
- punonjes
procedura rrit pagat e punonjesve qe kane me shume se vite vite pune ne pozicionin aktual te punes ne daten e dhene si argument me koeficientin rritje ( salary*rritje)
Procedura kthen numrin e punonjesve te cileve iu be nje rritje page