| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 33. SQL È®Àå | Fast Forward | Next |
»ç¿ëÇÏ´Â ÀÎÀÚ°¡ ´Ù¸£´Ù¸é, °°Àº SQL¸íÀÇ ÇÔ¼ö¸¦ 1°³ÀÌ»ó Á¤ÀÇÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Áï, ÇÔ¼ö¸íÀº overload°¡ °¡´ÉÇÕ´Ï´Ù. Äõ¸®°¡ ½ÇÇàµÇ¾úÀ» ¶§, ¼¹ö´Â µ¥ÀÌÅÍÇü°ú ÁÖ¾îÁø ÀÎÀÚÀÇ ¼ö¿¡ ÀÇÇØ È£ÃâÇØ¾ß ÇÒ ÇÔ¼ö¸¦ °áÁ¤ÇÕ´Ï´Ù. ´Ù¾çÇÑ ÀÎÀÚÀÇ ¼ö¿Í, À¯ÇÑÇÑ ÃÖ´ë ¼ýÀÚ±îÁö ÀÌ¿ëÇÑ °¡»ó ÇÔ¼ö¸¦ ¿À¹ö·Îµå ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
¿À¹ö·Îµå ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ¶§, ¾Ö¸ÅÇÔÀÌ ¹ß»ýÇÏÁö ¾Ê°Ô ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°Àº ÇÔ¼ö¸¦ »ý°¢ÇØ º¸°Ú½À´Ï´Ù.
CREATE FUNCTION test(int, real) RETURNS ... CREATE FUNCTION test(smallint, double precision) RETURNS ...
test(1, 1.5)¿Í °°ÀÌ Æò¹üÇÑ ÀÔ·ÂÀ¸·Î ¾î´À ÂÊÀÇ ÇÔ¼ö¸¦ È£ÃâÇÏ´ÂÁö´Â ±×´ÙÁö ¸íÈ®ÇÏÁö´Â ¾Ê½À´Ï´Ù. ÇöÀç ±¸ÇöµÇ°í ÀÖ´Â ÇØ°á ±ÔÄ¢Àº Chapter 10¿¡¼ ¼³¸íÇϰí ÀÖ½À´Ï´Ù¸¸, ÀÌ µ¿ÀÛ¿¡ ±³¹¦ÇÏ°Ô ÀÇÁ¸Çϵµ·Ï ½Ã½ºÅÛÀ» ¼³°èÇÏ´Â °ÍÀº Ãßõ ÇÏÁö ¾Ê½À´Ï´Ù.
ÀϹÝÀûÀ¸·Î, 1°³ÀÇ º¹ÇÕÇüÀÇ ÀÎÀÚ¸¦ ÃëÇÏ´Â ÇÔ¼ö´Â, ±× ÇüÅÂÀÇ ¼Ó¼º(Çʵå)°ú °°Àº À̸§À» °¡Á®¼´Â ¾ÈµË´Ï´Ù. attribute(table)°¡ table.attribute¿Í µî°¡·Î °£ÁֵǴ °ÍÀ» »ý°¢ÇØ ÁÖ¼¼¿ä. º¹ÇÕÇü¿¡ ´ëÇÑ ÇÔ¼ö¿Í º¹ÇÕÇüÀÇ ¼Ó¼º°úÀÇ »çÀÌ¿¡ ¾Ö¸ÅÇÔÀÌ ÀÖ´Â °Í °°Àº °æ¿ì, Ç×»ó ¼Ó¼ºÀÌ »ç¿ëµË´Ï´Ù. ÀÌ ÇൿÀº ÇÔ¼ö¸íÀ» ½ºÅ°¸¶·Î ¼ö½ÄÇÏ´ÂÁö(Áï, schema.func(table))¿¡ µû¶ó º¯°æÇÒ ¼ö ÀÖÁö¸¸, Ãæµ¹ÇÏ´Â À̸§À» »ç¿ëÇÏÁö ¾Ê´Â °ÍÀ¸·Î ¹®Á¦¸¦ ¸·´Â ÆíÀÌ ÁÁÀ» °ÍÀÔ´Ï´Ù.
C¾ð¾î ÇÔ¼ö¸¦ ¿À¹ö·ÎµåÇÏ´Â °æ¿ì, ÇÑÃþ ´õ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù. ¿À¹ö·Îµå µÈ ÇÔ¼ö±º ³»ÀÇ °¢ ÇÔ¼öÀÇ CÀÇ À̸§Àº, ³»ºÎ³ª µ¿Àû ·Îµå °¡´ÉÇѰ¡¿¡ °ü°è¾øÀÌ ´Ù¸¥ ¸ðµç ÇÔ¼öÀÇ CÀÇ À̸§°ú ´Þ¶ó¾ß ÇÕ´Ï´Ù. ÀÌ ±ÔÄ¢¿¡ ¹ÝÇßÀ» °æ¿ì´Â, ÀÌ µ¿ÀÛÀº À̽ļºÀÌ ¾ø½À´Ï´Ù. ½ÇÇà½Ã ¸µÄ¿ ¿¡·¯°¡ µÉÁöµµ ¸ð¸£°í, ÇÔ¼ö±ºÀÇ ¾î¶² °Í(´ëºÎºÐÀº ³»ºÎ ÇÔ¼ö)ÀÌ ºÒ·Á °¥Áöµµ ¸ð¸¨´Ï´Ù. CREATE FUNCTION SQL ¸í·ÉÀÇ ´ë¾È Çü½ÄÀÇAS±¸´Â, SQL ÇÔ¼ö¸í°ú C ¼Ò½º ÄÚµå ³»ÀÇ ÇÔ¼ö¸íÀ» ºÐ¸®ÇÕ´Ï´Ù. ÀÌÇÏ¿¡ ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
CREATE FUNCTION test(int) RETURNS int
AS '
filename
', 'test_1arg'
LANGUAGE C;
CREATE FUNCTION test(int, int) RETURNS int
AS '
filename
', 'test_2arg'
LANGUAGE C;
¿©±â¼ÀÇ CÇÔ¼öÀÇ À̸§Àº ¿©·¯ ÃëÇÒ ¼ö ÀÖ´Â ±Ô¾à ÁßÀÇ Çϳª¸¦ ¹Ý¿µÇϰí ÀÖ½À´Ï´Ù.