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


DB2 ÀÀ¿ëÇÁ·Î±×·¥ ÄÚµù °³¿ä

DB2 ÀÀ¿ëÇÁ·Î±×·¥Àº ¿©·¯ °³ÀÇ ºÎºÐµé·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù.

  1. º¯¼ö ¼±¾ð ¹× ÃʱâÈ­
  2. µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°á
  3. Çϳª ÀÌ»óÀÇ Æ®·£Àè¼Ç ¼öÇà
  4. µ¥ÀÌÅͺ£À̽º·ÎºÎÅÍ ¿¬°áÇØÁ¦
  5. ÇÁ·Î±×·¥ Á¾·á

Æ®·£Àè¼ÇÀ̶õ µ¥ÀÌÅͺ£À̽º¿¡ È®¾àÇϱâ Àü¿¡ ¼º°øÀûÀ¸·Î Á¾·áµÇ¾î¾ß ÇÏ´Â µ¥ÀÌÅͺ£À̽º Á¶ÀÛ ¼¼Æ®¸¦ ¸»ÇÕ´Ï´Ù. Embedded SQL°ú ÇÔ²² Æ®·£Àè¼ÇÀº ¾Ï½ÃÀûÀ¸·Î ½ÃÀ۵Ǹç, ÀÀ¿ëÇÁ·Î±×·¥ÀÌ COMMIT¹® ¶Ç´Â ROLLBACK¹®À» ½ÇÇàÇÒ ¶§ Á¾·áµË´Ï´Ù. Æ®·£Àè¼ÇÀÇ ¿¹·Î´Â °í°´ÀÇ ¿¹±Ý ÀÔ·Â ¹× ÀÜ°í °»½ÅÀ» µé ¼ö ÀÖ½À´Ï´Ù.

È£½ºÆ® ¾ð¾î·ÎºÎÅÍ embedded SQL¹®À¸·ÎÀÇ ÀüÀ̸¦ ó¸®ÇÏ·Á¸é ÀϺΠSQL¹®Àº ÇÁ·Î±×·¥ÀÇ ½ÃÀÛ ¹× ³¡¿¡ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.

¸ðµç ÇÁ·Î±×·¥ ½ÃÀÛ ºÎºÐ¿¡´Â ´ÙÀ½ Ç׸ñµéÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

¸ðµç ÇÁ·Î±×·¥ÀÇ º»¹®¿¡´Â µ¥ÀÌÅ͸¦ ¾×¼¼½º ¹× °ü¸®ÇÏ´Â SQL¹®ÀÌ µé¾î ÀÖ½À´Ï´Ù. ÀÌµé ¸í·É¹®Àº Æ®·£Àè¼ÇÀ» ±¸¼ºÇÕ´Ï´Ù. Æ®·£Àè¼Ç¿¡´Â ´ÙÀ½ ¸í·É¹®ÀÌ µé¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ÀϹÝÀûÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ³¡ ºÎºÐ¿¡´Â ´ÙÀ½°ú °°Àº SQL¹®ÀÌ Æ÷ÇԵ˴ϴÙ.

º¯¼ö ¼±¾ð ¹× ÃʱâÈ­

DB2 ÀÀ¿ëÇÁ·Î±×·¥À» ÄÚµåÈ­ÇÏ·Á¸é ¿ì¼± ´ÙÀ½À» ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.

µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥°ú »óÈ£ÀÛ¿ëÇÏ´Â º¯¼ö ¼±¾ð

µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥°ú »óÈ£ÀÛ¿ëÇÏ´Â ¸ðµç º¯¼ö´Â SQL ¼±¾ð Àý¿¡¼­ ¼±¾ðµÇ¾î¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ±¸Á¶·Î SQL ¼±¾ð ÀýÀ» ÄÚµåÈ­ÇØ¾ß ÇÕ´Ï´Ù.

  1. SQL¹® BEGIN DECLARE SECTION
  2. Çϳª ÀÌ»óÀÇ º¯¼ö ¼±¾ð¹®À¸·Î ±¸¼ºµÈ ±×·ì
  3. SQL¹® END DECLARE SECTION

SQL declare ºÎºÐ¿¡ ¼±¾ðµÇ¾î Àִ ȣ½ºÆ® ÇÁ·Î±×·¥ º¯¼ö¸¦ È£½ºÆ® º¯¼ö¶ó°í ÇÕ´Ï´Ù. SQL¹®ÀÇ È£½ºÆ®-º¯¼ö ÂüÁ¶¿¡¼­ È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. È£½ºÆ®-º¯¼ö´Â SQL ÂüÁ¶¼­ÀÇ ±¸¹® µµÇ¥¿¡ »ç¿ëµÇ´Â ű×ÀÔ´Ï´Ù. ÇÑ ÇÁ·Î±×·¥¿¡ ¿©·¯ °³ÀÇ SQL declare ºÎºÐÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

°¢ È£½ºÆ® º¯¼öÀÇ ¼Ó¼ºÀº SQL¹®¿¡¼­ º¯¼ö°¡ »ç¿ëµÇ´Â ¹æ½Ä¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ¿¹¸¦ µé¾î, DB2 Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ ÀúÀåÇϰųª µ¥ÀÌÅ͸¦ ¹Þ´Â º¯¼öÀÇ µ¥ÀÌÅÍ À¯Çü ¹× ±æÀÌ´Â ¾×¼¼½º ÁßÀÎ Ä÷³°ú ȣȯµÇ´Â °Í°ú °°¾Æ¾ß ÇÕ´Ï´Ù. °¢ º¯¼öÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» ¾Ë¾Æº¸·Á¸é DB2 µ¥ÀÌÅÍ À¯ÇüÀ» Àß ¾Ë°í ÀÖ¾î¾ß Çϴµ¥, ÀÌ¿¡ ´ëÇØ¼­´Â µ¥ÀÌÅÍ À¯Çü¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

SQL ¿ÀºêÁ§Æ®¸¦ ³ªÅ¸³»´Â º¯¼ö ¼±¾ð

DB2 ¹öÀü 7ÀÇ °æ¿ì, Å×À̺í, º°¸í, ºä ¹× »ó°ü À̸§ÀÇ ÃÖ´ë ±æÀÌ´Â 128¹ÙÀÌÆ®ÀÔ´Ï´Ù. Ä÷³ À̸§ÀÇ ÃÖ´ë ±æÀÌ´Â 30¹ÙÀÌÆ®ÀÔ´Ï´Ù. DB2 ¹öÀü 7¿¡¼­ ½ºÅ°¸¶ À̸§ÀÇ ÃÖ´ë ±æÀÌ´Â 30¹ÙÀÌÆ®ÀÔ´Ï´Ù. Â÷ÈÄ DB2 ¸±¸®½º¿¡¼­´Â Ä÷³ À̸§ ¹× SQL ¿ÀºêÁ§Æ®ÀÇ ±âŸ ½Äº°ÀÚ À̸§À» ÃÖ°í 128¹ÙÀÌÆ®±îÁö Áõ°¡½Ãų ¼ö ÀÖ½À´Ï´Ù. 128¹ÙÀÌÆ®°¡ ¾ÈµÇ´Â SQL ¿ÀºêÁ§Æ®¸¦ ³ªÅ¸³»´Â º¯¼ö¸¦ ¼±¾ðÇÒ °æ¿ì Â÷ÈÄ SQL ¿ÀºêÁ§Æ® ½Äº° ±æÀ̰¡ Áõ°¡µÇ¸é ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¾ÈÁ¤¼º¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ½ºÅ°¸¶ À̸§À» º¸À¯Çϵµ·Ï char[9]schema_name º¯¼ö¸¦ C++ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ¼±¾ðÇÒ°æ¿ì, ÃÖ´ë ±æÀ̰¡ 8¹ÙÀÌÆ®ÀÎ DB2 ¹öÀü 6¿¡ Çã¿ëµÇ´Â ½ºÅ°¸¶ À̸§¿¡ ´ëÇØ »ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á¦´ë·Î ÀÛµ¿µË´Ï´Ù.

   char[9] schema_name; /* holds null-delimited schema name of up to 8 bytes;
    works for DB2 Version 6, but may truncate schema names in future releases */

±×·¯³ª, ÃÖ´ë ±æÀ̰¡ 30¹ÙÀÌÆ®ÀÎ ½ºÅ°¸¶ À̸§À» Çã¿ëÇÏ´Â DB2 ¹öÀü 7·Î µ¥ÀÌÅͺ£À̽º¸¦ ÀÌÁÖ½Ãų °æ¿ì, ½ºÅ°¸¶ À̸§ LONGSCHEMA1°ú LONGSCHEMA2°¡ ±¸ºÐµÇÁö ¾Ê°ÔµË´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº ÀÌ ½ºÅ°¸¶ À̸§µéÀ» 8¹ÙÀÌÆ®·Î Á¦ÇÑÇÏ¿© LONGSCHE·Î µÇ¹Ç·Î, ½ºÅ°¸¶ À̸§À» ±¸º°ÇØ¾ß ÇÏ´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ÀÇ ¸í·É¹®Àº ½ÇÆÐÇÏ°Ô µË´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±æÀ̸¦ Áõ°¡½ÃŰ·Á¸é ´ÙÀ½°ú °°ÀÌ 128¹ÙÀÌÆ® ±æÀ̸¦ °¡Áø ½ºÅ°¸¶ À̸§ º¯¼ö¸¦ ¼±¾ðÇϽʽÿÀ.

    char[129] schema_name; /* holds null-delimited schema name of up to 128 bytes
                              good for DB2 Version 7 and beyond */

Â÷ÈÄÀÇ ÀÀ¿ëÇÁ·Î±×·¥ Á¶ÀÛÀ» Çâ»ó½ÃŰ·Á¸é, ÀÀ¿ëÇÁ·Î±×·¥¿¡ ±æÀ̰¡ 128¹ÙÀÌÆ®ÀÎ SQL ¿ÀºêÁ§Æ® À̸§À» ³ªÅ¸³»´Â ¸ðµç º¯¼öµéÀ» ¼±¾ðÇØ º¸½Ê½Ã¿À. À̺¸´Ù ±ä º¯¼öÀÇ °æ¿ì ´õ ¸¹Àº ½Ã½ºÅÛ ÀÚ¿øÀÌ ÇÊ¿äÇÏ´Ù´Â °Í¿¡ ºñÇØ ȣȯ¼ºÀÌ Çâ»óµÈ´Ù´Â ÀÌÁ¡ÀÌ ÀÖ´Ù´Â °ÍÀ» °í·ÁÇØ¾ß ÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ÄÚµù Á¶ÀÛÀ» ½±°Ô Çϰí C/C++ ÀÀ¿ëÇÁ·Î±×·¥ Äڵ带 º¸´Ù ¸í·áÇÏ°Ô ÇÏ·Á¸é ÀÌ·¯ÇÑ SQL ¿ÀºêÁ§Æ® ½Äº°ÀÚ ±æÀ̸¦ ¼±¾ðÇÒ ¶§ C ¸ÅÅ©·ÎÈ®ÀåÀÚ¸¦ »ç¿ëÇØ º¸½Ê½Ã¿À. sql.h Æ÷ÇÔ ÆÄÀÏÀº SQL_MAX_IDENT¸¦ 128·Î ¼±¾ðÇϹǷÎ, SQL_MAX_IDENT ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÏ¿© SQL ¿ÀºêÁ§Æ® ½Äº°ÀÚ¸¦ ½±°Ô ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.

#include <sql.h>
    char[SQL_MAX_IDENT+1] schema_name;
    char[SQL_MAX_IDENT+1] table_name;
    char[SQL_MAX_IDENT+1] employee_column;
    char[SQL_MAX_IDENT+1] manager_column;

C ¸ÅÅ©·Î È®Àå¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº C ¸ÅÅ©·Î ¿¹ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

È£½ºÆ® º¯¼ö¸¦ SQL¹®¿¡ ¿¬°ü½Ã۱â

È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ°Å³ª, È£½ºÆ® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ µ¥ÀÌÅ͸¦ ¹Þ´Â È£½ºÆ® º¯¼ö¸¦ Ãâ·Â È£½ºÆ® º¯¼ö¶ó Çϰí, È£½ºÆ® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇϴ ȣ½ºÆ® º¯¼ö¸¦ ÀԷ ȣ½ºÆ® º¯¼ö¶ó ÇÕ´Ï´Ù.

´ÙÀ½ SELECT INTO¹®À» º¸½Ê½Ã¿À.

     SELECT HIREDATE, EDLEVEL
       INTO :hdate, :lvl
       FROM EMPLOYEE
       WHERE EMPNO = :idno

¿©±â¿¡´Â µÎ °³ÀÇ Ãâ·Â È£½ºÆ® º¯¼ö, hdate ¹× lvl°ú, ÇϳªÀÇ ÀԷ ȣ½ºÆ® º¯¼öÀÎ idno°¡ Æ÷ÇԵ˴ϴÙ. EMPLOYEE Å×À̺í·ÎºÎÅÍ °Ë»öµÇ´Â ÇàÀÇ EMPNO¸¦ °áÁ¤Çϱâ À§ÇØ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº idno È£½ºÆ® º¯¼ö¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ °Ë»ö ±âÁØ¿¡ ¸Â´Â ÇàÀ» ãÀ¸¸é hdate ¹× lvlÀº °¢°¢ HIREDATE ¹× EDLEVEL Ä÷³¿¡ ÀúÀåµÈ µ¥ÀÌÅ͸¦ ¹Þ½À´Ï´Ù. ÀÌ ¸í·É¹®Àº EMPLOYEE Å×À̺íÀÇ Ä÷³À» »ç¿ëÇÏ¿© È£½ºÆ® ÇÁ·Î±×·¥°ú µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ »çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» º¸¿©ÁÝ´Ï´Ù.

Å×À̺íÀÇ °¢ Ä÷³¿¡´Â CREATE TABLE Á¤ÀÇ¿¡ ÀÖ´Â µ¥ÀÌÅÍ À¯ÇüÀÌ ÁöÁ¤µË´Ï´Ù. ÀÌ ¹®¼­¿¡¼­ °¢ ¾ð¾îº° ÇØ´ç ÀåÀÇ Áö¿ø SQL µ¥ÀÌÅÍ À¯Çü ºÎºÐ¿¡ Á¤ÀÇµÈ È£½ºÆ® ¾ð¾î µ¥ÀÌÅÍ À¯Çü°ú ÀÌ µ¥ÀÌÅÍ À¯ÇüÀ» ¿¬°ü½ÃÄÑ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, INTEGER µ¥ÀÌÅÍ À¯ÇüÀº 32ºñÆ®ÀÇ ±âȣȭµÈ Á¤¼öÀÔ´Ï´Ù. ÀÌ´Â °¢ È£½ºÆ® ¾ð¾î·Î µÈ ´ÙÀ½ µ¥ÀÌÅÍ ¼³¸í Ç׸ñ°ú °°½À´Ï´Ù.

C/C++:
sqlint32 variable_name;

Java:
int variable_name;

COBOL:
01 variable-name PICTURE S9(9) COMPUTATIONAL-5.

FORTRAN:
INTEGER*4 variable_name

Áö¿ø SQL µ¥ÀÌÅÍ À¯Çü ¹× ÇØ´ç È£½ºÆ® ¾ð¾î µ¥ÀÌÅÍ À¯Çü ¸ñ·Ï¿¡ ´ëÇØ¼­´Â ´ÙÀ½À» ÂüÁ¶ÇϽʽÿÀ.

Ä÷³¿¡ »ç¿ëÇÒ È£½ºÆ® º¯¼öÀÇ Á¤ÀÇ ¹æ¹ýÀ» °áÁ¤ÇÏ·Á¸é ÇØ´ç Ä÷³ÀÇ SQL µ¥ÀÌÅÍ À¯ÇüÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º¿¡ ÀÛ¼ºµÈ ¸ðµç Å×ÀÌºí¿¡ ´ëÇÑ Á¤º¸°¡ µé¾î ÀÖ´Â ºä ¼¼Æ®ÀÎ ½Ã½ºÅÛ Ä«Å»·Î±×¸¦ Á¶È¸ÇØ º¸½Ê½Ã¿À. ÀÌ Ä«Å»·Î±×¿¡ ´ëÇØ¼­´Â SQL ÂüÁ¶¼­¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.

µ¥ÀÌÅÍ À¯ÇüÀ» ¾Ë¾Æ³ÂÀ¸¸é È£½ºÆ® ¾ð¾î ÀåÀÇ º¯È¯Ç¥¸¦ ÂüÁ¶ÇÏ¿© ÇØ´ç ¼±¾ð¹®À» ÄÚµåÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. Declaration Generator À¯Æ¿¸®Æ¼(db2dclgn)¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¿¡ Á¦°øµÈ Å×ÀÌºí¿¡ ´ëÇÑ ÇØ´ç ¼±¾ð¹®À» »ý¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. db2dclgn¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº ¼±¾ð »ý¼º±â - db2dclgn ¹× Command ReferenceÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Ç¥ 4¿¡´Â Áö¿ø È£½ºÆ® ¾ð¾î¿¡ ÀÖ´Â ¼±¾ð¹® ¿¹°¡ ³ª¿Í ÀÖ½À´Ï´Ù. REXX ÀÀ¿ëÇÁ·Î±×·¥Àº LOB À§Ä¡ ÁöÁ¤ÀÚ ¹× ÆÄÀÏ ÂüÁ¶ º¯¼ö¸¦ Á¦¿ÜÇϰí, È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. º¯¼ö ¸ñÂ÷¸¦ ÅëÇØ ·±Å¸Àӽÿ¡ ±âŸ È£½ºÆ® º¯¼ö µ¥ÀÌÅÍ À¯Çü ¹× Å©±â¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ 4¿¡´Â BEGIN¹® ¹× END DECLARE SECTION¹®µµ ÀÖ½À´Ï´Ù. SQL¹®ÀÇ ºÐ¸®¹®ÀÚ°¡ ¾ð¾î¿¡ µû¶ó ¾î¶»°Ô ´Ù¸¥Áö º¸½Ê½Ã¿À. ÀÌ·¯ÇÑ ¸í·É¹®µéÀÇ Á¤È®ÇÑ À§Ä¡ ÁöÁ¤, Áö¼Ó ¹× ºÐ¸® ±ÔÄ¢¿¡ ´ëÇØ¼­´Â ÀÌ Ã¥ÀÇ ¾ð¾îº° ÇØ´ç ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.

¿À·ù ¹× °æ°í Á¶Àý

SQL Åë½Å ¿µ¿ª(SQLCA)¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÀÌ ÀåÀÇ µÞºÎºÐ¿¡¼­ ´Ù·ê °ÍÀÔ´Ï´Ù. ÀÌ Àý¿¡¼­´Â °£´ÜÇÑ °³¿ä¸¸ Á¦½ÃµË´Ï´Ù. SQLCA¸¦ ¼±¾ðÇÏ·Á¸é ÇÁ·Î±×·¥¿¡¼­ INCLUDE SQLCA¹®À» ÄÚµåÈ­ÇϽʽÿÀ.

C ¶Ç´Â C++ ÀÀ¿ëÇÁ·Î±×·¥¿ë:

     EXEC SQL INCLUDE SQLCA;

Java ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °æ¿ì: Java¿¡¼­´Â SQLCA¸¦ ¸í½ÃÀûÀ¸·Î »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å, SQLException ÀνºÅϽº ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© SQLSTATE ¹× SQLCODE °ªÀ» ¾ò½À´Ï´Ù. Java¿¡ ÀÖ´Â SQLSTATE ¹× SQLCODE °ª¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

COBOL ÀÀ¿ëÇÁ·Î±×·¥¿ë:

     EXEC SQL INCLUDE SQLCA END-EXEC.

FORTRAN ÀÀ¿ëÇÁ·Î±×·¥¿ë:

     EXEC SQL INCLUDE SQLCA

ÇÁ·Î±×·¥À» »çÀü ó¸®ÇÒ ¶§ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº È£½ºÆ® ¾ð¾î º¯¼ö ¼±¾ð¹®À» INCLUDE SQLCA¹® À§Ä¡¿¡ »ðÀÔÇÕ´Ï´Ù. ½Ã½ºÅÛÀº °æ°í Ç÷¡±×, ¿À·ù ÄÚµå ¹× Áø´Ü Á¤º¸¿ë º¯¼ö¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ÇÁ·Î±×·¥°ú Åë½ÅÇÕ´Ï´Ù.

½Ã½ºÅÛÀº °¢ SQL¹®À» ½ÇÇàÇÑ ÈÄ SQLCODE ¹× SQLSTATE ¸ðµÎ¿¡¼­ ¸®ÅÏ Äڵ带 ¸®ÅÏÇÕ´Ï´Ù. SQLCODE´Â ¸í·É¹® ½ÇÇàÀ» ¿ä¾àÇÏ´Â Á¤¼ö °ªÀ̰í, SQLSTATE´Â IBMÀÇ °ü°èÇü µ¥ÀÌÅͺ£À̽º Á¦Ç°À» ÅëÇØ ÀϹÝÀûÀÎ ¿À·ù Äڵ带 Á¦°øÇÏ´Â ¹®ÀÚ ÇʵåÀÔ´Ï´Ù. SQLSTATE´Â ISO/ANS SQL92 ¹× FIPS 127-2 Ç¥ÁØÀ» µû¸¨´Ï´Ù.
ÁÖ: FIPS 127-2´Â Federal Information Processing Standards Publication 127-2 for Database Language SQLÀ» ÀǹÌÇÕ´Ï´Ù. ISO/ANS SQL92´Â American National Standard Database Language SQL X3.135-1992 ¹× International Standard ISO/IEC 9075:1992, Database Language SQLÀ» ¸»ÇÕ´Ï´Ù.

SQLCODE°¡ 0º¸´Ù ÀÛÀ» °æ¿ì ¿À·ù°¡ ¹ß»ýÇß°í ¸í·É¹®ÀÌ Ã³¸®µÇÁö ¾Ê¾ÒÀ½À» ³ªÅ¸³À´Ï´Ù. SQLCODE°¡ 0º¸´Ù Å« °æ¿ì °æ°í°¡ ³ªÅ¸³µÁö¸¸ ¿©ÀüÈ÷ ¸í·É¹®ÀÌ Ã³¸®µÇ¾úÀ½À» ³ªÅ¸³À´Ï´Ù. SQLCODE ¹× SQLSTATE¿¡ ´ëÇØ¼­´Â ¸Þ½ÃÁö ÂüÁ¶¼­ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

°¢ SQL¹® ´ÙÀ½¿¡ ½Ã½ºÅÛÀÌ ¿À·ù Á¡°ËÀ» Á¦¾îÇϵµ·Ï ÇÏ·Á¸é WHENEVER¹®À» »ç¿ëÇϽʽÿÀ.
ÁÖ:Java¿ë Embedded SQL(SQLJ) ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­´Â WHENEVER¹®À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Java¿¡ ÀÖ´Â SQLSTATE ¹× SQLCODE °ª¿¡ ¼³¸íµÇ¾î ÀÖ´Â SQLException ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© SQL¹®¿¡ ÀÇÇØ ¸®ÅÏµÈ ¿À·ùµéÀ» ó¸®ÇϽʽÿÀ.

´ÙÀ½ WHENEVER¹®Àº SQLCODE°¡ À½¼öÀÏ ¶§ ½Ã½ºÅÛ¿¡°Ô ½ÇÇà »óȲÀ» Ç¥½ÃÇÕ´Ï´Ù.

     WHENEVER SQLERROR GO TO errchk

Áï, SQL ¿À·ù°¡ ¹ß»ýÇÒ ¶§¸¶´Ù ÇÁ·Î±×·¥ Á¦¾î´Â errchk¿Í °°Àº ·¹ÀÌºí µÚ¿¡ ¿À´Â ÄÚµå·Î À̵¿µË´Ï´Ù. ÀÌ Äڵ忡´Â SQLCA¿¡ ÀÖ´Â ¿À·ù Ç¥½Ã±â¸¦ ºÐ¼®Çϱâ À§ÇÑ ³í¸®°¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. ERRCHK Á¤ÀÇ¿¡ µû¶ó ´ÙÀ½ ÀýÂ÷ÀÇ ÇÁ·Î±×·¥ Áö½Ã¸¦ ½ÇÇàÇϰųª ÀϺΠƯ¼ö ±â´ÉÀ» ¼öÇàÇϸç, ´ëºÎºÐÀÇ °æ¿ì¿¡¼­Ã³·³ ÇöÀç Æ®·£Àè¼ÇÀ» ±¸°£ º¹¿øÇϰí ÇÁ·Î±×·¥À» Á¾·áÇÏ´Â Á¶Ä¡°¡ ÃëÇØÁý´Ï´Ù. Æ®·£Àè¼Ç¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº Æ®·£Àè¼Ç ÄÚµùÀÇ ³»¿ëÀ», »ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ÀÇ ¿À·ù Á¡°Ë ¹æ¹ý¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº Áø´Ü Á¶Àý ¹× SQLCA ±¸Á¶ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

WHENEVER SQLERROR¹®À» »ç¿ëÇÒ ¶§ÀÇ ½ÇÇà½Ã À¯ÀÇ»çÇ×. ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¿À·ù Á¶Àý Äڵ忡 SQL¹®¿¡ Æ÷ÇԵǾî ÀÖ°í, ÀÌ·¯ÇÑ ¸í·É¹®ÀÇ ½ÇÇà °á°ú ¿ø·¡ ¿À·ù¸¦ ó¸®ÇÏ´Â µ¿¾È ¿À·ù°¡ ¹ß»ýÇÒ °æ¿ì, ¹«ÇÑ ·çÇÁ·Î µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì ¹®Á¦¸¦ ÇØ°áÇϱⰡ ¾î·Æ½À´Ï´Ù. WHENEVER SQLERROR ¸ñÀûÁöÀÇ ÃÖÃÊ ¸í·É¹®Àº WHENEVER SQLERROR CONTINUE¿©¾ß ÇÕ´Ï´Ù. ÀÌ ¸í·É¹®Àº ¿À·ù Çڵ鷯¸¦ Àç¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸í·É¹® ´ÙÀ½¿¡ SQL¹®À» ¾ÈÀüÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

C++ ¶Ç´Â C·Î ÀÛ¼ºµÈ DB2 ÀÀ¿ëÇÁ·Î±×·¥ÀÇ °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿©·¯ °³ÀÇ ¼Ò½º ÆÄÀÏ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸é SQLCAÀÇ ´ÙÁß Á¤ÀǸ¦ ÇÇÇÏ·Á¸é ÀÌ ÆÄÀÏ Áß Çϳª¿¡ EXEC SQL INCLUDE SQLCA¹®ÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. ³ª¸ÓÁö ¼Ò½º ÆÄÀÏÀº ´ÙÀ½ ÇàÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

     #include "sqlca.h"
     extern struct sqlca sqlca;

ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ISO/ANS SQL92 ¶Ç´Â FIPS 127-2 Ç¥ÁØÀ» µû¶ó¾ß ÇÏ´Â °æ¿ì, À§ ¸í·É¹®À̳ª INCLUDE SQLCA¹®À» »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. ISO/ANS SQL92 ¹× FIPS 127-2 Ç¥ÁØ¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº FIPS 127-2 ¹× ISO/ANS SQL92 Á¤ÀÇÀÇ ³»¿ëÀ» º¸½Ê½Ã¿À. À§ ¸í·É¹®À» ÄÚµåÈ­ÇÏ´Â ´ë¾È¿¡ ´ëÇØ¼­´Â ´ÙÀ½À» ÂüÁ¶ÇϽʽÿÀ.

Ãß°¡ ºñ½ÇÇà ¸í·É¹® »ç¿ë

ÀϹÝÀûÀ¸·Î ±âŸ ºñ½ÇÇà SQL¹®µµ ÀÌ ÇÁ·Î±×·¥ ÀýÀÇ ºÎºÐÀ̱⵵ ÇÕ´Ï´Ù. SQL ÂüÁ¶¼­ ¹× ÀÌ ¾È³»¼­ÀÇ ÈÄ¼Ó Àå ¸ðµÎ¿¡¼­ ºñ½ÇÇà ¸í·É¹®¿¡ ´ëÇØ ³íÀÇÇÕ´Ï´Ù. ºñ½ÇÇà ¸í·É¹®ÀÇ ¿¹´Â ´ÙÀ½°ú °°½À´Ï´Ù.

µ¥ÀÌÅͺ£À̽º ¼­¹ö¿¡ ¿¬°á

»ç¿ëÀÚ ÇÁ·Î±×·¥Àº ½ÇÇà SQL¹®À» ¼öÇàÇϱâ Àü¿¡ ¸ñÇ¥ µ¥ÀÌÅͺ£À̽º ¼­¹ö·ÎÀÇ ¿¬°áÀ» ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ¿¬°á·Î, ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â »ç¿ëÀÚÀÇ ±ÇÇÑ ºÎ¿© ID¿Í ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µ¥ÀÌÅͺ£À̽º ¼­¹ö À̸§ ¸ðµÎ°¡ ½Äº°µË´Ï´Ù. ÀϹÝÀûÀ¸·Î »ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ÇÁ·Î¼¼½º´Â ÇÑ ¹ø¿¡ ÇϳªÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹ö·Î¸¸ ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ ¼­¹ö¸¦ ÇöÀç ¼­¹ö¶ó°í ÇÕ´Ï´Ù. ±×·¯³ª, ÀÀ¿ëÇÁ·Î±×·¥Àº ´ÙÁß »çÀÌÆ® °»½Å ȯ°æ³»¿¡¼­ ¿©·¯ °³ÀÇ µ¥ÀÌÅͺ£À̽º ¼­¹ö·Î ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì ÇϳªÀÇ ¼­¹ö¸¸ ÇöÀç ¼­¹ö°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. ´ÙÁß »çÀÌÆ® °»½Å¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº ´ÙÁß »çÀÌÆ® °»½ÅÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

»ç¿ëÀÚ ÇÁ·Î±×·¥Àº µ¥ÀÌÅͺ£À̽º ¼­¹ö·ÎÀÇ ¿¬°áµµ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¬°á »óÅ¿¡ ´ëÇÑ ³íÀÇ ¹× CONNECT¹® »ç¿ë ¹æ¹ý¿¡ ´ëÇØ¼­´Â SQL ÂüÁ¶¼­ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. Ãʱ⼳Á¤½Ã ÀÀ¿ëÇÁ·Î±×·¥ ¸®Äù½ºÅÍ(AR)´Â ±âº» µ¥ÀÌÅͺ£À̽º ¼­¹ö¸¦ ¼³Á¤ÇÕ´Ï´Ù. ³»ÀçµÈ ¿¬°áÀÌ ÀÛµ¿µÇ¾î ÀÖ´Â °æ¿ì, Ãʱ⼳Á¤ ÈÄ ½ÃÀÛµÈ ÀÀ¿ëÇÁ·Î±×·¥ ÇÁ·Î¼¼½º°¡ ±âº» µ¥ÀÌÅͺ£À̽º ¼­¹ö·Î ³»ÀçÀûÀ¸·Î ¿¬°áÇÕ´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥¿¡ ÀÇÇØ ½ÇÇàµÇ´Â ÃÖÃÊÀÇ SQL¹®À¸·Î CONNECT¹®À» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ±âº» µ¥ÀÌÅͺ£À̽º°¡ ¾Æ´Ñ SQL¹®À» ½ÇÇàÇÒ ¿ì·Á°¡ ¾ø¾îÁý´Ï´Ù.

¿¬°áÀÌ ¼³Á¤µÈ ÈÄ¿¡´Â ÇÁ·Î±×·¥ÀÌ ´ÙÀ½À» ½ÇÇàÇÏ´Â SQL¹®À» ¹ßÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

CONNECT RESET¹®, CONNECT TO¹® ¶Ç´Â DISCONNECT¹®ÀÌ ¹ßÇàµÉ ¶§±îÁö ¿¬°áÀÌ Áö¼ÓµË´Ï´Ù. ´ÙÁß »çÀÌÆ® °»½Å ȯ°æ¿¡¼­, DB2 RELEASE¿Í DB2 COMMIT°¡ ¹ßÇàµÉ ¶§±îÁöµµ ¿¬°áÀÌ Áö¼ÓµË´Ï´Ù. CONNECT TO¹®Àº ´ÙÁß »çÀÌÆ® °»½ÅÀ» »ç¿ëÇÒ ¶§ ¿¬°áÀ» Á¾·áÇÏÁö ¾Ê½À´Ï´Ù(´ÙÁß »çÀÌÆ® °»½Å ÂüÁ¶).

Æ®·£Àè¼Ç ÄÚµù

Æ®·£Àè¼ÇÀ̶õ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ Àüü·Î Ãë±ÞÇÏ´Â (ÁßÀç È£½ºÆ® ¾ð¾î Äڵ带 °¡Áø) ÀÏ·ÃÀÇ SQL¹®ÀÔ´Ï´Ù. Æ®·£Àè¼ÇÀ» ÈçÈ÷ ÀÛ¾÷ ´ÜÀ§(UOW)¶ó°íµµ ÇÕ´Ï´Ù.

Æ®·£Àè¼Ç ·¹º§¿¡¼­ µ¥ÀÌÅÍÀÇ Àϰü¼ºÀ» À¯ÁöÇÏ·Á¸é Æ®·£Àè¼Ç ³»ÀÇ ¸ðµç Á¶ÀÛÀÌ ¿Ï·áµÇ°Å³ª ¾î¶² Á¶ÀÛµµ ¿Ï·áµÇÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÇÁ·Î±×·¥ÀÌ ÇÑ °èÁ¿¡¼­ µ·À» ÀÎÃâÇØ¼­ ´Ù¸¥ °èÁ¿¡ Ãß°¡ÇÑ´Ù°í °¡Á¤ÇϽʽÿÀ. ´ÜÀÏ ÀÌ µÎ °»½ÅÀ» ¸ðµÎ ´ÜÀÏ Æ®·£Àè¼Ç¿¡ µÐ »óÅ¿¡¼­ °»½ÅÀÌ ÁøÇàµÇ´Â µ¿¾È ½Ã½ºÅÛ Àå¾Ö°¡ ¹ß»ýÇÒ °æ¿ì, ½Ã½ºÅÛÀ» ´Ù½Ã ½ÃÀÛÇÒ ¶§ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº Æ®·£Àè¼ÇÀÌ ½ÃÀ۵DZâ Àü »óÅ·Πµ¥ÀÌÅ͸¦ ÀÚµ¿ º¹¿ø½Ãŵ´Ï´Ù. ÇÁ·Î±×·¥ ¿À·ù°¡ ¹ß»ýÇÏ¸é µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº ¿À·ù°¡ ÀÖ´Â ¸í·É¹®¿¡ ÀÇÇØ º¯°æµÈ ¸ðµç º¯°æ»çÇ×À» º¹¿øÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº Ưº°È÷ ±¸°£ º¹¿øÇÏÁö ¾Ê´Â ÇÑ ¿À·ù°¡ ÀÖ´Â ¸í·É¹®À» ½ÇÇàÇϱâ Àü¿¡ Æ®·£Àè¼Ç¿¡¼­ ¼öÇàµÈ ÀÛ¾÷À» ½ÇÇà Ãë¼Ò½Ãŵ´Ï´Ù.

´ÜÀÏ ÀÀ¿ëÇÁ·Î±×·¥ ³»¿¡¼­ Çϳª ÀÌ»óÀÇ Æ®·£Àè¼ÇÀ» ÄÚµåÈ­ÇÒ ¼ö ÀÖÀ¸¸ç, ´ÜÀÏ Æ®·£Àè¼Ç ³»ºÎ·ÎºÎÅÍ Çϳª ÀÌ»óÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ¾×¼¼½ºÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù. Çϳª ÀÌ»óÀÇ µ¥ÀÌÅͺ£À̽º¿¡ ¾×¼¼½ºÇÏ´Â Æ®·£Àè¼ÇÀ» ´ÙÁß »çÀÌÆ® °»½ÅÀ̶ó°í ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÁÖÁ¦¿¡ ´ëÇØ¼­´Â ¿ø°Ý ÀÛ¾÷ ´ÜÀ§(RUOW) ¹× ´ÙÁß »çÀÌÆ® °»½ÅÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Æ®·£Àè¼Ç ½ÃÀÛ

Æ®·£Àè¼ÇÀº ³»ÀçÀûÀ¸·Î ÃÖÃÊÀÇ executable SQL¹®À¸·Î ½ÃÀÛÇϰí, COMMIT¹® ¶Ç´Â ROLLBACK¹®À¸·Î, ¶Ç´Â ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ¶§ Á¾·áµË´Ï´Ù.

´ëºñÀûÀ¸·Î ´ÙÀ½ ¿©¼¸ °³ ¹®ÀåÀº ½ÇÇà ¸í·É¹®ÀÌ ¾Æ´Ï¹Ç·Î Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù.

     BEGIN DECLARE SECTION          INCLUDE SQLCA
     END DECLARE SECTION            INCLUDE SQLDA
     DECLARE CURSOR                 WHENEVER

½ÇÇà SQL¹®Àº Ç×»ó Æ®·£Àè¼Ç ³»¿¡¼­ ¹ß»ýÇÕ´Ï´Ù. ÇÁ·Î±×·¥¿¡ Æ®·£Àè¼Ç Á¾·á ÈÄ ½ÇÇà SQL¹®ÀÌ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì ÀÚµ¿À¸·Î »õ·Î¿î Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÕ´Ï´Ù.

Æ®·£Àè¼Ç Á¾·á

Æ®·£Àè¼Ç Á¾·á ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ µÎ °¡ÁöÀÔ´Ï´Ù.

COMMIT¹® »ç¿ë

ÀÌ ¸í·É¹®Àº ÇöÀç Æ®·£Àè¼ÇÀ» Á¾·áÇÕ´Ï´Ù. ÇöÀç Æ®·£Àè¼Ç µµÁßÀÇ µ¥ÀÌÅͺ£À̽º º¯°æ»çÇ×À» ´Ù¸¥ ÇÁ·Î¼¼½º°¡ º¼ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.

ÀÀ¿ëÇÁ·Î±×·¥ ¿©°ÇÀÌ Çã¿ëÇÏ´Â °¡´ÉÇÑ ÇÑ ½Å¼ÓÈ÷ º¯°æ»çÇ×À» È®¾àÇØ¾ß ÇÕ´Ï´Ù. ƯÈ÷, Å͹̳ηκÎÅÍÀÇ ÀÔ·ÂÀ» ´ë±âÇÏ´Â µ¿¾È È®¾àµÇÁö ¾ÊÀº º¯°æ»çÇ×ÀÌ º¸À¯µÇÁö ¾Êµµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼ºÇϽʽÿÀ. ÀÌ·¸°Ô ÇÏ¸é µ¥ÀÌÅͺ£À̽º ÀÚ¿øÀ» ¿À·§µ¿¾È º¸À¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÀÚ¿øÀ» º¸À¯ÇÔÀ¸·Î½á À̵é ÀÚ¿øÀ» ÇÊ¿ä·Î ÇÏ´Â ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¼öÇàµÇÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù.

COMMIT¹®Àº È£½ºÆ® º¯¼ö ³»¿ë¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.

»ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥Àº Á¾·áÇϱâ Àü¿¡ ¸í½ÃÀûÀ¸·Î Æ®·£Àè¼ÇÀ» Á¾·á½ÃÄÑ¾ß ÇÕ´Ï´Ù. Æ®·£Àè¼ÇÀ» ¸í½ÃÀûÀ¸·Î Á¾·á½ÃŰÁö ¾ÊÀ¸¸é ÇÁ·Î±×·¥ÀÌ ¼º°øÀûÀ¸·Î Á¾·áµÉ ¶§ ÇÁ·Î±×·¥ÀÇ º¸·ù Æ®·£Àè¼Ç Áß¿¡ ÀÌ·ç¾îÁø ¸ðµç º¯°æ»çÇ×À» DB2ÀÌ ÀÚµ¿À¸·Î È®¾àÇÕ´Ï´Ù. ´Ü, Windows32ºñÆ® ¿î¿µ üÁ¦¿¡¼­´Â ¿¹¿ÜÀÔ´Ï´Ù. DB2Àº ´ÙÀ½ Á¶°Ç ÇÏ¿¡¼­ÀÇ º¯°æ»çÇ×Àº ±¸°£ º¹¿øÇÕ´Ï´Ù.

Windows 32ºñÆ® ¿î¿µ üÁ¦¿¡¼­´Â Æ®·£Àè¼ÇÀ» ¸í½ÃÀûÀ¸·Î È®¾àÇÏÁö ¾ÊÀ¸¸é µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº Ç×»ó Æ®·£Àè¼ÇÀ» ±¸°£ º¹¿øÇÕ´Ï´Ù.

ÇÁ·Î±×·¥ Á¾·á¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº ÇÁ·Î±×·¥ Á¾·á ¹× Áø´Ü Á¶Àý ¹× SQLCA ±¸Á¶ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

ROLLBACK¹® »ç¿ë

ÀÌ ¸í·É¹®Àº ÇöÀç Æ®·£Àè¼ÇÀ» Á¾·áÇϰí, Æ®·£Àè¼ÇÀ» ½ÃÀÛÇϱâ Àü »óÅ·Πµ¥ÀÌÅ͸¦ º¹¿øÇÕ´Ï´Ù.

ROLLBACK¹®Àº È£½ºÆ® º¯¼ö ³»¿ë¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê½À´Ï´Ù.

¿À·ù ¶Ç´Â °æ°í·Î ÀÎÇØ ÀÔ·ÂµÈ ·çƾ¿¡¼­ ROLLBACK¹®À» »ç¿ëÇϰí SQL WHENEVER¹®À» »ç¿ëÇϸé, ROLLBACK ÀÌÀü¿¡ WHENEVER SQLERROR CONTINUE ¹× WHENEVER SQLWARNING CONTINUE¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¸°Ô Çϸé ROLLBACKÀÌ ¿À·ù³ª °æ°í·Î ÀÎÇØ ½ÇÆÐÇÒ °æ¿ì ÇÁ·Î±×·¥ ·çÇÁ°¡ ¹ß»ýÇÏ´Â °ÍÀ» ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.

½É°¢ÇÑ ¿À·ù°¡ ¹ß»ýÇϸé ROLLBACK¹®À» ½ÇÇàÇÒ ¼ö ¾ø´Ù´Â ¸Þ½ÃÁö°¡ ³ªÅ¸³³´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö ÀÀ¿ëÇÁ·Î±×·¥ »çÀÌÀÇ Åë½Å µÎÀý ¶Ç´Â µ¥ÀÌÅͺ£À̽ºÀÇ ¼Õ»ó°ú °°Àº ½É°¢ÇÑ ¿À·ù°¡ ¹ß»ýÇÒ °æ¿ì ROLLBACK¹®À» ½ÇÇàÇÏÁö ¸¶½Ê½Ã¿À. ½É°¢ÇÑ ¿À·ù°¡ ¹ß»ýÇÑ ÈÄ ½ÇÇàÇÒ ¼ö ÀÖ´Â À¯ÀÏÇÑ ¸í·É¹®Àº CONNECT¹®ÀÔ´Ï´Ù.

ÇÁ·Î±×·¥ Á¾·á

ÇÁ·Î±×·¥À» Á¦´ë·Î Á¾·áÇÏ·Á¸é,

  1. (ÁøÇàÁßÀÏ °æ¿ì) COMMIT¹® ¶Ç´Â ROLLBACK¹®À» ¸í½ÃÀûÀ¸·Î ½ÇÇàÇÏ¿© ÇöÀç Æ®·£Àè¼ÇÀ» Á¾·áÇϽʽÿÀ.
  2. CONNECT RESET¹®À» »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ¼­¹ö·ÎÀÇ ¿¬°áÀ» ÇØÁ¦ÇϽʽÿÀ.
  3. ÇÁ·Î±×·¥ÀÌ »ç¿ëÇÏ´Â ÀÚ¿øÀ» Á¦°ÅÇϽʽÿÀ. ¿¹¸¦ µé¾î, »ç¿ë ÁßÀÎ µ¥ÀÌÅÍ ±¸Á¶ ¶Ç´Â Àӽà ÀúÀ念¿ªÀ» ºñ¿ì½Ê½Ã¿À.
ÁÖ:ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ ¶§ ÇöÀç Æ®·£Àè¼ÇÀÌ ¿©ÀüÈ÷ Ȱµ¿ÁßÀÎ °æ¿ì DB2´Â Æ®·£Àè¼ÇÀ» ³»ÀçÀûÀ¸·Î Á¾·áÇÕ´Ï´Ù. ³»ÀçÀûÀ¸·Î Æ®·£Àè¼ÇÀ» Á¾·áÇÒ ¶§ DB2 ÀÛµ¿ÀÌ Ç÷§Æûº°·Î ÀÌ·ç¾îÁú °æ¿ì, ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ±â Àü¿¡ COMMIT¹® ¶Ç´Â ROLLBACK¹®À» ½ÇÇàÇÏ¿© ¸ðµç Æ®·£Àè¼ÇÀ» ¸í½ÃÀûÀ¸·Î Á¾·áÇØ¾ß ÇÕ´Ï´Ù. DB2°¡ ³»ÀçÀûÀ¸·Î Æ®·£Àè¼ÇÀ» Á¾·áÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×Àº "Æ®·£Àè¼Ç ³»ÀçÀû Á¾·á"ÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

Æ®·£Àè¼Ç ³»ÀçÀû Á¾·á

»ç¿ëÀÚ ÇÁ·Î±×·¥ÀÌ ÇöÀç Æ®·£Àè¼ÇÀ» ³¡³»Áö ¾Ê°í Á¾·áµÇ´Â °æ¿ì DB2´Â ³»ÀçÀûÀ¸·Î ÇöÀç Æ®·£Àè¼ÇÀ» Á¾·á½Ãŵ´Ï´Ù(ÇÁ·Î±×·¥ÀÇ ¿Ã¹Ù¸¥ Á¾·á ¹æ¹ý¿¡ ´ëÇØ¼­´Â ÇÁ·Î±×·¥ Á¾·áÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ). DB2´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á¾·áµÉ ¶§ COMMIT¹®À̳ª ROLLBACK¹®À» ½ÇÇàÇÏ¿© ÇöÀç Æ®·£Àè¼ÇÀ» Á¾·á½Ãŵ´Ï´Ù. DB2°¡ COMMIT¹® ¶Ç´Â ROLLBACK¹® Áß¿¡¼­ ¾î´À °ÍÀ» ½ÇÇàÇÒ °ÍÀÎÁö´Â ´ÙÀ½°ú °°Àº Àμöµé¿¡ ÀÇÇØ °áÁ¤µË´Ï´Ù.

´ëºÎºÐÀÇ Áö¿ø ¿î¿µ üÁ¦¿¡¼­

DB2´Â Á¾·á°¡ Á¤»óÀûÀ¸·Î ÀÌ·ç¾îÁú °æ¿ì Æ®·£Àè¼ÇÀ» ³»ÀçÀûÀ¸·Î È®¾àÇϰí, ºñÁ¤»óÀûÀ¸·Î ÀÌ·ç¾îÁú °æ¿ì Æ®·£Àè¼ÇÀ» ³»ÀçÀûÀ¸·Î ±¸°£ º¹¿øÇÕ´Ï´Ù. »ç¿ëÀÚ ÇÁ·Î±×·¥ÀÌ ºñÁ¤»ó Á¾·á¶ó°í ¿©±â´Â °ÍÀº µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ ºñÁ¤»ó Á¾·á¶ó°í °£ÁÖÇÏÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¾î, ÀÀ¿ëÇÁ·Î±×·¥¿¡ ¿¹±âÄ¡ ¸øÇÑ ¿À·ù°¡ ¹ß»ýÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥ÀÌ °©ÀÚ±â Á¾·áµÉ ¶§ exit(-16)¸¦ ÄÚµåÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº À̸¦ Á¤»ó Á¾·á¶ó°í °£ÁÖÇÏ°í Æ®·£Àè¼ÇÀ» È®¾àÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥Àº ºÐÇÒ À§¹Ý ¶Ç´Â ¿¹¿Ü¿Í °°Àº Ç׸ñµéÀ» ºñÁ¤»ó Á¾·á·Î ¿©±é´Ï´Ù.

Windows 32ºñÆ® ¿î¿µ üÁ¦

DB2´Â »ç¿ëÀÚ°¡ ¸í½ÃÀûÀ¸·Î COMMIT¹®À» »ç¿ëÇÏ¿© Æ®·£Àè¼ÇÀ» ¸í½ÃÀûÀ¸·Î È®¾àÇÏÁö ¾Ê´Â ÇÑ, ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î Á¾·áµÇ¾ú´ÂÁö¿¡ °ü°è¾øÀÌ Ç×»ó Æ®·£Àè¼ÇÀ» ±¸°£ º¹¿øÇÕ´Ï´Ù.

DB2 Context API »ç¿ë½Ã

»ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥Àº DB2 API¸¦ »ç¿ëÇÏ¿© ´ÙÁß ½º·¹µå µ¥ÀÌÅͺ£À̽º ¾×¼¼½º¿¡ ¼³¸íµÈ ´ë·Î ½º·¹µå »çÀÌ¿¡ ÀÀ¿ëÇÁ·Î±×·¥ ¹®¸ÆµéÀ» ¼³Á¤ ¹× Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ÀÌ·¯ÇÑ DB2 API¸¦ »ç¿ëÇÒ °æ¿ì DB2´Â ÀÀ¿ëÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î Á¾·áµÇ´ÂÁö¿¡ °ü°è¾øÀÌ Æ®·£Àè¼ÇÀ» ³»ÀçÀûÀ¸·Î ±¸°£ º¹¿øÇÕ´Ï´Ù. COMMIT¹®À» »ç¿ëÇÏ¿© Æ®·£Àè¼ÇÀ» ¸í½ÃÀûÀ¸·Î È®¾àÇÏÁö ¾Ê´Â ÇÑ DB2´Â Æ®·£Àè¼ÇÀ» ±¸°£ º¹¿øÇÕ´Ï´Ù.

ÀÀ¿ëÇÁ·Î±×·¥ ÀÇ»çÄÚµå ÇÁ·¹ÀÓ¿öÅ©

ÇÁ·Î±×·¥ ÄÚµù¿ë ÀÇ»çÄÚµå ÇÁ·¹ÀÓ¿öÅ©¿¡¼­´Â DB2 ÀÀ¿ëÇÁ·Î±×·¥¿ë ÀÏ¹Ý ÇÁ·¹ÀÓ¿öÅ©¸¦ ÀÇ»çÄÚµå Çü½ÄÀ¸·Î ¿ä¾à ¼³¸íÇÕ´Ï´Ù. ¹°·Ð »ç¿ëÀÚ ÇÁ·Î±×·¥¿¡ ¸Âµµ·Ï ÀÌ ÇÁ·¹ÀÓ¿öÅ©¸¦ Á¶Á¤ÇØ¾ß ÇÕ´Ï´Ù.

Start Program
EXEC SQL BEGIN DECLARE SECTION                                |
  DECLARE USERID FIXED CHARACTER (8)                          |
  DECLARE PW FIXED CHARACTER (8)                              |
                                                              | ÀÀ¿ëÇÁ·Î±×·¥
  (other host variable declarations)                          | ¼³Á¤
                                                              |
EXEC SQL END DECLARE SECTION                                  |
EXEC SQL INCLUDE SQLCA                                        |
EXEC SQL WHENEVER SQLERROR GOTO ERRCHK                        |
 
  (program logic)
 
EXEC SQL CONNECT TO database A USER :userid USING :pw         |
EXEC SQL SELECT ...                                           |
EXEC SQL INSERT ...                                           | ù¹øÂ°
  (more SQL statements)                                       | UOW
EXEC SQL COMMIT                                               |
 
  (more program logic)
 
EXEC SQL CONNECT TO database B USER :userid USING :pw         |
EXEC SQL SELECT ...                                           |
EXEC SQL DELETE ...                                           | µÎ ¹øÂ°
  (more SQL statements)                                       | UOW
EXEC SQL COMMIT                                               |
 
  (more program logic)
 
EXEC SQL CONNECT TO database A                                |
EXEC SQL SELECT ...                                           |
EXEC SQL DELETE ...                                           | ¼¼ ¹øÂ°
  (more SQL statements)                                       | UOW
EXEC SQL COMMIT                                               |
 
  (more program logic)
 
EXEC SQL CONNECT RESET                                        |
ERRCHK                                                        |
                                                              | ÀÀ¿ëÇÁ·Î±×·¥
  (check error information in SQLCA)                          | ¼Ò°Å
                                                              |
End Program


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