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

DB2GENERAL UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î

ÀÌÁ¦ºÎÅÍ PARAMETER STYLE DB2GENERAL UDF ¹× Java·Î ÀÛ¼ºµÈ ÀúÀå ÇÁ·Î½Ãµà¾î´Â ´Ü¼øÈ÷ Java UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î·Î ¾ð±ÞÇÕ´Ï´Ù. DB2GENERAL UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î ÀÛ¼º ÇÁ·Î¼¼½º´Â Áö¿øµÇ´Â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î UDF ¹× ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ ÀÛ¼ºÇÒ¶§¿Í ¾ÆÁÖ ºñ½ÁÇÕ´Ï´Ù. ÀÏ´Ü ÀÛ¼ºÇÏ¿© µî·ÏÇÏ¸é ¾î¶² ¾ð¾îÀÇ ÇÁ·Î±×·¥¿¡¼­µç À̸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. º¸Åë ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼­ JDBC API¸¦ È£ÃâÇÒ ¼ö ÀÖÁö¸¸ UDF¿¡¼­´Â È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.

Áö¿øµÇ´Â SQL µ¥ÀÌÅÍ À¯Çü

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

ÁÖ:

  1. SQLDA¿¡¼­ REAL°ú DOUBLE »çÀÌÀÇ Â÷ÀÌÁ¡Àº ±æÀÌ °ª(4 ¶Ç´Â 8)ÀÔ´Ï´Ù.

  2. C ³Î Á¾·á ±×·¡ÇÈ ¹®ÀÚ¿­°ú °°ÀÌ °ýÈ£·Î ´ÝÈù À¯ÇüÀº È£Ãâ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ¸î °¡Áö È£½ºÆ® º¯¼ö À¯ÇüÀ¸·Î Embedded SQL¸¦ »ç¿ëÇÒ¶§ ÀúÀå ÇÁ·Î½Ãµà¾î¿¡ ³ªÅ¸³³´Ï´Ù.

  3. BLOB ¹× CLOB Ŭ·¡½º´Â COM.ibm.db2.app ÆÐŰÁö¿¡ ³ª¿Í ÀÖ½À´Ï´Ù. ±× ÀÎÅÍÆäÀ̽º¿¡´Â BLOB¸¦ ÀÐ°í ¿©±â¿¡ ¾²´Â µ¥ »ç¿ëÇÒ ¶Ç´Â CLOB¿ë Reader ¹× Writer¿¡ »ç¿ëÇÒ InputStream ¹× OutputStreamÀ» »ý¼ºÇÏ´Â ·çƾÀÌ ÀÖ½À´Ï´Ù. Ŭ·¡½º¿¡ ´ëÇØ¼­´Â ÀúÀå ÇÁ·Î½Ãµà¾î ¹× UDF¿ë Ŭ·¡½º¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

  4. C·Î ÄÚµùÇÑ UDFÀÇ °æ¿ì¿Í ¸¶Âù°¡Áö·Î SQL DATE, TIME ¹× TIMESTAMP °ªÀº JavaÀÇ ISO ¹®ÀÚ¿­ ¿£ÄÚµùÀ» »ç¿ëÇÕ´Ï´Ù.

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 À¯´ÏÄÚµå ¹®ÀÚ¸¦ Ç¥½ÃÇϵµ·Ï ÄÚµå ÆäÀÌÁö º¯È¯ÀÌ Àû¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

ÀúÀå ÇÁ·Î½Ãµà¾î ¹× UDF¿ë Ŭ·¡½º

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°¡ÁöÀÔ´Ï´Ù.

´ÙÀ½ Àý¿¡¼­´Â ÀÌ·± Ŭ·¡½º ¼öÇàÀÇ °ø¿ë Ãø¸é¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

COM.ibm.db2.app.StoredProc

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()¸¦ È£ÃâÇÑ °á°ú¿Í ºñ½ÁÇÕ´Ï´Ù.

COM.ibm.db2.app.UDF

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() ¸®Åϰú µ¿ÀÏÇÕ´Ï´Ù.

COM.ibm.db2.app.Lob

ÀÌ Å¬·¡½º´Â »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö ¶Ç´Â ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼­ÀÇ °è»êÀ» À§ÇØ Àӽà BLOB ¶Ç´Â CLOB ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÏ´Â À¯Æ¿¸®Æ¼ ·çƾÀ» Á¦°øÇÕ´Ï´Ù.

´ÙÀ½ ¸Þ¼Òµå´Â COM.ibm.db2.app.Lob Ŭ·¡½º¿Í ¿¬°üµË´Ï´Ù.

public static Blob newBlob() throws Exception

ÀÌ ÇÔ¼ö´Â Àӽà BLOB¸¦ ÀÛ¼ºÇÕ´Ï´Ù. °¡´ÉÇÑ °æ¿ì LOCATOR À» »ç¿ëÇÏ¿© ÀÌ ÇÔ¼ö¸¦ ±¸ÇöÇÕ´Ï´Ù.

public static Clob newClob() throws Exception

ÀÌ ÇÔ¼ö´Â Àӽà CLOBÀ» ÀÛ¼ºÇÕ´Ï´Ù. °¡´ÉÇÑ °æ¿ì LOCATOR À» »ç¿ëÇÏ¿© ÀÌ ÇÔ¼ö¸¦ ±¸ÇöÇÕ´Ï´Ù.

COM.ibm.db2.app.Blob

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 ÀνºÅϽº¿¡ °¡½ÃÀûÀÌ µË´Ï´Ù.

COM.ibm.db2.app.Clob

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 ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.


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