إنشاء دالة CREATE FUNCTION في SQL
يستخدم هذا الأمر لتعريف دالة جديدة، وله البنية العامّة الآتية:
CREATE [ OR REPLACE ] FUNCTION name ( [[argmode] [ argname ] argtype [, ...] ] ) [RETURNS rettype]
AS 'definition'
إذ ينشئ هذا الأمر دالةً جديدةً (أو يستبدلها في حال وجود دالة سابقة) باسم name
وتوضع معاملاتها ما بين القوسين وذلك بتحديد نوع المعامل argmode
(كدخل IN
أو خرج OUT
أو دخل وخرج معًا INOUT
) ومن ثم اسم المعامل argname
ونوع قيمته argtype
وكما يمكن تحديد نوع القيمة المُعادة rettype
.
أمثلة
لإنشاء دالة باسم add لجمع عددين صحيحين وإعادة الناتج، يُستخدَم الأمر:
CREATE FUNCTION add(x INTEGER, y INTEGER) RETURNS INTEGER AS
RETURN x + y;
لإنشاء دالة باسم hello تعيد العبارة النصية Hello مضافةً لها السلسلة s التي تدخل للدالة في لائحة المعاملات، يُستخدَم الأمر:
CREATE FUNCTION hello (s VARCHAR(20)) RETURNS VARCHAR(50) AS
RETURN CONCAT('Hello, ',s,'!');
إذ إن الدالة CONCAT
تستخدم للربط ما بين السلاسل النصية التي تدخل في معاملاتها.
لإنشاء دالة باسم get_count
تعيد عدد السجلات الموجودة في جدول students
عبر متحول باسم num
، يُستخدَم الأمر:
CREATE FUNCTION get_count (OUT num INTEGER) AS
SELECT COUNT(*) INTO num FROM students;
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | لا | نعم | نعم | نعم |
لا يدعم محرك SQLite الأمر CREATE FUNCTION
ويمكن القيام بذلك اعتمادًا على لغة البرمجة C.