»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö(UDF)´Â SQL ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ¸·Î, À̰ÍÀº DB2¿¡ Á¦°øµÈ ³»Àå ÇÔ¼ö ¼¼Æ®·Î Ãß°¡µË´Ï´Ù. ƯÈ÷, À̹ÌÁö, ¿Àµð¿À ¹× ºñµð¿À ¿ÀºêÁ§Æ®¿¡¸¸ °íÀ¯ÇÑ Á¶ÀÛÀ» ¼öÇàÇÏ´Â UDF¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ºñµð¿ÀÀÇ ¾ÐÃà Çü½ÄÀ» È®º¸Çϰųª ¿Àµð¿ÀÀÇ »ùÇøµÀ²À» ¸®ÅÏÇÏ´Â UDF¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ƯÁ¤ À¯Çü ¿ÀºêÁ§Æ®ÀÇ ÇൿÀ» Á¤ÀÇÇÏ´Â ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ºñµð¿À ¿ÀºêÁ§Æ®´Â ºñµð¿À À¯Çü¿¡ ´ëÇØ ÀÛ¼ºµÈ ÇÔ¼ö ±¸¹®À¸·Î ÇൿÇϰí, À̹ÌÁö ¿ÀºêÁ§Æ®´Â À̹ÌÁö À¯Çü¿¡ ´ëÇØ ÀÛ¼ºµÈ ÇÔ¼ö ±¸¹®À¸·Î ÇൿÇÕ´Ï´Ù.
»ç¿ëÀÚ´Â SQL CREATE FUNCTION¹®À¸·Î UDF¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ¸í·É¹®Àº ´Ù¸¥ °Íµé »çÀÌ¿¡¼, UDF°¡ Àû¿ëµÉ ¼ö ÀÖ´Â µ¥ÀÌÅÍ À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ÀÇ ¸í·É¹®Àº ¸ÊÀÇ ÃàôÀ» °è»êÇÏ´Â map_scaleÀ̶ó´Â UDF¸¦ ÀÛ¼ºÇÕ´Ï´Ù. UDF°¡ ÀÚ½ÅÀÌ Àû¿ëµÉ ¼ö ÀÖ´Â µ¥ÀÌÅÍ À¯ÇüÀ¸·Î¼ mapÀ» ½Äº°ÇÔÀ» À¯ÀÇÇϽʽÿÀ. ÇÔ¼ö¸¦ ±¸ÇöÇÏ´Â ÄÚµå´Â C·Î ÀÛ¼ºµÇ°í EXTERNAL NAMEÀý¿¡¼ ½Äº°µË´Ï´Ù.
CREATE FUNCTION map_scale (map) RETURNS SMALLINT EXTERNAL NAME 'scale!map' LANGUAGE C PARAMETER STYLE DB2SQL NO SQL DETERMINISTIC NO EXTERNAL ACTION
UDF´Â ³»Àå ÇÔ¼ö¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î SQL¹®¿¡ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¿¹¿¡¼, map_scale UDF´Â grid¶ó´Â Å×À̺í Ä÷³¿¡ ÀúÀåµÈ ¸Ê ÃàôÀ» ¸®ÅÏÇÏ´Â SQL SELECT¹®¿¡ »ç¿ëµË´Ï´Ù.
SELECT map_scale (grid) FROM places WHERE location='SAN JOSE, CALIFORNIA'
°¢°¢ÀÇ DB2 Extender´Â ÀÚ½ÅÀÇ À¯Çü, Áï, À̹ÌÁö ƯÁ¤, ¿Àµð¿À ƯÁ¤ ¹× ºñµð¿À ƯÁ¤ UDF¿¡ ´ëÇÑ UDF ¼¼Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù. Å×ÀÌºí¿¡ À̹ÌÁö ÀúÀå, ºñµð¿ÀÀÇ ÇÁ·¹ÀÓÀ² È®º¸ ¶Ç´Â ¿Àµð¿À¿¡ ´ëÇÑ ÁÖ¼® Ãß°¡ µîÀÇ Extender ÇÔ¼ö¸¦ ¿äûÇÏ´Â SQL¹®¿¡ ÀÌ·¯ÇÑ UDF¸¦ »ç¿ëÇÕ´Ï´Ù.