-PL/SQL sorgularımızı database’e saklamak için stored procesur haline getiririz.

——————PROCEDURE(YORDAM) —————-

create [or replace] procedure procedure_ismi is
begin
end;

———procedure çalıştırmak için———-

execute procedure_ismi;

————————PROCEDURE ÖRNEK-1————–

create or replace procedure pro_insert is
begin
insert into klinik values(3,’üroloji’);
commit;
end;
/

execute pro_insert;
select * from klinik;

—————–PROCEDURE ÖRNEK-2—————–

create or replace procedure pro_update (phasta_id in number,phasta_adi in varchar2) as
begin
update hastalar set hasta_adi=phasta_adi where hasta_id=phasta_id;
commit;
end;
/
select * from hastalar;

begin
pro_update(20,’semih’);
end;
/
select * from hastalar;
———————-PROCEDURE ÖRNEK-3——————

create or replace procedure pro_update2 (phasta_id in number,p_eski_hasta_adi varchar2, p_yeni_hasta_adi in varchar2) as
begin
update hastalar set hasta_adi=p_yeni_hasta_adi where hasta_id=phasta_id and hasta_adi=p_eski_hasta_adi;

IF SQL%ROWCOUNT = 0 THEN
RAISE_APPLICATION_ERROR(-20000, ‘Hasta adını değiştiremediniz!.’);
END IF;
commit;
end;
/
select * from hastalar;

begin
pro_update2(20,’asli’,’asiye’);
end;
/

select * from hastalar;

———————PROCEDURE ÖRNEK-4————

alter table hastalar add son_update TIMESTAMP DEFAULT SYSTIMESTAMP;
set line 200;
select * from hastalar;

UPDATE hastalar SET son_update = SYSTIMESTAMP;
COMMIT;

——————————–
create or replace procedure pro_update3 (phasta_id in number, p_yeni_hasta_adi in varchar2) as
begin
update hastalar set hasta_adi=p_yeni_hasta_adi,son_update=SYSTIMESTAMP
where hasta_id=phasta_id;

IF SQL%ROWCOUNT = 0 THEN
RAISE_APPLICATION_ERROR(-20000, ‘Hasta adını değiştiremediniz!.’);
END IF;
commit;
end;
/
select * from hastalar;

begin
pro_update3(20,’asli’);
end;
/
—————PROCEDURE ÖRNEK-5——————–

create or replace procedure pro_insert2(klinik_id number,klinik_adi varchar2) is
begin
insert into klinik values(klinik_id,klinik_adi);
commit;
end;
/

execute pro_insert2 (7,’kadın dogum’);