الفرق بين المراجعتين لصفحة: «SQL/create function»

من موسوعة حسوب
< SQL
لا ملخص تعديل
 
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
 
سطر 44: سطر 44:
* [https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5009.htm توثيق CREATE FUNCTION في محرك Oracle]
* [https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5009.htm توثيق CREATE FUNCTION في محرك Oracle]
* [https://docs.microsoft.com/en-us/sql/t-sql/statements/create-function-transact-sql توثيق CREATE FUNCTION في محرك SQLServer]
* [https://docs.microsoft.com/en-us/sql/t-sql/statements/create-function-transact-sql توثيق CREATE FUNCTION في محرك SQLServer]
[[تصنيف:SQL]]
[[تصنيف:SQL|{{SUBPAGENAME}}]]
[[تصنيف:SQL Functions]]
[[تصنيف:SQL Functions|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 15:37، 28 يناير 2018

يستخدم هذا الأمر لتعريف دالة جديدة، وله البنية العامّة الآتية:

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.

مصادر