Relyatsion ma’lumot modeli. Ma’lumotlar bazasida munosabatlar. Tranzaksiyalarni boshqarish reja


Download 34.16 Kb.
bet4/5
Sana24.12.2022
Hajmi34.16 Kb.
#1062620
1   2   3   4   5
Bog'liq
xoliqov Sardor 5-Mustaqil ishi (1)

Tranzaksiyalarni boshqarish
Funktsiya bu bir xil amallar ketma ketligini bajarish jarayonini bitta qolipga solib, qiymatni hisoblaydigan usuldir.
Funksiya sintaksisini va Oracle / PLSQL-da funktsiyalarni qanday yaratishni va o'chirishni misollar yordamida o'rganamiz.

Funktsiyani yaratish.
Boshqa dasturlash tillari singari, biz Oracleda o'z funktsiyalarimizni yaratishimiz mumkin.

Sintaksisi quyidagicha:


CREATE [OR REPLACE] FUNCTION funksiya_nomi
[ (parametr [, parametr, …]) ]
RETURN ma'lumot_turi IS | AS
[local e’lonlar]
BEGIN
bajariladigan amallar
[EXCEPTION
istisno holatlar]
END [funksiya_nomi];

Protsedura yoki funktsiyani yaratishda biz e'lon qilinishi mumkin bo'lgan parametrlarning uch turini aniqlashimiz mumkin:


IN - parametr protsedura yoki funktsiyaga murojaat qilishi mumkin. Protsedura yoki funktsiya bo'yicha parametr qiymatini o'zgartirib bo'lmaydi.
OUT - parametr protsedura yoki funktsiyani anglatmaydi, lekin protsedura yoki funktsiya orqali parametrning qiymati o'zgartirilishi mumkin.
IN OUT - parametr protsedura yoki funktsiyaga murojaat qilishi mumkin va parametr qiymatlari protsedura yoki funktsiya tomonidan o'zgartirilishi mumkin.
Misol
Oracleda funktsiyani yaratishga misol ko'ramiz.

Oracle PL/SQL




CREATE OR REPLACE Function FindCourse ( name_in IN varchar2 )
RETURN number IS cnumber number;
cursor c1 is SELECT course_number
FROM courses_tbl
WHERE course_name = name_in;
BEGIN
open c1;
fetch c1 into cnumber;
if c1%notfound then
cnumber := 9999;
end if;
close c1;
RETURN cnumber;
EXCEPTION    
WHEN OTHERS THEN    
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;

Ushbu funksiya FindCourse deb nomlanadi. Unda name_in bitta parametr mavjud va butun turdagi qiymatni qaytaradi. Agar funktsiya "course_name" ga asoslangan holda topilsa, funktsiya "course_number" ni qaytaradi. Aks holda, 99999 ni qaytaradi.
SQL so'rovida yangi funktsiyamizga quyidagicha murojaat qilishimiz mumkin:

SELECT course_name, FindCourse(course_name) AS course_id


FROM courses
WHERE subject = ‘Mathematics’;

Download 34.16 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling