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

Java »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ÀÛ¼º ¹× »ç¿ë

¸î°¡Áö Â÷ÀÌÁ¡À» Á¦¿ÜÇϰí´Â ´Ù¸¥ ¾ð¾î¿¡¼­¿Í ¸¶Âù°¡Áö·Î Java·Îµµ UDF¸¦ ÀÛ¼ºÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. UDF¸¦ ÄÚµùÇÑ ÈÄ, CREATE FUNCTION¹®À» »ç¿ëÇÏ¿© À̸¦ µ¥ÀÌÅͺ£À̽º¿¡ µî·ÏÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¸í·É¹®À» »ç¿ëÇÏ¿© Java UDF¸¦ µî·ÏÇÏ´Â °Í¿¡ ´ëÇÑ Á¤º¸´Â SQL ÂüÁ¶¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. ±×¸®°í³ª¼­ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ SQL¿¡¼­ À̸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. UDF´Â FENCED ¶Ç´Â NOT FENCED µÉ ¼ö ÀÖÀ¸¸ç, UDF ¼öÇà ¹æ½ÄÀ» ¼öÁ¤ÇÏ´Â ¿É¼ÇÀ» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Java UDF ½ÇÇà ¹æ¹ý º¯°æÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

ÀϺΠ»ùÇà Java UDF º»¹®ÀÌ UDFsrv.java »ùÇÿ¡¼­ Á¦°øµË´Ï´Ù. ¿¬°üµÈ CREATE FUNCTION¹®°ú ÀÌ·± UDF¸¦ È£ÃâÇÏ´Â ¿¹¸¦ UDFcli.java¿Í UDFclie.sqlj »ùÇÿ¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù. »ùÇà ¹× »ùÇÃÀÇ ÄÄÆÄÀϰú ¼öÇà¿¡ ´ëÇÑ README ÁöħÀº sqllib/samples/java µð·ºÅ丮¿¡¼­ ãÀ¸½Ê½Ã¿À.

Java UDF ÄÚµù

ÀϹÝÀûÀ¸·Î SQL À¯Çü t1, t2 ¹× t3¸¦ ¹Þ°í, À¯Çü t4¸¦ ¸®ÅÏÇÏ´Â UDF¸¦ ¼±¾ðÇÏ´Â °æ¿ì, À̰ÍÀº ¿¹»óµÈ Java ½Ã±×´Ïó¸¦ »ç¿ëÇÏ´Â Java ¸Þ¼Òµå¶ó°í ºÎ¸¨´Ï´Ù.

     public void name ( T1 a, T2 b, T3 c, T4 d)  { .....}

¿©±â¿¡¼­,

¿¹¸¦ µé¾î, INTEGER¸¦ ¸®ÅÏÇϰí, CHAR(5), BLOB(10K) ¹× DATE À¯ÇüÀÇ Àμö¸¦ ¹Þ¾ÆµéÀÌ´Â sample!test3À̶ó´Â UDF°¡ ÀÖÀ» ¶§, DB2¿¡¼­ UDFÀÇ Java ±¸Çö½Ã ´ÙÀ½°ú °°Àº ½Ã±×´Ïó°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

     import COM.ibm.db2.app.*;
     public class sample extends UDF {
        public void test3(String arg1, Blob arg2, String arg3,
                          int result) { ... }
     }

Å×À̺í ÇÔ¼ö¸¦ ±¸ÇöÇÏ´Â Java UDF¿¡´Â ´õ ¸¹Àº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÔ·ÂÀ» ³ªÅ¸³»´Â º¯¼öµé À̿ܿ¡ Ãß°¡ÀûÀÎ º¯¼ö°¡ °á°ú ÇàÀÇ °¢ Ä÷³¿¡ Ç¥½ÃµË´Ï´Ù. ¿¹¸¦ µé¾î Å×À̺í ÇÔ¼ö´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÉ ¼ö ÀÖ½À´Ï´Ù.

     public void test4(String arg1, int result1,
                       Blob result2, String  result3);

SQL NULL °ªÀº ÃʱâÈ­µÇÁö ¾ÊÀº Java º¯¼ö¿¡ ÀÇÇØ Ç¥½ÃµË´Ï´Ù. ÀÌ º¯¼öµéÀº ¿ø½Ã(primitive) À¯ÇüÀÎ °æ¿ì 0 °ªÀ» °®°í, ¿ÀºêÁ§Æ® À¯ÇüÀÎ °æ¿ì, Java ±ÔÄ¢¿¡ µû¶ó Java ³Î(NULL) °ªÀ» °®½À´Ï´Ù. SQL NULLÀ» ÀϹÝÀûÀÎ 0°ú ±¸ºÐÇÏ·Á¸é, ÀÔ·Â Àμö¿¡ ´ëÇÏ¿© isNull ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.

     { ....
        if (isNull(1)) { /* argument #1 was a SQL NULL */ }
        else           { /* not NULL */ }
     }

À§ÀÇ ¿¹¿¡¼­ Àμö ¹øÈ£´Â 1ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. isNull() ÇÔ¼ö´Â ´ÙÀ½¿¡ ³ª¿À´Â ´Ù¸¥ ÇÔ¼öµé°ú ¸¶Âù°¡Áö·Î COM.ibm.db2.app.UDF Ŭ·¡½º·ÎºÎÅÍ °è½ÂµË´Ï´Ù.

°á°ú¸¦ ½ºÄ®¶ó ¶Ç´Â Å×À̺í UDF·ÎºÎÅÍ ¸®ÅÏÇÏ·Á¸é, ´ÙÀ½°ú °°ÀÌ UDF¿¡¼­ set() ¸Þ¼Òµå¸¦ »ç¿ëÇϽʽÿÀ.

     { ....
        set(2, value);
     }

¿©±â¿¡¼­ '2'´Â Ãâ·Â Àμö »öÀÎÀ̰í, value´Â ȣȯ°¡´ÉÇÑ À¯ÇüÀÇ ¸®ÅÍ·² ¶Ç´Â º¯¼öÀÔ´Ï´Ù. Àμö ¹øÈ£´Â ¼±ÅÃµÈ Ãâ·ÂÀÇ Àμö ¸ñ·ÏÀÇ »öÀÎÀÔ´Ï´Ù. ÀÌ ÀýÀÇ Ã¹¹øÂ° ¿¹¿¡¼­ int result º¯¼ö´Â »öÀÎ 4¸¦ °®½À´Ï´Ù. µÎ¹øÂ°·Î result1¿¡¼­ result3Àº »öÀÎ 2¿¡¼­ 4¸¦ °®½À´Ï´Ù. UDF°¡ ¸®ÅÏÇϱâ Àü¿¡ ¼³Á¤µÇÁö ¾ÊÀº Ãâ·Â Àμö´Â ³Î(NULL) °ªÀ» °®°Ô µË´Ï´Ù.

UDF¿Í ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼­ »ç¿ëµÇ´Â C ¸ðµâ°ú ¸¶Âù°¡Áö·Î, Java UDF¿¡¼­ Java Ç¥ÁØ I/O ½ºÆ®¸²(System.in, System.out, ¹× System.err)À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Java UDFÀÇ ¿¹´Â sqllib/samples/java µð·ºÅ丮ÀÇ DB2Udf.java ÆÄÀÏÀ» ÂüÁ¶ÇϽʽÿÀ.

UDF¸¦ ±¸ÇöÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¸ðµç Java Ŭ·¡½º ÆÄÀϵéÀº sqllib/function directory ¶Ç´Â ÀûÀýÇÑ ¼­ºêµð·ºÅ丮¿¡ µé¾î ÀÖ¾î¾ß ÇÔÀ» ¸í½ÉÇϽʽÿÀ. Java Ŭ·¡½º¸¦ ³ÖÀ» À§Ä¡ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Java UDF ½ÇÇà ¹æ¹ý º¯°æ

ÀϹÝÀûÀ¸·Î DB2´Â UDF¸¦ ¿©·¯¹ø È£ÃâÇϴµ¥, Á¶È¸¿¡¼­ ÀÔ·Â ¶Ç´Â °á°ú ¼¼Æ®ÀÇ °¢ Çà¿¡ ÇÑ ¹ø¾¿ È£ÃâÇÏ°Ô µË´Ï´Ù. SCRATCHPAD°¡ UDFÀÇ CREATE FUNCTION¹®¿¡ ÁöÁ¤µÈ °æ¿ì, DB2´Â ¿¬¼ÓµÈ UDF È£Ãâ »çÀÌ¿¡ ƯÁ¤ "¿¬¼Ó¼º"ÀÌ ÇÊ¿äÇÔÀ» ÀνÄÇϹǷÎ, Java Ŭ·¡½º ±¸ÇöÀÌ °¢ È£Ãâ¿¡ ´ëÇÏ¿© ÀνºÅϽºÈ­µÇÁö ¾ÊÀ¸³ª, ÀϹÝÀûÀ¸·Î ¸í·É¹® ÇϳªÀÇ UDF ÂüÁ¶ Çϳª¿¡ ÇÑ ¹ø È£ÃâÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î ù¹øÂ° È£Ãâ ÀÌÀü¿¡ ÀνºÅϽºÈ­µÇ°í ±× ÈÄ¿¡ »ç¿ëµÇÁö¸¸, Å×À̺í ÇÔ¼öÀÇ °æ¿ì ´õ ÀÚÁÖ ÀνºÅϽºÈ­µÉ ¼ö ÀÖ½À´Ï´Ù. ´õ ÀÚ¼¼ÇÑ Á¤º¸´Â ´ÙÀ½¿¡ ³ª¿À´Â NO FINAL CALL ½ÇÇà ¸ðµ¨À» ÂüÁ¶ÇϽʽÿÀ.

±×·¯³ª NO SCRATCHPAD°¡ UDF ¶Ç´Â ½ºÄ®¶ó³ª Å×À̺í ÇÔ¼ö Áß Çϳª¿¡ ÁöÁ¤µÇ¸é, Ŭ¸° ÀνºÅϽº°¡ UDF¿¡ ´ëÇÑ °¢°¢ÀÇ È£Ãâ¿¡ ´ëÇØ ÀνºÅϽºÈ­µË´Ï´Ù.

½ºÅ©·¡Ä¡ ÆÐµå´Â UDF¿¡ ´ëÇÑ º¹¼ö È£Ãâ¿¡ °ÉÃÄ Á¤º¸¸¦ ÀúÀåÇÒ ¶§ À¯¿ëÇÕ´Ï´Ù. Java¿Í OLE UDF°¡ È£Ãâµé °£ÀÇ ¿¬¼Ó¼ºÀ» À¯ÁöÇϱâ À§ÇØ ÀνºÅϽº º¯¼ö¸¦ »ç¿ëÇϰųª ½ºÅ©·¡Ä¡ ÆÐµå¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¹Ý¸é, C³ª C++´Â ½ºÅ©·¡Ä¡ ÆÐµå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. Java UDF´Â COM.ibm.db2.app.UDF¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â getScratchPad()¿Í setScratchPad() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ½ºÅ©·¡Ä¡ ÆÐµå¿¡ ¾×¼¼½ºÇÕ´Ï´Ù.

½ºÅ©·¡Ä¡ ÆÐµå¸¦ »ç¿ëÇÏ´Â Java Å×À̺í ÇÔ¼öÀÇ °æ¿ì, Java¿¡ ´ëÇÑ Å×À̺í ÇÔ¼ö ½ÇÇà ¸ðµ¨ÀÇ ½ÇÇà ¸ðµ¨¿¡ ÀÇÇØ ¾Ë ¼ö ÀÖµíÀÌ CREATE FUNCTION¹®¿¡ FINAL CALLÀ̳ª NO FINAL CALL ¿É¼ÇÀ» »ç¿ëÇÏ¿© »õ·Î¿î ½ºÅ©·¡Ä¡ ÆÐµå ÀνºÅϽº¸¦ È®º¸ÇÏ´Â ½ÃÁ¡À» Á¦¾îÇϽʽÿÀ.

½ºÅ©·¡Ä¡ ÆÐµå¸¦ ÅëÇØ UDF¿¡ ´ëÇÑ È£Ãâµé °£ÀÇ ¿¬¼Ó¼ºÀ» À¯ÁöÇÒ ¼ö ÀÖ´Â ±â´ÉÀº, DB2 ½ºÅ©·¡Ä¡ ÆÐµå³ª ÀνºÅϽº º¯¼ö »ç¿ë ¿©ºÎ¿¡ »ó°ü¾øÀÌ CREATE FUNCTIONÀÇ SCRATCHPAD¿Í NO SCRATCHPAD ¿É¼Ç¿¡ ÀÇÇØ Á¦¾îµË´Ï´Ù.

½ºÄ®¶ó ÇÔ¼öÀÇ °æ¿ì, Àüü ¸í·É¹®¿¡ µ¿ÀÏÇÑ ÀνºÅϽº¸¦ »ç¿ëÇÕ´Ï´Ù.

°°Àº UDF°¡ ¿©·¯¹ø ÂüÁ¶µÇ´õ¶óµµ Á¶È¸¿¡¼­ Java UDF¿¡ ´ëÇÑ ¸ðµç ÂüÁ¶´Â µ¶¸³ÀûÀ¸·Î 󸮵ȴٴ Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. À̰ÍÀº OLE, C ¹× C++ UDF¿¡¼­ ¹ß»ýÇÏ´Â °Í°ú °°½À´Ï´Ù. ½ºÄ®¶ó ÇÔ¼ö¿¡ FINAL CALL ¿É¼ÇÀ» ÁöÁ¤ÇÑ °æ¿ì, Á¶È¸ Á¾·á½Ã ¿ÀºêÁ§Æ®ÀÇ close() ¸Þ¼Òµå°¡ È£ÃâµË´Ï´Ù. Å×À̺í ÇÔ¼öÀÇ °æ¿ì, close() ¸Þ¼Òµå´Â Ç×»ó ´ÙÀ½¿¡ ³ª¿À´Â ³»¿ë°ú °°ÀÌ È£ÃâµË´Ï´Ù. UDF Ŭ·¡½º¿¡ close() ¸Þ¼Òµå¸¦ Á¤ÀÇÇÏÁö ¾Ê´Â °æ¿ì, ½ºÅÓ ÇÔ¼ö°¡ Á¦¾î¸¦ ¹Þ¾Æ À̺¥Æ®°¡ ¹«½ÃµË´Ï´Ù.

CREATE FUNCTION¹®¿¡ Java¿¡ ´ëÇÑ ALLOW PARALLELÀýÀ» ÁöÁ¤ÇÏ´Â °æ¿ì, DB2´Â UDFÀÇ º´·Ä Æò°¡¸¦ ¼±ÅÃÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ¿©·¯ °³ÀÇ µ¶¸³µÈ Java ¿ÀºêÁ§Æ®°¡ ¼­·Î ´Ù¸¥ ÆÄƼ¼Ç¿¡¼­ ÀÛ¼ºµÉ ¼ö ÀÖ½À´Ï´Ù. °¢ ¿ÀºêÁ§Æ®´Â ÇàÀÇ ºÎ¼Ó ÁýÇÕÀ» ¼ö½ÅÇÕ´Ï´Ù.

´Ù¸¥ UDF¿¡¼­¿Í ¸¶Âù°¡Áö·Î Java UDF´Â FENCED ¶Ç´Â NOT FENCED µÉ ¼ö ÀÖ½À´Ï´Ù. NOT FENCED UDF´Â µ¥ÀÌÅͺ£À̽º ¿£ÁøÀÇ ÁÖ¼Ò °ø°£ ³»¿¡¼­ ¼öÇàµË´Ï´Ù. FENCED UDF´Â º°µµÀÇ ÇÁ·Î¼¼½º¿¡¼­ ¼öÇàµË´Ï´Ù. Java UDF°¡ »ðÀԵǾî ÀÖ´Â ÇÁ·Î¼¼½ºÀÇ ÁÖ¼Ò °ø°£À» ¼Õ»ó½Ãų ¼ö´Â ¾ø¾îµµ, ÇÁ·Î¼¼½º¸¦ Á¾·áÇϰųª ¼Óµµ¸¦ ´À¸®°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î Java·Î ÀÛ¼ºµÈ UDF¸¦ µð¹ö±×ÇÒ ¶§, À̵éÀ» FENCED UDF·Î ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.

COM.ibm.db2.app.UDF¿¡ ´ëÇÑ ¼³¸íÀº COM.ibm.db2.app.UDFÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. ÀÌ ÀÎÅÍÆäÀ̽º´Â setSQLstate ¹× getDBinfo¿Í °°Àº UDF ³»¿¡¼­ È£ÃâÇÒ ¼ö ÀÖ´Â ´Ù¸¥ À¯¿ëÇÑ È£ÃâµéÀ» ¼³¸íÇÕ´Ï´Ù.

Java¿¡ ´ëÇÑ Å×À̺í ÇÔ¼ö ½ÇÇà ¸ðµ¨

Java·Î ÀÛ¼ºµÈ Å×À̺í ÇÔ¼öÀÇ °æ¿ì, Å×À̺í ÇÔ¼ö¿¡ Áß¿äÇÑ ÇØ´ç ¸í·É¹®ÀÇ DB2 ó¸® »óÀÇ °¢ ÁöÁ¡¿¡¼­ ¾î¶°ÇÑ ÀϵéÀÌ ¹ß»ýÇÏ´ÂÁö¸¦ ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ´ÙÀ½ÀÇ Å×À̺íÀº ÀÌ Á¤º¸¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀÔ´Ï´Ù. °¢ »óÀÚÀÇ ¾Æ·¡ ºÎºÐ¿¡¼­´Â À¥¿¡¼­ ÀϺΠÁ¤º¸¸¦ °¡Á®¿À´Â ÀϹÝÀûÀÎ Å×À̺í ÇÔ¼ö¿¡ ´ëÇÏ¿© ÀÌ Äڵ带 ÀÛ¼ºÇÏ¿© ÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¹«¾ùÀÎÁö¸¦ º¸¿©ÁÝ´Ï´Ù. NO FINAL CALL°ú FINAL CALLÀÇ µÎ °¡Áö °æ¿ì ¸ðµÎ ¼³¸íµÇ¸ç, ÀÌ µÎ °¡Áö °æ¿ì ¸ðµÎ¿¡ SCRATCHPAD°¡ ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÕ´Ï´Ù.
½ºÄµ½Ã ½ÃÁ¡
NO FINAL CALL
LANGUAGE JAVA
SCRATCHPAD


FINAL CALL
LANGUAGE JAVA
SCRATCHPAD

Å×À̺í ÇÔ¼öÀÇ Ã¹¹øÂ° OPEN Àü È£Ãâ ¾øÀ½.
  • Ŭ·¡½º ±¸¼ºÀÚ°¡ È£ÃâµË´Ï´Ù(»õ·Î¿î ½ºÅ©·¡Ä¡ ÆÐµå¸¦ ÀǹÌ). UDF ¸Þ¼Òµå´Â FIRST È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù.
  • ±¸¼ºÀڴ Ŭ·¡½º¿Í ½ºÅ©·¡Ä¡ ÆÐµå º¯¼ö¸¦ ÃʱâÈ­ÇÕ´Ï´Ù. ¸Þ¼Òµå´Â À¥ ¼­¹ö¿¡ ¿¬°áµË´Ï´Ù.

Å×À̺í ÇÔ¼öÀÇ °¢ OPEN½Ã
  • Ŭ·¡½º ±¸¼ºÀÚ°¡ È£ÃâµË´Ï´Ù(»õ·Î¿î ½ºÅ©·¡Ä¡ ÆÐµå¸¦ ÀǹÌ). UDF ¸Þ¼Òµå´Â OPEN È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù.
  • ±¸¼ºÀڴ Ŭ·¡½º¿Í ½ºÅ©·¡Ä¡ ÆÐµå º¯¼ö¸¦ ÃʱâÈ­ÇÕ´Ï´Ù. ¸Þ¼Òµå´Â À¥ ¼­¹ö¿¡ ¿¬°áµÇ°í À¥ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ½ºÄµÀ» ¿±´Ï´Ù.

  • UDF ¸Þ¼Òµå°¡ OPEN È£Ãâ°ú ÇÔ²² ¿­¸³´Ï´Ù.
  • ¸Þ¼Òµå´Â ¿øÇÏ´Â À¥ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ½ºÄµÀ» ¿±´Ï´Ù. ½ºÅ©·¡Ä¡ ÆÐµå¿¡ ÀúÀåµÇ¾î ÀÖ´Â °Í¿¡ µû¶ó, CLOSE À§Ä¡ ÀçÁöÁ¤ ÈÄ ´Ù½Ã ¿­±â¸¦ ¹æÁöÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Å×À̺í ÇÔ¼ö µ¥ÀÌÅÍÀÇ »õ·Î¿î Çà¿¡ ´ëÇÑ °¢ FETCH½Ã
  • UDF ¸Þ¼Òµå°¡ FETCH È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù.
  • ¸Þ¼Òµå´Â µ¥ÀÌÅÍÀÇ ´ÙÀ½ Çà ¶Ç´Â EOT¸¦ ÆäÄ¡ÇÏ°í ¸®ÅÏÇÕ´Ï´Ù.

  • UDF ¸Þ¼Òµå°¡ FETCH È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù.
  • ¸Þ¼Òµå´Â µ¥ÀÌÅÍÀÇ »õ·Î¿î Çà ¶Ç´Â EOT¸¦ ÆäÄ¡ÇÏ°í ¸®ÅÏÇÕ´Ï´Ù.

Å×À̺í ÇÔ¼öÀÇ °¢ CLOSE½Ã
  • UDF ¸Þ¼Òµå´Â CLOSE È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù. Ŭ·¡½º¿¡ ´ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì, close() ¸Þ¼Òµå.
  • ¸Þ¼Òµå´Â À¥ ½ºÄµÀ» ´Ý°í À¥ ¼­¹ö¿ÍÀÇ ¿¬°áÀ» ÇØÁ¦ÇÕ´Ï´Ù. close()´Â ¾Æ¹« °Íµµ ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.

  • UDF ¸Þ¼Òµå´Â CLOSE È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù.
  • ¸Þ¼Òµå´Â ½ºÄµÀÇ ¸Ç À§·Î À§Ä¡¸¦ ÀçÁöÁ¤Çϰųª ½ºÄµÀ» ´ÝÀ» ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº ½ºÅ©·¡Ä¡ ÆÐµåÀÇ »óŸ¦ ÀúÀåÇÒ ¼ö Àִµ¥, À̰ÍÀº Áö¼ÓµË´Ï´Ù.

Å×À̺í ÇÔ¼öÀÇ ÃÖÁ¾ CLOSE ÈÄ È£Ãâ ¾øÀ½.
  • UDF ¸Þ¼Òµå´Â FINAL È£Ãâ°ú ÇÔ²² È£ÃâµË´Ï´Ù. Ŭ·¡½º¿¡ ´ëÇÏ¿© Á¸ÀçÇÏ´Â °æ¿ì, close() ¸Þ¼Òµå.
  • ¸Þ¼Òµå´Â À¥ ¼­¹ö¿ÍÀÇ ¿¬°áÀ» ÇØÁ¦ÇÕ´Ï´Ù. close()´Â ¾Æ¹« °Íµµ ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.

ÁÖ:

  1. "UDF ¸Þ¼Òµå"¶õ UDF¸¦ ±¸ÇöÇÏ´Â Java Ŭ·¡½º ¸Þ¼Òµå¸¦ ¸»ÇÕ´Ï´Ù. À̰ÍÀº CREATE FUNCTION¹®ÀÇ EXTERNAL NAMEÀý¿¡¼­ ½Äº°µÇ´Â ¸Þ¼ÒµåÀÔ´Ï´Ù.

  2. NO SCRATCHPAD°¡ ÁöÁ¤µÈ Å×À̺í ÇÔ¼öÀÇ °æ¿ì, UDF ¸Þ¼Òµå¿¡ ´ëÇÑ È£ÃâÀº ÀÌ Å×ÀÌºí¿¡ ÁöÁ¤µÈ´ë·ÎÀÌÁö¸¸, »ç¿ëÀÚ°¡ ½ºÅ©·¡Ä¡ ÆÐµå¸¦ ÅëÇØ ¾î¶°ÇÑ ¿¬¼Ó¼ºµµ ¿ä±¸ÇÏÁö ¾ÊÀ¸¹Ç·Î DB2´Â Ŭ·¡½º ±¸¼ºÀÚ¸¦ È£ÃâÇÔÀ¸·Î½á, °¢ È£Ãâ Àü¿¡ »õ·Î¿î ¿ÀºêÁ§Æ®°¡ ÀνºÅϽºÈ­ µÇµµ·Ï ÇÕ´Ï´Ù. NO SCRATCHPAD°¡ ÁöÁ¤µÈ(±×·¡¼­ ¿¬¼Ó¼ºÀÌ ¾ø´Â) Å×À̺í ÇÔ¼ö°¡ ¸Å¿ì À¯¿ëÇÑ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´ÂÁö´Â È®½ÇÇÏÁö ¾ÊÁö¸¸, Áö¿øÀº µË´Ï´Ù.

  3. ÀÌ ¸ðµ¨µéÀº ´Ù¸¥ UDF ¾ð¾îµé, Áï, C/C++ ¹× OLE¿¡¼­ ¼öÇàµÇ´Â °Íµé°ú ¿Ïº®ÇÏ°Ô È£È¯µË´Ï´Ù.


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