آموزش زبان PL/SQL (توابع یا Function ) - درس پنجم......

نوشته شده توسط :
آموزش زبان PL/SQL (توابع یا Function ) - درس پنجم......

9- توابع (Function) :


مانند procedures ، توابع (Function) از یک گروه از دستورات PL/SQL تشکیل شده است ولی بر خلاف procedures ، یک تابع حتما باید یک مقدار را برگرداند.
توابع نیز در پایگاه داده مانند procedures ذخیره می شوند.



نحو ایجاد تابع:


-- function_name: نام تابع
-- parameter: پارامترهای ارسالی به تابع
-- return_datatype : نوع مقدار بازگشتی از تابع
-- declaration_section : تعریف متغیر درون تابعی
-- executable_section : دستورات درون تابع
-- exception_section : مدیریت خطا


CREATE [OR REPLACE] FUNCTION function_name
[ (parameter [,parameter]) ]

RETURN return_datatype

IS | AS

[declaration_section]

BEGIN
executable_section

[EXCEPTION
exception_section]

END [function_name];


هنگامی که شما یک procedure یا function را ایجاد می کنید، شما ممکن است پارامترهای تعریف کنید. سه نوع از پارامتر وجود دارد :

IN : این نوع پارامتر می تواند ارجاع شود توسط procedure یا function. که مقدار آن نمی تواند توسط procedure یا function جایگزین شود.
OUT : این نوع پارامتر نمی تواند ارجاع شود توسط procedure یا function. اما مقدار آن می تواند توسط procedure یا function جایگزین شود.
IN OUT : این نوع پارامتر می تواند ارجاع شود توسط procedure یا function.و مقدار آن می تواند توسط procedure یا function جایگزین شود.


در زیر مثالی آورده شده است :
- یک تابع با پارامتر ورودی


CREATE OR REPLACE FUNCTION Sum(a Integer, b Integer)
RETURN Integer
AS
Begin
return a + b;
End;

- یک تابع بدون پارامتر ورودی


CREATE OR REPLACE FUNCTION Get_Current_Datetime
RETURN Date
AS
Begin
return sysdate;
End;

 

برای حذف کردن یک تابع از دستور زیر استفاده نمایید :


DROP FUNCTION <function_name>;


همچنین برای فراخوانی تابع از طریق زیر می توانید اقدام نمایید :

SELECT cul1, function_name (variable_name) FROM table


همچنی می توانید با تعریف متغیر نیز اقدام به فراخوانی تابع نمایید :

c Integer;
....
c := Sum(10, 100);

یک مثال دیگر :

-- یک تابع با ورودی به نام (p_Emp_ID)

-- و با مقدار بازگشتی First_Name از جدول Employee



Create Or Replace Function Get_Emp_First_Name(p_Emp_Id Number)
Return Varchar2 As

v_Emp_First_Name Employee.First_Name%Type;
Begin
Begin
Select Emp.First_Name
Into v_Emp_First_Name
From Employee Emp
Where Emp.Emp_Id = p_Emp_Id;
Exception
When No_Data_Found Then

v_Emp_First_Name := Null;
End;

Return v_Emp_First_Name;
End;

فراخوانی تابع بالا در دستور select

Select Emp.Emp_Id
,Get_Emp_First_Name(Emp.Emp_Id) Emp_First_Name
From Employee Emp;


نتیجه اجرای دستور بالا :

 

 

آموزش PL/SQL :

1- معرفی

2- برای شروع به کار با PL/SQL به چه چیزی نیاز داریم

3- بررسی اجمالی PL / SQL

4- عبارات ساده PL / SQL

4.1- معرفی If-elsif-else

4.2- معرفی LOOP

4.3- معرفی FOR LOOP

4.4- معرفی WHILE LOOP

5- کار با PL/SQL در ابزار PL/SQL Developer

6- معرفی انواع داده های PL/SQLمتداول

6.1- نوع داده عددی در pl/sql

6.2- انواع داده متن

6،4- تعریف متغیر با type%

6،5- تعریف متغیر با Rowtype%

6،6- تعریف متغیر از نوع رکورد

6،7- تعریف متغیر از نوع جدول   (table)

6،8- تعریف متغیر از نوع آرایه (Array)

7- Cursor (مکان نمای)

7.1- Cursor (مکان نمای) چیست؟

7،2- Explicit cursor (مکان نمای صریح)

7،3- Implicit cursor (مکان نمای غیر صریح یا ضمنی)

8 - پروسیجر یا Stored procedure

9- توابع یا Function

10- تریگر Trigger

11- معرفی پکیج

11،1- ساخت پکیج در PL/SQL Developer

11،2- تست پکیج

معرفی اوراکل اپکس (oracle apex)