ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ¾È³»¼­


¸Þ¼Òµå ¹× ÇÔ¼ö »ç¿ë

½ºÄ®¶ó ¹× Ä÷³ UDF ¹× ¸Þ¼Òµå´Â Ç¥Çö½ÄÀÌ À¯È¿ÇÑ SQL¹® ³»¿¡¼­ È£ÃâµÉ ¼ö ÀÖ½À´Ï´Ù.(À¯È¿¼ºÀ»Á¦ÇÑÇÏ´Â ¸ðµç Ä÷³ ÇÔ¼ö¿¡ ´ëÇÑ Ãß°¡ ±ÔÄ¢ÀÌ ÀÖ½À´Ï´Ù.) Å×À̺í UDF´Â SELECTÀÇ FROMÀý¿¡¼­¸¸ ÂüÁ¶µÉ ¼ö ÀÖ½À´Ï´Ù. SQL ÂüÁ¶¼­¿¡¼­´Â ÀÌ·¯ÇÑ ¸ðµç ¹®¸Æ¿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. ÀÌ Àý¿¡¼­ »ç¿ëµÇ´Â ³íÀÇ ¹× ¿¹´Â »ó´ëÀûÀ¸·Î °£´ÜÇÑ SELECT¹® ¹®¸ÆÀ» Áß½ÉÀ¸·Î ÇÏÁö¸¸, ±× »ç¿ëÀº ÀÌ·¯ÇÑ ¹®¸ÆÀ¸·Î Á¦ÇѵÇÁö ¾Ê½À´Ï´Ù.

ÇÔ¼ö °æ·Î ¹× ÇÔ¼ö ¼±Åà ¾Ë°í¸®ÁòÀÇ »ç¿ë ¹× Á߿伺¿¡ ´ëÇÑ ¿ä¾àÀº UDF ¹× Method °³³äÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. SQL ÂüÁ¶¼­¿¡ ÀÌ µÎ °³³ä ¸ðµÎ¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×ÀÌ ÀÖ½À´Ï´Ù. ÇÔ¼ö¿¡ ´ëÇÑ DML(Data Manipulation Language) ÂüÁ¶ÀÇ ÇØ»óµµ´Â ÇÔ¼ö ¼±Åà ¾Ë°í¸®ÁòÀ» »ç¿ëÇϹǷÎ, ÀÛµ¿ ¹æ¹ýÀ» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù.

ÇÔ¼ö ÂüÁ¶

UDF ÇÔ¼öÀÎÁö ³»Àå ÇÔ¼öÀÎÁö¿¡ °ü°è¾øÀÌ, ÇÔ¼ö¿¡ ´ëÇÑ °¢ ÂüÁ¶¿¡´Â ´ÙÀ½°ú °°Àº ±¸¹®ÀÌ µé¾î ÀÖ½À´Ï´Ù.

>>-function_name--(--+--------------------+---)----------------><
                     |  .-,------------.  |
                     |  V              |  |
                     '----expression---+--'
 

À§ ¿¹¿¡¼­ function_nameÀº ±ÔÁ¤È­µÇÁö ¾ÊÀº ÇÔ¼ö À̸§ ¶Ç´Â ±ÔÁ¤È­µÈ ÇÔ¼ö À̸§ÀÌ µÉ ¼ö ÀÖ°í, ÀμöÀÇ ¼ö´Â 0¿¡¼­ 90±îÁö °¡´ÉÇϸç, Ç¥Çö½Ä¿¡´Â ´ÙÀ½ »çÇ×ÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

ÀμöÀÇ À§Ä¡°¡ Áß¿äÇϰí, Àǹ̰¡ Á¤Á¤µÇ·Á¸é ÇÔ¼ö Á¤ÀǸ¦ µû¶ó¾ß ÇÕ´Ï´Ù. ÀμöÀÇ À§Ä¡¿Í ÇÔ¼ö Á¤ÀÇ´Â ÇÔ¼ö ³»¿ë ÀÚü¸¦ µû¶ó¾ß ÇÕ´Ï´Ù. DB2´Â ÇÔ¼ö Á¤ÀÇ¿Í ´õ Àß ÀÏÄ¡ÇÏ´Â Àμö¸¦ ¼¯À¸·Á ÇÏÁö ¾ÊÀ¸¸ç, DB2´Â °³º° ÇÔ¼ö ¸Å°³º¯¼öÀÇ Àǹ̸¦ ÀÌÇØÇÏÁö ¸øÇÕ´Ï´Ù.

UDF Àμö Ç¥Çö½Ä¿¡¼­ Ä÷³ À̸§À» »ç¿ëÇÒ ¶§´Â Ä÷³ÀÌ Æ÷ÇÔµÈ Å×À̺í ÂüÁ¶¿¡ ÀûÀýÇÑ ¹üÀ§°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. Á¶Àο¡¼­ ÂüÁ¶µÇ´Â Å×À̺í ÇÔ¼öÀÇ °æ¿ì, ÀÌ´Â ´Ù¸¥ Å×ÀÌºí ¶Ç´Â Å×À̺í ÇÔ¼ö·ÎºÎÅÍÀÇ Ä÷³À» Æ÷ÇÔ½ÃŰ´Â ÀμöÀÇ °æ¿ì ±× Å×ÀÌºí ¶Ç´Â Å×À̺í ÇÔ¼ö´Â FROMÀý¿¡¼­ ÂüÁ¶°¡ Æ÷ÇÔµÈ Å×À̺í ÇÔ¼ö ¾Õ¿¡ ³ª¿Í¾ß ÇÔÀ» ÀǹÌÇÕ´Ï´Ù. Å×À̺í ÇÔ¼ö Àμö¿¡¼­ÀÇ Ä÷³ »ç¿ë ±ÔÄ¢¿¡ ´ëÇÑ Àüü ³íÀÇ´Â SQL ÂüÁ¶¼­ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

ÇÔ¼ö È£Ãâ ¿¹

ÇÔ¼ö È£ÃâÀÇ À¯È¿ÇÑ ¸î°¡Áö ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù.

      AVG(FLOAT_COLUMN) 
      BLOOP(COLUMN1) 
      BLOOP(FLOAT_COLUMN + CAST(? AS INTEGER)) 
      BLOOP(:hostvar :indicvar) 
      BRIAN.PARSE(CHAR_COLUMN CONCAT USER, 1, 0, 0, 1) 
      CTR() 
      FLOOR(FLOAT_COLUMN) 
      PABLO.BLOOP(A+B) 
      PABLO.BLOOP(:hostvar) 
      "search_schema"(CURRENT FUNCTION PATH, 'GENE')
      SUBSTR(COLUMN2,8,3) 
      SYSFUN.FLOOR(AVG(EMP.SALARY)) 
      SYSFUN.AVG(SYSFUN.FLOOR(EMP.SALARY)) 
      SYSIBM.SUBSTR(COLUMN2,11,LENGTH(COLUMN3)) 
      SQRT(SELECT SUM(length*length) 
           FROM triangles 
           WHERE id= 'J522' 
           AND legtype <> 'HYP') 

À§ ÇÔ¼ö Áß¿¡¼­ Å×À̺í ÇÔ¼ö°¡ ÀÖ´Â °æ¿ì À̸¦ ÂüÁ¶ÇÏ´Â ±¸¹®Àº À§¿¡ Á¦½ÃµÈ ±¸¹®°ú´Â ¾à°£ Â÷À̰¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, PABLO.BLOOP°¡ Å×À̺í ÇÔ¼öÀÎ °æ¿ì Á¦´ë·Î ÂüÁ¶ÇÏ·Á¸é ´ÙÀ½À» »ç¿ëÇϽʽÿÀ.

     TABLE(PABLO.BLOOP(A+B)) AS Q

ÇÔ¼öÀÇ ¸Å°³º¯¼ö Ç¥½Ã¹®ÀÚ »ç¿ë

ÁÖ¿ä Á¦ÇÑ»çÇ׿¡´Â ¸Å°³º¯¼ö Ç¥½Ã¹®ÀÚ°¡ Æ÷ÇԵ˴ϴÙ. ´ÙÀ½À» ÄÚµåÈ­ÇÒ ¼ö ¾ø½À´Ï´Ù.

     BLOOP(?)

ÇÔ¼ö ¼±Åà ³í¸®°¡ ÀμöÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ ¾î¶»°Ô µÉ Áö ¾ËÁö ¸øÇϹǷΠÂüÁ¶¸¦ ºÐ¼®ÇÒ ¼ö ¾ø½À´Ï´Ù. CAST ½ºÆåÀ» »ç¿ëÇÏ¿© INTEGER¿Í °°Àº ¸Å°³º¯¼ö Ç¥½Ã¹®ÀÚ À¯ÇüÀ» Ç¥½ÃÇÒ ¼ö ÀÖ°í, ±×·¯¸é ÇÔ¼ö ¼±Åà ³í¸®°¡ ÁøÇàµÉ ¼ö ÀÖ½À´Ï´Ù.

     BLOOP(CAST(? AS INTEGER))

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶ »ç¿ë

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶¸¦ »ç¿ëÇÒ °æ¿ì ÀÏÄ¡ ÇÔ¼ö¿¡ ´ëÇÑ DB2 °Ë»öÀ» ±× ½ºÅ°¸¶·Î Á¦ÇÑÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº ¸í·É¹®ÀÌ ÀÖ½À´Ï´Ù.

     SELECT PABLO.BLOOP(COLUMN1) FROM T 

PABLO ½ºÅ°¸¶¿¡ ÀÖ´Â BLOOP ÇÔ¼ö¸¸ °í·ÁµË´Ï´Ù. SERGE »ç¿ëÀÚ°¡ BLOOP ÇÔ¼ö¸¦ Á¤ÀÇÇß´ÂÁö, ³»Àå BLOOP ÇÔ¼ö°¡ ÀÖ´ÂÁö´Â ¹®Á¦°¡ µÇÁö ¾Ê½À´Ï´Ù. PABLO »ç¿ëÀÚ°¡ ½ºÅ°¸¶¿¡ µÎ °³ÀÇ BLOOP ÇÔ¼ö¸¦ Á¤ÀÇÇß´Ù°í °¡Á¤ÇϽʽÿÀ.

     CREATE FUNCTION BLOOP (INTEGER) RETURNS ... 
     CREATE FUNCTION BLOOP (DOUBLE) RETURNS ...

µû¶ó¼­ BLOOP´Â PABLO ½ºÅ°¸¶ ³»¿¡¼­ ¿Àºê·ÎµåµÇ°í, ÇÔ¼ö ¼±Åà ¾Ë°í¸®ÁòÀº ÀμöÀÇ µ¥ÀÌÅÍ À¯Çü, column1¿¡ µû¶ó ÃÖ°íÀÇ BLOOP¸¦ ¼±ÅÃÇÕ´Ï´Ù. ÀÌ·± °æ¿ì, µÎ PABLO.BLOOP ¸ðµÎ ¼öÄ¡ Àμö¸¦ ÃëÇϸç, column1ÀÌ ¼öÄ¡ À¯Çü Áß Çϳª°¡ ¾Æ´Ñ °æ¿ì ¸í·É¹®ÀÌ ½ÇÆÐÇÕ´Ï´Ù. ¹Ý´ë·Î, column1ÀÌ SMALLINTÀ̰ųª INTEGERÀ̸é ÇÔ¼ö ¼±ÅÃÀº ù¹øÂ° BLOOP·Î µÇ°í, column1ÀÌ DECIMAL, DOUBLE, REAL ¶Ç´Â BIGINTÀ̸é, µÎ ¹øÂ° BLOOP°¡ ¼±Åõ˴ϴÙ.

ÀÌ ¿¹¿¡¼­ÀÇ ¸î°¡Áö À¯ÀÇ»çÇ×:

  1. ÀμöÀÇ ½Â°ÝÀ» º¸¿©ÁÝ´Ï´Ù. ù¹øÂ° BLOOP´Â INTEGER ¸Å°³º¯¼ö·Î Á¤ÀǵǾúÁö¸¸ ¿©±â¿¡ SMALLINT Àμö¸¦ Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö ¼±Åà ¾Ë°í¸®ÁòÀº ³»Àå µ¥ÀÌÅÍ À¯Çü¿¡¼­ÀÇ ½Â°ÝÀ» Áö¿øÇϰí(¼¼ºÎ»çÇ×Àº SQL ÂüÁ¶¼­ ÂüÁ¶) DB2´Â ÀûÀýÇÑ µ¥ÀÌÅÍ °ª º¯È¯À» ¼öÇàÇÕ´Ï´Ù.
  2. SMALLINT ¶Ç´Â INTEGER Àμö·Î µÎ ¹øÂ° BLOOP¸¦ È£ÃâÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ »ç¿ëÀÚ ¸í·É¹®¿¡¼­ ¸í½ÃÀûÀÎ Á¶Ä¡¸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
         SELECT PABLO.BLOOP(DOUBLE(COLUMN1)) FROM T
    
  3. ¾Æ´Ï¸é, DECIMAL ¶Ç´Â DOUBLE Àμö¿Í ÇÔ²² ù¹øÂ° BLOOP¸¦ È£ÃâÇÏ·Á¸é »ç¿ëÀÚÀÇ Àǵµ¿¡ µû¶ó ¸í½ÃÀûÀÎ Á¶Ä¡¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
         SELECT PABLO.BLOOP(INTEGER(COLUMN1)) FROM T
         SELECT PABLO.BLOOP(FLOOR(COLUMN1)) FROM T 
         SELECT PABLO.BLOOP(CEILING(COLUMN1)) FROM T 
         SELECT PABLO.BLOOP(INTEGER(ROUND(COLUMN1,0))) FROM T
    

    ±âŸ ÇÔ¼ö¸¦ °ËÅäÇÏ·Á¸é SQL ÂüÁ¶¼­ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. INTEGER ÇÔ¼ö´Â SYSIBM ½ºÅ°¸¶¿¡ ÀÖ´Â ³»Àå ÇÔ¼öÀÔ´Ï´Ù. FLOOR, CEILING ¹× ROUND ÇÔ¼ö´Â DB2¿Í ÇÔ²² Á¦°øµÇ´Â UDF·Î¼­, ´Ù¸¥ ¸¹Àº À¯¿ëÇÑ ÇÔ¼ö¿Í ÇÔ²² SYSFUN ½ºÅ°¸¶¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

±ÔÁ¤È­µÇÁö ¾ÊÀº ÇÔ¼ö ÂüÁ¶ »ç¿ë

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶ ´ë½Å ±ÔÁ¤È­µÇÁö ¾ÊÀº ÇÔ¼ö ÂüÁ¶¸¦ »ç¿ëÇÒ °æ¿ì ÀϹÝÀûÀ¸·Î DB2´Â ÀÏÄ¡ÇÏ´Â ÇÔ¼ö¸¦ °Ë»öÇÒ ¶§ ÀÌ ÇÔ¼ö °æ·Î¸¦ »ç¿ëÇÏ¿© ÂüÁ¶¸¦ ±ÔÁ¤È­ÇÕ´Ï´Ù. DROP FUNCTION ¶Ç´Â COMMENT ON FUNCTION ÇÔ¼öÀÇ °æ¿ì, ±ÔÁ¤È­µÇÁö ¾Ê¾ÒÀ¸¸é ÇöÀç ±ÇÇÑ ºÎ¿© ID¸¦ »ç¿ëÇÏ¿© ÂüÁ¶°¡ ±ÔÁ¤È­µË´Ï´Ù. µû¶ó¼­, ÇÔ¼ö °æ·Î°¡ ¹«¾ùÀÎÁö, ±×¸®°í ÇöÀç ÇÔ¼ö °æ·Î ½ºÅ°¸¶¿¡ ¾î¶² Ãæµ¹ ÇÔ¼ö°¡ Á¸ÀçÇÏ´ÂÁö ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, »ç¿ëÀÚ°¡ PABLOÀ̰í Á¤Àû SQL¹®Àº ´ÙÀ½°ú °°´Ù°í °¡Á¤ÇϽʽÿÀ. ¿©±â¼­ COLUMN1Àº INTEGER µ¥ÀÌÅÍ À¯ÇüÀÔ´Ï´Ù.

     SELECT BLOOP(COLUMN1) FROM T

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶ »ç¿ë¿¡ ÀοëµÈ µÎ °³ÀÇ BLOOP ÇÔ¼ö¸¦ ÀÛ¼ºÇß°í, ÀÌ Áß Çϳª¸¦ ¼±ÅÃÇÏ·Á°í ÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ±âº» ÇÔ¼ö °æ·Î°¡ »ç¿ëµÉ °æ¿ì (Ä÷³1ÀÌ INTEGERÀ̹ǷÎ) ù¹øÂ° BLOOP°¡ ¼±Åõǰí, SYSIBM ¶Ç´Â SYSFUN¿¡ Ãæµ¹ÇÏ´Â BLOOP°¡ ¾øÀ» °æ¿ì,

     "SYSIBM","SYSFUN","PABLO"

±×·¯³ª, ´Ù¸¥ ¸ñÀûÀ¸·Î ÀÌÀü¿¡ ÀÛ¼ºÇÑ »çÀü ó¸® ÄÄÆÄÀÏ ¹× ¹ÙÀεù¿ë ½ºÅ©¸³Æ®¸¦ »ç¿ëÇϰí ÀÖ´Ù´Â »ç½ÇÀ» Àؾú´Ù°í °¡Á¤ÇϽʽÿÀ. ÀÌ ½ºÅ©¸³Æ®¿¡¼­ ÇöÀç ÀÛ¾÷¿¡ Àû¿ëµÇÁö ¾Ê´Â ´Ù¸¥ ÀÌÀ¯·Î ´ÙÀ½°ú °°Àº ÇÔ¼ö °æ·Î¸¦ ÁöÁ¤Çϱâ À§ÇØ FUNCPATH ¸Å°³º¯¼ö¸¦ ¸í½ÃÀûÀ¸·Î ÄÚµåÈ­Çß½À´Ï´Ù.

     "KATHY","SYSIBM","SYSFUN","PABLO"

Kathy°¡ °³ÀοëÀ¸·Î BLOOP ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ °æ¿ì, ÀÌ ÇÔ¼ö ¼±ÅÃÀº KathyÀÇ ÇÔ¼ö·Î µÉ °¡´É¼ºÀÌ ¸Å¿ì ³ôÀ¸¸ç »ç¿ëÀÚÀÇ ¸í·É¹®Àº ¿À·ù ¾øÀÌ ½ÇÇàµÉ °ÍÀÔ´Ï´Ù. DB2´Â »ç¿ëÀÚ°¡ ¹«¾ùÀ» ¼öÇàÇϰí ÀÖ´ÂÁö ¾Ë°í ÀÖ´Ù°í ÀüÁ¦ÇϹǷΠ»ç¿ëÀÚ¿¡°Ô´Â À̰ÍÀÌ Å뺸µÇÁö ¾Ê½À´Ï´Ù. »ç¿ëÀÚ°¡ »ç¿ëÀÚ ¸í·É¹®À¸·ÎºÎÅÍ À߸øµÈ Ãâ·ÂÀ» ½Äº°ÇÏ¿© ÇÊ¿äÇÑ Á¤Á¤ Á¶Ä¡¸¦ ÃëÇØ¾ß ÇÕ´Ï´Ù.

ÇÔ¼ö ÂüÁ¶ ¿ä¾à

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶ ¹× ±ÔÁ¤È­µÇÁö ¾ÊÀº ÇÔ¼ö ÂüÁ¶ ¸ðµÎ¿¡ ´ëÇØ ÇÔ¼ö ¼±Åà ¾Ë°í¸®ÁòÀº ´ÙÀ½ Ç׸ñµéÀÌ ÀÖ´Â Àû¿ë°¡´ÉÇÑ ÇÔ¼öµé, ³»Àå ÇÔ¼ö ¹× »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¸¦ Æ÷ÇÔÇÑ ¸ðµç ÇÔ¼öµéÀ» °ËÅäÇÕ´Ï´Ù.

(Àû¿ë°¡´É ÇÔ¼ö¶õ ±ÔÁ¤È­µÈ ÂüÁ¶ÀÇ °æ¿ì ¸í¸íµÈ ½ºÅ°¸¶¿¡ ÀÖ´Â ÇÔ¼ö¸¦, ±ÔÁ¤È­µÇÁö ¾ÊÀº ÂüÁ¶ÀÇ °æ¿ì ÇÔ¼ö °æ·ÎÀÇ ½ºÅ°¸¶¿¡ ÀÖ´Â ÇÔ¼ö¸¦ ÀǹÌÇÕ´Ï´Ù.) ¾Ë°í¸®ÁòÀº ¿ì¼± ¿ÏÀüÇÏ°Ô ÀÏÄ¡ÇÏ´Â ÇÔ¼ö¸¦ ã°í, ±×·± ÇÔ¼ö°¡ ¾øÀ¸¸é °¡Àå ÀÏÄ¡ÇÏ´Â °ÍÀ» ã½À´Ï´Ù. ±ÔÁ¤È­µÇÁö ¾ÊÀº ÂüÁ¶¿¡ ÇÑÇØ, µ¿ÀÏÇÑ µÎ ÀÏÄ¡ Ç׸ñÀÌ ´Ù¸¥ ½ºÅ°¸¶¿¡ ÀÖ´Â °æ¿ì °áÁ¤ ¿äÀÎÀ¸·Î¼­ ÇöÀç ÇÔ¼ö °æ·Î°¡ »ç¿ëµË´Ï´Ù. ¾Ë°í¸®Áò¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº SQL ÂüÁ¶¼­ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

±ÔÁ¤È­µÈ ÇÔ¼ö ÂüÁ¶ »ç¿ë ³¡ºÎºÐ¿¡ ³ª¿À´Â ¿¹¿¡¼­ Á¦½ÃµÈ Èï¹Ì·Î¿î ±â´ÉÀº ÇÔ¼ö ÂüÁ¶°¡ ÁßøµÉ ¼ö ÀÖÀ¸¸ç, µ¿ÀÏÇÑ ÇÔ¼ö¸¦ ÂüÁ¶Çϱ⵵ ÇÕ´Ï´Ù. ÀÌ´Â UDF »Ó¸¸ ¾Æ´Ï¶ó ³»Àå ÇÔ¼öÀÇ °æ¿ì¿¡µµ ÀϹÝÀûÀ¸·Î Àû¿ëµË´Ï´Ù. ±×·¯³ª, Ä÷³ ÇÔ¼ö°¡ Æ÷Ç﵃ ¶§ ¸î°¡Áö Á¦ÇÑ»çÇ×ÀÌ ÀÖ½À´Ï´Ù.

¾ÕÀÇ ¿¹¸¦ Á¤¸®ÇØ º¸¸é ´ÙÀ½°ú °°½À´Ï´Ù.

     CREATE FUNCTION BLOOP (INTEGER) RETURNS INTEGER ...
     CREATE FUNCTION BLOOP (DOUBLE) RETURNS INTEGER ...

ÀÌÁ¦ ´ÙÀ½ DML¹®À» »ìÆì º¸½Ê½Ã¿À.

     SELECT BLOOP( BLOOP(COLUMN1)) FROM T

column1ÀÌ DECIMAL Ä÷³À̰ųª DOUBLE Ä÷³ÀÎ °æ¿ì ³»ºÎ BLOOP ÂüÁ¶´Â À§¿¡¼­ Á¤ÀÇµÈ µÎ ¹øÂ° BLOOPÀ¸·Î µË´Ï´Ù. ÀÌ BLOOP°¡ INTEGER¸¦ ¸®ÅÏÇϹǷÎ, ¿ÜºÎ BLOOP´Â ù¹øÂ° BLOOP·Î µË´Ï´Ù.

column1ÀÌ SMALLINT Ä÷³À̰ųª INTEGER Ä÷³ÀÎ °æ¿ì ³»ºÎ bloop ÂüÁ¶´Â À§¿¡¼­ Á¤ÀÇµÈ Ã¹¹øÂ° BLOOP°¡ µË´Ï´Ù. ÀÌ BLOOP°¡ INTEGER¸¦ ¸®ÅÏÇϹǷÎ, ¿ÜºÎ BLOOPµµ ù¹øÂ° BLOOP·Î µË´Ï´Ù. ÀÌ·± °æ¿ì µ¿ÀÏÇÑ ÇÔ¼ö¿¡ ´ëÇØ ÁßøµÈ ÂüÁ¶°¡ ³ªÅ¸³³´Ï´Ù.

ÇÔ¼ö ÂüÁ¶¿¡ Áß¿äÇÑ ¸î°¡Áö Ãß°¡ ÁöÁ¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]