ÀÌÁ¦ºÎÅÍ PARAMETER STYLE DB2GENERAL UDF ¹× Java·Î ÀÛ¼ºµÈ ÀúÀå ÇÁ·Î½Ãµà¾î´Â ´Ü¼øÈ÷ Java UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î·Î ¾ð±ÞÇÕ´Ï´Ù. DB2GENERAL UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î ÀÛ¼º ÇÁ·Î¼¼½º´Â Áö¿øµÇ´Â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ ÀÛ¼ºÇÒ¶§¿Í ¾ÆÁÖ ºñ½ÁÇÕ´Ï´Ù. ÀÏ´Ü ÀÛ¼ºÇÏ¿© µî·ÏÇÏ¸é ¾î¶² ¾ð¾îÀÇ ÇÁ·Î±×·¥¿¡¼µç À̸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸Åë ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ JDBC API¸¦ È£ÃâÇÒ ¼ö ÀÖÁö¸¸ UDF¿¡¼´Â È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.
PARAMETER STYLE DB2GENERAL UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ È£ÃâÇϸé
Ç¥ 54¿¡ ¼³¸íµÈ ´ë·Î DB2¿¡¼ ÀÚµ¿À¸·Î SQL À¯ÇüÀ»
Java À¯ÇüÀ¸·Î ¶Ç´Â ±× ¹Ý´ë·Î º¯È¯ÇÕ´Ï´Ù.
ÀÌ·± Ŭ·¡½º Áß ¸î °¡Áö°¡ Java ÆÐŰÁö COM.ibm.db2.app¿¡
³ª¿Í ÀÖ½À´Ï´Ù.
Ç¥ 54. DB2 SQL À¯Çü ¹× Java ¿ÀºêÁ§Æ®
SQL Ä÷³ À¯Çü | Java À¯Çü(UDF) | Java À¯Çü(ÀúÀå ÇÁ·Î½Ãµà¾î) |
---|---|---|
SMALLINT (500/501) | short | short |
INTEGER (496/497) | int | int |
BIGINT (492/493) | long | long |
FLOAT (480/481) | double | double |
REAL (480/481)(TBLST1) | float | float |
DECIMAL(p,s) (484/485) | java.math.BigDecimal | java.math.BigDecimal |
NUMERIC(p,s) (504/505) | java.math.BigDecimal | java.math.BigDecimal |
CHAR(n) (452/453) | String | String |
CHAR(n) FOR BIT DATA (452/453) | Blob | Blob |
C null-terminated string (400/401)(TBLST2) | n/a | String |
VARCHAR(n)(448/449) | String | String |
VARCHAR(n) FOR BIT DATA (448/449) | Blob | Blob |
LONG VARCHAR (456/457) | String | String |
LONG VARCHAR FOR BIT DATA (456/457) | Blob | Blob |
GRAPHIC(n) (468/469) | String | String |
C null-terminated graphic string (460/461)(TBLST2) | n/a | String |
VARGRAPHIC(n) (464/465) | String | String |
LONG VARGRAPHIC (472/473)(TBLST3) | String | String |
BLOB(n)(404/405)(TBLST3) | Blob | Blob |
CLOB(n) (408/409)(TBLST3) | Clob | Clob |
DBCLOB(n) (412/413)(TBLST3) | Clob | Clob |
DATE (384/385)(TBLST4) | String | String |
TIME (388/389)(TBLST4) | String | String |
TIMESTAMP (392/393)(TBLST4) | String | String |
ÁÖ:
|
COM.ibm.db2.app.Blob ¹× COM.ibm.db2.app.Clob Ŭ·¡½ºÀÇ ÀνºÅϽº´Â LOB µ¥ÀÌÅÍ À¯Çü Áï, BLOB, CLOB ¹× DBCLOB¸¦ Ç¥½ÃÇÕ´Ï´Ù. ÀÌ·± Ŭ·¡½º¿¡¼´Â ÀÔ·ÂÀ¸·Î Àü´ÞµÈ LOB¸¦ Àаí Ãâ·ÂÀ¸·Î ¸®ÅÏµÈ LOB¸¦ ¾²´Â Á¦ÇÑµÈ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÕ´Ï´Ù. Java ÀÔÃâ·Â ½ºÆ®¸² ¿ÀºêÁ§Æ®¸¦ ÅëÇØ LOB¸¦ ÀÐ°í ¾¹´Ï´Ù. BLOB Ŭ·¡½ºÀÇ °æ¿ì getInputStream() ¹× getOutputStream() ·çƾÀº InputStream ¶Ç´Â OutputStream ¿ÀºêÁ§Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. BLOB ³»¿ëÀº ÀÌ ¿ÀºêÁ§Æ®¸¦ ÅëÇØ ƯÁ¤ ½Ã±â¿¡ ¹ÙÀÌÆ® ´ÜÀ§·Î ó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. CLOBÀÇ °æ¿ì getReader() ¹× getWriter() ·çƾÀº Reader ¶Ç´Â Writer ¿ÀºêÁ§Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. CLOB ¶Ç´Â DBCLOB ³»¿ëÀº ÀÌ ¿ÀºêÁ§Æ®¸¦ ÅëÇØ ƯÁ¤ ½Ã±â¿¡ ¹®ÀÚ ´ÜÀ§·Î ó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
set() ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© ÀÌ·± ¿ÀºêÁ§Æ®¸¦ Ãâ·ÂÀ¸·Î ¸®ÅÏÇÒ °æ¿ì µ¥ÀÌÅͺ£À̽º ÄÚµå ÆäÀÌÁöÀÇ Java À¯´ÏÄÚµå ¹®ÀÚ¸¦ Ç¥½ÃÇϵµ·Ï ÄÚµå ÆäÀÌÁö º¯È¯ÀÌ Àû¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
Java ÀúÀå ÇÁ·Î½Ãµà¾î´Â Java UDF¿Í ¾ÆÁÖ ºñ½ÁÇÕ´Ï´Ù. Å×À̺í ÇÔ¼ö¿Í °°ÀÌ ÀÌ ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ Ãâ·ÂÀº ¿©·¯ °¡ÁöÀÏ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ ³Î(NULL) °ª¿¡ ´ëÇØ µ¿ÀÏ º¯È¯À» »ç¿ëÇϰí Ãâ·ÂÀ» À§ÇØ µ¿ÀÏ set ·çƾÀ» »ç¿ëÇÕ´Ï´Ù. ÁÖ¿ä Â÷ÀÌÁ¡Àº ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ Æ÷ÇÔÇÑ Java Ŭ·¡½º´Â COM.ibm.db2.app.UDF Ŭ·¡½º ´ë½Å COM.ibm.db2.app.StoredProc Ŭ·¡½º¿¡¼ °è½ÂÇØ¾ß ÇÕ´Ï´Ù. COM.ibm.db2.app.StoredProc Ŭ·¡½º¿¡ ´ëÇØ¼´Â COM.ibm.db2.app.StoredProc¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
ÀÌ ÀÎÅÍÆäÀ̽º¿¡¼´Â Embedding ÀÀ¿ëÇÁ·Î±×·¥ ¹®¸Æ¿¡ ´ëÇÑ JDBC ¿¬°áÀ» °¡Á®¿À´Â ´ÙÀ½ ·çƾÀ» Á¦°øÇÕ´Ï´Ù.
public java.sql.Connection getConnection()
ÀÌ ÇÚµéÀ» »ç¿ëÇÏ¿© SQL¹®À» ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. StoredProc ÀÎÅÍÆäÀ̽ºÀÇ ´Ù¸¥ ¸Þ¼Òµå´Â sqllib/samples/java/StoredProc.java ÆÄÀÏ¿¡ ³ª¿µË´Ï´Ù.
Java ÀúÀå ÇÁ·Î½Ãµà¾î ¶Ç´Â UDF¿¡ »ç¿ëÇÒ ¼ö Àִ Ŭ·¡½º/ÀÎÅÍÆäÀ̽º´Â ´ÙÀ½°ú °°ÀÌ 5°¡ÁöÀÔ´Ï´Ù.
´ÙÀ½ Àý¿¡¼´Â ÀÌ·± Ŭ·¡½º ¼öÇàÀÇ °ø¿ë Ãø¸é¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
PARAMETER STYLE DB2GENERAL ÀúÀå ÇÁ·Î½Ãµà¾î·Î È£ÃâµÇ´Â ¸Þ¼Òµå¸¦ Æ÷ÇÔÇÑ Java Ŭ·¡½º´Â publicÀ̾î¾ß Çϸç ÀÌ Java ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·± Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
public class <user-STP-class> extends COM.ibm.db2.app.StoredProc{ ... }
ÇöÀç ½ÇÇà ÁßÀÎ ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¹®¸Æ¿¡¼ COM.ibm.db2.app.StoredProc ÀÎÅÍÆäÀ̽ºÀÇ °è½ÂµÈ ¸Þ¼Òµå¸¸À» È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ¸®ÅÏÇÑ ÈÄ¿¡´Â LOB Àμö, °á°ú ¶Ç´Â »óÅ ¼³Á¤ È£Ã⠵ ´ëÇØ ÀÛ¾÷ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ±ÔÄ¢À» À§¹ÝÇÒ °æ¿ì Java ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
Àμö °ü·Ã È£Ãâ¿¡¼´Â Ä÷³ »öÀÎÀ» »ç¿ëÇÏ¿© ÂüÁ¶ ÁßÀÎ Ä÷³À» ½Äº°ÇÕ´Ï´Ù. Ä÷³ »öÀÎÀº ù¹øÂ° Àμö¿¡ ´ëÇØ 1¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. PARAMETER STYLE DB2GENERAL ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¸ðµç Àμö´Â INOUTÀ¸·Î °£ÁֵǹǷΠÀÔ·ÂÀÌÀÚ Ãâ·ÂÀÔ´Ï´Ù.
ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ¸®ÅÏµÈ ¿¹¿Ü´Â µ¥ÀÌÅͺ£À̽º¿¡¼ Æ÷ÂøÇϸç SQLCODE -4302, SQLSTATE 38501°ú ÇÔ²² È£ÃâÀÚ¿¡ ¸®Åϵ˴ϴÙ. JDBC SQLException ¶Ç´Â SQLWarningÀº Ưº°ÇÏ°Ô Ã³¸®µÇ¸ç ÀÚü SQLCODE, SQLSTATE µîÀ» È£Ãâ ÀÀ¿ëÇÁ·Î±×·¥ verbatimÀ¸·Î Àü´ÞÇÕ´Ï´Ù.
´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.StoredProc Ŭ·¡½º¿Í ¿¬°üµÇ¾î ÀÖ½À´Ï´Ù.
public StoredProc() [default constructor]
ÀúÀå ÇÁ·Î½Ãµà¾î È£Ãâ Àü¿¡ µ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ »ý¼ºÀÚ¸¦ È£ÃâÇÕ´Ï´Ù.
public boolean isNull(int) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ »öÀÎÀÌ Æ÷ÇÔµÈ ÀÔ·Â Àμö°¡ SQL ³Î(NULL)ÀÎÁö Å×½ºÆ®ÇÕ´Ï´Ù.
public void set(int, short) throws Exception public void set(int, int) throws Exception public void set(int, double) throws Exception public void set(int, float) throws Exception public void set(int, java.math.BigDecimal) throws Exception public void set(int, String) throws Exception public void set(int, COM.ibm.db2.app.Blob) throws Exception public void set(int, COM.ibm.db2.app.Clob) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ »öÀÎÀÌ Æ÷ÇÔµÈ Ãâ·Â Àμö¸¦ ÁöÁ¤µÈ °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. »öÀÎÀº À¯È¿ÇÑ Ãâ·Â Àμö¸¦ ÂüÁ¶ÇØ¾ß Çϸç, µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÏÄ¡ÇØ¾ß Çϰí, °ªÀÇ ±æÀÌ¿Í ³»¿ëÀº ¼ö¿ë °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. À¯´ÏÄÚµå ¹®ÀÚ°¡ Æ÷ÇÔµÈ ¹®ÀÚ¿Àº µ¥ÀÌÅͺ£À̽º ÄÚµå ÆäÀÌÁö¿¡¼ Ç¥½Ã °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. ¿À·ù´Â ¿¹¿Ü ¹ß»ýÀ» ³º½À´Ï´Ù.
public java.sql.Connection getConnection() throws Exception
ÀÌ ÇÔ¼ö´Â µ¥ÀÌÅͺ£À̽º¿¡ ´ëÇÑ È£Ãâ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¿¬°áÀ» Ç¥½ÃÇÏ´Â JDBC ¿ÀºêÁ§Æ®¸¦ ¸®ÅÏÇÕ´Ï´Ù. ÀÌ´Â C ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ³Î(NULL) SQLConnect()¸¦ È£ÃâÇÑ °á°ú¿Í ºñ½ÁÇÕ´Ï´Ù.
PARAMETER STYLE DB2GENERAL UDF·Î È£ÃâµÇ´Â ¸Þ¼Òµå¸¦ Æ÷ÇÔÇÑ Java Ŭ·¡½º´Â publicÀ̾î¾ß Çϸç ÀÌ Java ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·± Ŭ·¡½º´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
public class <user-UDF-class> extends COM.ibm.db2.app.UDF{ ... }
ÇöÀç ½ÇÇà ÁßÀÎ UDFÀÇ ¹®¸Æ¿¡¼ COM.ibm.db2.app.UDF ÀÎÅÍÆäÀ̽ºÀÇ ¸Þ¼Òµå¸¸À» È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, UDF¿¡¼ ¸®ÅÏÇÑ ÈÄ¿¡´Â LOB Àμö, °á°ú ¶Ç´Â »óÅ ¼³Á¤ È£Ã⠵ ´ëÇØ ÀÛ¾÷ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÌ ±ÔÄ¢À» À§¹ÝÇÒ °æ¿ì Java ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
Àμö °ü·Ã È£Ãâ¿¡¼´Â Ä÷³ »öÀÎÀ» »ç¿ëÇÏ¿© ¼³Á¤ ÁßÀÎ Ä÷³À» ½Äº°ÇÕ´Ï´Ù. Ä÷³ »öÀÎÀº ù¹øÂ° Àμö¿¡ ´ëÇØ 1¿¡¼ ½ÃÀÛÇÕ´Ï´Ù. Ãâ·Â Àμö¿¡´Â ÀÔ·Â Àμöº¸´Ù ³ôÀº ¹øÈ£°¡ ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, ¼¼ °³ÀÇ ÀÔ·ÂÀÌ ÀÖ´Â ½ºÄ®¶ó UDF´Â Ãâ·Â¿¡ »öÀÎ 4¸¦ »ç¿ëÇÕ´Ï´Ù.
UDF¿¡¼ ¸®ÅÏµÈ ¿¹¿Ü´Â µ¥ÀÌÅͺ£À̽º¿¡¼ Æ÷ÂøÇϸç SQLCODE -4302, SQLSTATE 38501°ú ÇÔ²² È£ÃâÀÚ¿¡ ¸®Åϵ˴ϴÙ.
´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.UDF Ŭ·¡½º¿Í ¿¬°üµÇ¾î ÀÖ½À´Ï´Ù.
public UDF() [default constructor]
ÀÏ·ÃÀÇ UDF È£Ãâ ½ÃÀ۽à µ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ »ý¼ºÀÚ¸¦ È£ÃâÇÕ´Ï´Ù. À̴ ù¹øÂ° UDF È£Ãâ¿¡ ¾Õ¼·´Ï´Ù.
public void close()
FINAL CALL ¿É¼ÇÀ¸·Î UDF¸¦ ÀÛ¼ºÇÒ¶§ UDF Æò°¡ Á¾·á½Ã µ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ÀÌ´Â C UDF¸¦ ¸¶Áö¸·À¸·Î È£ÃâÇÑ °á°ú¿Í ºñ½ÁÇÕ´Ï´Ù. Å×À̺í ÇÔ¼öÀÇ °æ¿ì UDF ¸Þ¼Òµå¿¡ ´ëÇÑ CLOSE È£Ãâ ÈÄ(NO FINAL CALLÀÌ ÄÚµùµÇ°Å³ª ±âº»°ªÀ¸·Î ¼³Á¤µÉ °æ¿ì) ¶Ç´Â FINAL È£Ãâ ÈÄ close()°¡ È£ÃâµË´Ï´Ù. Java UDF Ŭ·¡½º¿¡¼ ÀÌ ÇÔ¼ö¸¦ ±¸ÇöÇÏÁö ¸øÇÒ °æ¿ì no-op ½ºÅÓ¿¡¼ ÀÌ À̺¥Æ®¸¦ Á¶ÀýÇÏ¿© ¹«½ÃÇÕ´Ï´Ù.
public int getCallType() throws Exception
Å×À̺í ÇÔ¼ö UDF¿¡¼´Â getCallType()¸¦ »ç¿ëÇÏ¿© ƯÁ¤ È£Ãâ¿¡ ´ëÇØ È£Ãâ À¯ÇüÀ» ã½À´Ï´Ù. ±×¸®°í ´ÙÀ½°ú °°ÀÌ °ªÀ» ¸®ÅÏÇÕ´Ï´Ù(COM.ibm.db2.app.UDF Ŭ·¡½º Á¤ÀÇ¿¡ ÀÖ´Â ÇØ´ç °ª¿¡ ´ëÇØ ±âÈ£ Á¤Àǰ¡ Á¦°øµË´Ï´Ù).
public boolean isNull(int) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ »öÀÎÀÌ Æ÷ÇÔµÈ ÀÔ·Â Àμö°¡ SQL ³Î(NULL)ÀÎÁö Å×½ºÆ®ÇÕ´Ï´Ù.
public boolean needToSet(int) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ »öÀÎÀÌ Æ÷ÇÔµÈ Ãâ·Â Àμö¸¦ ¼³Á¤ÇØ¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ Å×½ºÆ®ÇÕ´Ï´Ù. UDF È£ÃâÀÚ¿¡¼ ±× Ä÷³À» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì DBINFO·Î ¼±¾ðµÈ Å×À̺í UDF¿¡ ´ëÇØ false°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
public void set(int, short) throws Exception public void set(int, int) throws Exception public void set(int, double) throws Exception public void set(int, float) throws Exception public void set(int, java.math.BigDecimal) throws Exception public void set(int, String) throws Exception public void set(int, COM.ibm.db2.app.Blob) throws Exception public void set(int, COM.ibm.db2.app.Clob) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ »öÀÎÀÌ Æ÷ÇÔµÈ Ãâ·Â Àμö¸¦ ÁöÁ¤µÈ °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. »öÀÎÀº À¯È¿ÇÑ Ãâ·Â Àμö¸¦ ÂüÁ¶ÇØ¾ß Çϸç, µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÏÄ¡ÇØ¾ß Çϰí, °ªÀÇ ±æÀÌ¿Í ³»¿ëÀº ¼ö¿ë °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. À¯´ÏÄÚµå ¹®ÀÚ°¡ Æ÷ÇÔµÈ ¹®ÀÚ¿Àº µ¥ÀÌÅͺ£À̽º ÄÚµå ÆäÀÌÁö¿¡¼ Ç¥½Ã °¡´ÉÇØ¾ß ÇÕ´Ï´Ù. ¿À·ù´Â ¿¹¿Ü ¹ß»ýÀ» ³º½À´Ï´Ù.
public void setSQLstate(String) throws Exception
ÀÌ ÇÔ¼ö°¡ UDF¿¡¼ È£ÃâµÇ¾î, ÀÌ È£Ãâ¿¡¼ ¸®Åϵǵµ·Ï SQLSTATE¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Å×À̺í UDF¿¡¼ "02000"À¸·Î ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Å×ÀÌºí ³¡ Á¶°ÇÀ» ½ÅÈ£·Î º¸³»¾ß ÇÕ´Ï´Ù. ¹®ÀÚ¿ÀÌ SQLSTATE·Î ¼ö¿ë °¡´ÉÇÏÁö ¾ÊÀ» °æ¿ì ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
public void setSQLmessage(String) throws Exception
ÀÌ ÇÔ¼ö´Â setSQLstate ÇÔ¼ö¿Í ºñ½ÁÇÕ´Ï´Ù. ÀÌ ÇÔ¼ö´Â SQL ¸Þ½ÃÁö °á°ú¸¦ ¼³Á¤ÇÕ´Ï´Ù. ¹®ÀÚ¿ÀÌ 70ÀÚº¸´Ù ±æ °æ¿ì¿Í °°ÀÌ ¼ö¿ë °¡´ÉÇÏÁö ¾ÊÀ» °æ¿ì ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
public String getFunctionName() throws Exception
ÀÌ ÇÔ¼ö´Â ½ÇÇà ÁßÀÎ UDFÀÇ À̸§À» ¸®ÅÏÇÕ´Ï´Ù.
public String getSpecificName() throws Exception
ÀÌ ÇÔ¼ö´Â ½ÇÇà ÁßÀÎ UDFÀÇ Æ¯Á¤ À̸§À» ¸®ÅÏÇÕ´Ï´Ù.
public byte[] getDBinfo() throws Exception
ÀÌ ÇÔ¼ö´Â ½ÇÇà ÁßÀÎ UDFÀÇ Ã³¸®µÇÁö ¾ÊÀº DBINFO ±¸Á¶¸¦ ¹ÙÀÌÆ® ¹è¿·Î ¸®ÅÏÇÕ´Ï´Ù. ¸ÕÀú DBINFO ¿É¼ÇÀ¸·Î ÀÌ ÇÔ¼ö¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
public String getDBname() throws Exception public String getDBauthid() throws Exception public String getDBtbschema() throws Exception public String getDBtbname() throws Exception public String getDBcolname() throws Exception public String getDBver_rel() throws Exception public String getDBplatform() throws Exception public String getDBapplid() throws Exception
ÀÌ·± ÇÔ¼ö´Â ½ÇÇà ÁßÀÎ UDFÀÇ DBINFO ±¸Á¶¿¡¼ ÇØ´ç ÇʵåÀÇ °ªÀ» ¸®ÅÏÇÕ´Ï´Ù.
public int[] getDBcodepg() throws Exception
ÀÌ ÇÔ¼ö´Â DBINFO ±¸Á¶¿¡¼ SBCS, DBCS ¹× µ¥ÀÌÅͺ£À̽ºÀÇ º¹ÇÕ ÄÚµå ÆäÀÌÁö ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¸®ÅÏµÈ Á¤¼ö ¹è¿¿¡´Â óÀ½ ¼¼ °³ÀÇ ±¸¼º¿ä¼Ò·Î °¢ ¼ýÀÚ°¡ ÀÖ½À´Ï´Ù.
public byte[] getScratchpad() throws Exception
ÀÌ ÇÔ¼ö´Â ÇöÀç ½ÇÇà ÁßÀÎ UDFÀÇ ½ºÅ©·¡Ä¡ ÆÐµå »çº»À» ¸®ÅÏÇÕ´Ï´Ù. ¸ÕÀú SCRATCHPAD ¿É¼ÇÀ¸·Î UDF¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
public void setScratchpad(byte[]) throws Exception
ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ ¹ÙÀÌÆ® ¹è¿ÀÇ ³»¿ëÀ¸·Î ÇöÀç ½ÇÇà ÁßÀÎ UDFÀÇ ½ºÅ©·¡Ä¡ ÆÐµå¸¦ °ãÃľ¹´Ï´Ù. ¸ÕÀú SCRATCHPAD ¿É¼ÇÀ¸·Î UDF¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. ¹ÙÀÌÆ® ¹è¿ÀÇ Å©±â´Â getScratchpad() ¸®Åϰú µ¿ÀÏÇÕ´Ï´Ù.
ÀÌ Å¬·¡½º´Â »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ÀÇ °è»êÀ» À§ÇØ Àӽà BLOB ¶Ç´Â CLOB ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ´Â À¯Æ¿¸®Æ¼ ·çƾÀ» Á¦°øÇÕ´Ï´Ù.
´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.Lob Ŭ·¡½º¿Í ¿¬°üµË´Ï´Ù.
public static Blob newBlob() throws Exception
ÀÌ ÇÔ¼ö´Â Àӽà BLOB¸¦ ÀÛ¼ºÇÕ´Ï´Ù. °¡´ÉÇÑ °æ¿ì LOCATOR À» »ç¿ëÇÏ¿© ÀÌ ÇÔ¼ö¸¦ ±¸ÇöÇÕ´Ï´Ù.
public static Clob newClob() throws Exception
ÀÌ ÇÔ¼ö´Â Àӽà CLOBÀ» ÀÛ¼ºÇÕ´Ï´Ù. °¡´ÉÇÑ °æ¿ì LOCATOR À» »ç¿ëÇÏ¿© ÀÌ ÇÔ¼ö¸¦ ±¸ÇöÇÕ´Ï´Ù.
UDF ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾î ÀÔ·ÂÀ¸·Î BLOB¸¦ Ç¥½ÃÇϵµ·Ï µ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¸¦ Àü´ÞÇϸç Ãâ·ÂÀ¸·Î Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸ ½ÇÇà ÁßÀÎ UDF ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¹®¸Æ¿¡¼¸¸ ±×·¸°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ¹®¸Æ ¿ÜºÎ¿¡¼ ÇØ´ç ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ¸é ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.Blob Ŭ·¡½º¿Í ¿¬°üµË´Ï´Ù.
public long size() throws Exception
ÀÌ ÇÔ¼ö´Â BLOBÀÇ ±æÀ̸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î ¸®ÅÏÇÕ´Ï´Ù.
public java.io.InputStream getInputStream() throws Exception
ÀÌ ÇÔ¼ö¸¦ »õ·Î¿î InputStreamÀ» ¸®ÅÏÇÏ¿© BLOBÀÇ ¹®¸ÆÀ» ÀнÀ´Ï´Ù. È¿À²ÀûÀÎ seek/mark ÀÛ¾÷Àº ¿ÀºêÁ§Æ®¿¡¼ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
public java.io.OutputStream getOutputStream() throws Exception
ÀÌ ÇÔ¼ö´Â »õ·Î¿î OutputStreamÀ» ¸®ÅÏÇÏ¿© BLOB¿¡ ¹ÙÀÌÆ®¸¦ ÷ºÎÇÕ´Ï´Ù. ÷ºÎµÈ ¹ÙÀÌÆ®´Â Áï½Ã ÀÌ ¿ÀºêÁ§Æ®ÀÇ getInputStream() È£Ãâ·Î »ý¼ºµÈ ±âÁ¸ÀÇ ¸ðµç InputStream ÀνºÅϽº¿¡ °¡½ÃÀûÀÌ µË´Ï´Ù.
UDF ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾î ÀÔ·ÂÀ¸·Î CLOB¸¦ Ç¥½ÃÇϵµ·Ï µ¥ÀÌÅͺ£À̽º¿¡¼ ÀÌ Å¬·¡½ºÀÇ ÀνºÅϽº¸¦ Àü´ÞÇϸç Ãâ·ÂÀ¸·Î Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸ ½ÇÇà ÁßÀÎ UDF ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¹®¸Æ¿¡¼¸¸ ±×·¸°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ¹®¸Æ ¿ÜºÎ¿¡¼ ÇØ´ç ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ¸é ¿¹¿Ü°¡ ¹ß»ýÇÕ´Ï´Ù.
CLOB ÀνºÅϽº´Â µ¥ÀÌÅͺ£À̽º ÄÚµå ÆäÀÌÁö¿¡ ¹®ÀÚ¸¦ ÀúÀåÇÕ´Ï´Ù. ÀϺΠÀ¯´ÏÄÚµå ¹®ÀÚ°¡ ÀÌ ÄÚµå ÆäÀÌÁö¿¡¼ Ç¥½ÃµÇÁö ¾ÊÀ» ¼ö ÀÖÀ¸¸ç º¯È¯ Áß ¿¹¿Ü¸¦ ¹ß»ý½Ãų ¼öµµ ÀÖ½À´Ï´Ù. ÷ºÎ ÀÛ¾÷ ÁßÀ̳ª UDF ¶Ç´Â StoredProc set() È£Ãâ Áß ÀÌ·± °æ¿ì°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì Java ÇÁ·Î±×·¡¸Ó°¡ CLOB¿Í DBCLOB »çÀÌÀÇ Â÷ÀÌÁ¡Àº ¼û°Ü¾ß ÇÕ´Ï´Ù.
´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.Clob Ŭ·¡½º¿Í ¿¬°üµË´Ï´Ù.
public long size() throws Exception
ÀÌ ÇÔ¼ö´Â CLOBÀÇ ±æÀ̸¦ ¹®ÀÚ ´ÜÀ§·Î ¸®ÅÏÇÕ´Ï´Ù.
public java.io.Reader getReader() throws Exception
ÀÌ ÇÔ¼ö´Â »õ·Î¿î Reader¸¦ ¸®ÅÏÇÏ¿© CLOB ¶Ç´Â DBCLOBÀÇ ¹®¸ÆÀ» ÀнÀ´Ï´Ù. È¿À²ÀûÀÎ seek/mark ÀÛ¾÷Àº ¿ÀºêÁ§Æ®¿¡¼ »ç¿ë °¡´ÉÇÕ´Ï´Ù.
public java.io.Writer getWriter() throws Exception
ÀÌ ÇÔ¼ö´Â »õ·Î¿î Writer¸¦ ¸®ÅÏÇÏ¿© ÀÌ CLOB ¶Ç´Â DBCLOB¿¡ ÀÌ ¹®ÀÚ¸¦ ÷ºÎÇÕ´Ï´Ù. ÷ºÎµÈ ¹®ÀÚ´Â Áï½Ã ÀÌ ¿ÀºêÁ§Æ®ÀÇ GetReader() È£Ãâ·Î »ý¼ºµÈ ±âÁ¸ÀÇ ¸ðµç Reader ÀνºÅϽº¿¡ °¡½ÃÀûÀÌ µË´Ï´Ù.
DB2DARI ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ ºñºÐ¸® ÀúÀå ÇÁ·Î½Ãµà¾î·Î ¼öÇàÇØ¾ß ÇÑ´Ù´Â »ç½ÇÀ» Áö½ÃÇÏ·Á¸é ÀÀ¿ëÇÁ·Î±×·¥ ºôµå ¾È³»¼¿¡ Áö½ÃµÈ µð·ºÅ丮¿¡ ³ÖÀ¸½Ê½Ã¿À. ºñºÐ¸® ÀúÀå ÇÁ·Î½Ãµà¾î¿¡ ´ëÇØ¼´Â NOT FENCED ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.