1-) Oracle PL -
KODLAR
//
SET SERVEROUTPUT ON;--ekrana çıktı vermesi için veya
SET SERVEROUTPUT ON SIZE 1000000000
0-)ornek aşağıda
SET SERVEROUTPUT ON SIZE 1000000000
DECLARE
TYPE myassociativearray IS TABLE OF NUMBER
INDEX BY PLS_INTEGER;
myarray myassociativearray;
BEGIN
myarray (150) := 25;
DBMS_OUTPUT.put_line (myarray(150));
END;
//
------
--t_deneme1 tablosundaki notlar alanı 22 olanın notuna %10 zam yapan cursor'u yazınız... ayrıyetten zam yapılan isim alanınıda da yazınız
declare cursor c1 is select * from t_deneme1;
al c1%rowtype;
begin
open c1;
loop
fetch c1 into al;
exit when c1%NOTFOUND;
update t_deneme1 set notlar=(notlar+notlar*0.1) where notlar=22;
if sql%rowcount<>0 then -- sql sorgusu çalışmış ise
dbms_output.put_line(al.isim);
end if;
end loop;
close c1;
end;
2-) PROSEDÜR
create or replace procedure topla(sayi1 number,sayi2 number) is
ortalama number ; begin
dbms_output.put_line(sayi1*sayi2);
end;
çağırmak
begin
topla(2,5);
end;
3-) fonksiyon
create or replace function deneme(sayi1 number,sayi2 number) return number is ortalama number;
begin
ortalama:= sayi1*sayi2;
return ortalama;
end;
çağırmak
begin
dbms_output.put_line(deneme(3,5));
end;
4-) sistem tarafından veya kullanıcı tarafından oluşturulmuş exception hatalar(zero_divide,others)
declare hata exception;
sayi1 number;
sayi2 number;
begin
sayi1:=3; sayi2:=0;
if sayi1=3 then raise hata; end if;
sayi1:=sayi1/sayi2;--bir üst satırla yer değişirsen sistem tarafından hata mesajı alırsın
exception
when hata then
dbms_output.put_line('kullanıcı tarafından');
when zero_divide then
dbms_output.put_line('sistemde var olan');
end;
5-)--kaç tane veriyi guncellediğini yazan komut
declare adet number;
begin
update t_deneme1 set notlar=20;
if sql%found then -- değişiklik olduysa
adet:=sql%rowcount;--satır sayısını
dbms_output.put_line(adet||' değişiklik yapıldı');
end if;
end;