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


COBOL¿¡¼­ È£½ºÆ® º¯¼ö

È£½ºÆ® º¯¼ö´Â SQL¹®¿¡¼­ ÂüÁ¶µÇ´Â COBOL ¾ð¾î º¯¼öÀÔ´Ï´Ù. ÀÌ·± º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·Î ÀÔ·Â µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ Ãâ·Â µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥À» »çÀü ó¸® ÄÄÆÄÀÏÇϸé ÄÄÆÄÀÏ·¯¿¡¼­ ´Ù¸¥ COBOL º¯¼ö¿Í ¸¶Âù°¡Áö·Î È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. È£½ºÆ® º¯¼ö¸¦ ¸í¸íÇϰí, ¼±¾ðÇϰí, »ç¿ëÇÒ ¶§ ¾Æ·¡¿¡ ±â¼úµÈ ±ÔÄ¢À» µû¸£½Ê½Ã¿À.

COBOL¿¡¼­ ¿À½ºÆ® º¯¼ö ¸í¸í

SQL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ ¼±¾ðµÈ À̸§À¸·Î È£½ºÆ® º¯¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. ´ÙÀ½ ±ÔÄ¢ÀÌ Àû¿ëµË´Ï´Ù.

È£½ºÆ® º¯¼ö ¼±¾ð

SQL ¼±¾ð ÀýÀº È£½ºÆ® º¯¼ö ¼±¾ðÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀýÀº ÈÄ¼Ó SQL¹®¿¡¼­ ÂüÁ¶ÇÒ ¼ö Àִ ȣ½ºÆ® º¯¼ö¸¦ ÈÄ¼Ó »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡ ¾Ë·Á ÁÝ´Ï´Ù.

±¸Á¶È­ À¯Çü¿¡ ´ëÇØ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â °Í¿¡ ´ëÇÑ Á¤º¸´Â ±¸Á¶È­ À¯Çü È£½ºÆ® º¯¼ö ¼±¾ðÀ» ÂüÁ¶ÇϽʽÿÀ.

COBOL »çÀü ó¸® ÄÄÆÄÀÏ·¯¸¸ÀÌ À¯È¿ÇÑ COBOL ¼±¾ðÀÇ ºÎ¼Ó ÁýÇÕÀ» ÀνÄÇÕ´Ï´Ù.

COBOL¿¡¼­ ¼ýÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº ¼ýÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ ¼ýÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
                                        .-IS-.
>>-+-01-+--variable-name---+-PICTURE-+--+----+--picture-string-->
   '-77-'                  '-PIC-----'
 
>-----+------------------------------------------+-------------->
      |                              (1)         |
      '-+---------------+---+-COMP-3----------+--'
        |       .-IS-.  |   +-COMPUTATIONAL-3-+
        '-USAGE-+----+--'   +-COMP-5----------+
                            '-COMPUTATIONAL-5-'
 
>----+----------------------+---.------------------------------><
     |       .-IS-.         |
     '-VALUE-+----+--value--'
 

ÁÖ:

  1. COMP-3ÀÇ ´ëü´Â ¾ÐÃà ½ÊÁø¼öÀÔ´Ï´Ù.

ºÎµ¿ ¼Ò¼öÁ¡

>>-+-01-+--variable-name----+---------------+------------------->
   '-77-'                   |       .-IS-.  |
                            '-USAGE-+----+--'
 
                              (1)
>-----+--+-COMPUTATIONAL-1-+--------+--------------------------->
      |  '-COMP-1----------'        |
      |                       (2)   |
      '--+-COMPUTATIONAL-2-+--------'
         '-COMP-2----------'
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 

ÁÖ:

  1. REAL (SQLTYPE 480), ±æÀÌ 4

  2. DOUBLE (SQLTYPE 480), ±æÀÌ 8

¼ýÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. Picture-stringÀÇ ¾ç½ÄÀº ´ÙÀ½ Áß Çϳª¿Í °°¾Æ¾ß ÇÕ´Ï´Ù.

  2. 9´Â È®ÀåµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, S9(3)" ´ë½Å "S999"°¡ µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù.

  3. m°ú nÀº ¾çÀÇ Á¤¼ö¿©¾ß ÇÕ´Ï´Ù.

COBOL¿¡¼­ ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®: °íÁ¤ ±æÀÌ´Â ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®: °íÁ¤ ±æÀÌ
 
                                        .-IS-.
>>-+-01-+--variable-name---+-PICTURE-+--+----+--picture-string-->
   '-77-'                  '-PIC-----'
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 

º¯¼ö ±æÀÌ

>>-01--variable-name-.-----------------------------------------><
 
                                   .-IS-.
>>-49--identifier-1---+-PICTURE-+--+----+--S9(4)---------------->
                      '-PIC-----'
 
>-----+------------------------------------------+-------------->
      '-+---------------+---+-COMP-5----------+--'
        |       .-IS-.  |   '-COMPUTATIONAL-5-'
        '-USAGE-+----+--'
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 
                                   .-IS-.
>>-49--identifier-2---+-PICTURE-+--+----+--picture-string------->
                      '-PIC-----'
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 

¹®ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. Picture-stringÀÇ ¾ç½ÄÀº X(m)¿©¾ß ÇÕ´Ï´Ù. ¶Ç´Â X´Â È®ÀåµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, "X(3)" ´ë½Å "XXX"°¡ µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù.

  2. °íÁ¤ ±æÀÌ ¹®ÀÚ¿­ÀÇ °æ¿ì mÀÇ ¹üÀ§´Â 1 - 254ÀÔ´Ï´Ù.

  3. °¡º¯ ±æÀÌ ¹®ÀÚ¿­ÀÇ °æ¿ì mÀÇ ¹üÀ§´Â 1 - 32 700ÀÔ´Ï´Ù.

  4. mÀÌ 32 672º¸´Ù Ŭ °æ¿ì È£½ºÆ® º¯¼ö´Â LONG VARCHAR ¹®ÀÚ¿­·Î ó¸®µÇ¸ç ±× »ç¿ëÀº Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù.

  5. PICTUREÀý¿¡¼­ X¿Í 9¸¦ picture character·Î »ç¿ëÇϽʽÿÀ. ´Ù¸¥ ¹®ÀÚ´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

  6. °¡º¯ ±æÀÌ ¹®ÀÚ¿­Àº ±æÀÌ Ç׸ñ°ú °ª Ç׸ñÀ¸·Î ±¸¼ºµË´Ï´Ù. ±æÀÌ Ç׸ñ°ú ¹®ÀÚ¿­ Ç׸ñ¿¡ ¼ö¿ë °¡´ÉÇÑ COBOL À̸§À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª SQL¹®ÀÇ ÁýÇÕÀûÀÎ À̸§À¸·Î °¡º¯ ±æÀÌ ¹®ÀÚ¿­À» ÂüÁ¶ÇϽʽÿÀ.

  7. ¾Æ·¡¿Í °°Àº CONNECT¹®¿¡¼­ COBOL ¹®ÀÚ¿­ È£½ºÆ® º¯¼ö dbname°ú userid µÚ¿¡ °ø¹éÀÌ Æ÷ÇÔµÇÁö¸¸ ó¸® Àü¿¡ Á¦°ÅµË´Ï´Ù.

         EXEC SQL CONNECT TO :dbname USER :userid USING :p-word
         END-EXEC.
    

    ±×·¯³ª ¾ÏÈ£¿¡¼­ °ø¹éÀÌ Áß¿äÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ´ÙÀ½°ú °°Àº CONNECT¹®ÀÇ Áß¿äÇÑ ¾ÏÈ£ ±æÀ̸¦ ¸í½ÃÀûÀ¸·Î Áö½ÃÇÒ ¼ö ÀÖµµ·Ï p-word È£½ºÆ® º¯¼ö¸¦ VARCHAR µ¥ÀÌÅÍ Ç׸ñÀ¸·Î ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.

      EXEC SQL BEGIN DECLARE SECTION END-EXEC.
         01 dbname PIC X(8).
         01 userid PIC X(8).
         01 p-word.
             49 L PIC S9(4) COMP-5.
             49 D PIC X(18).
      EXEC SQL END DECLARE SECTION END-EXEC.
         PROCEDURE DIVISION.
             MOVE "sample" TO dbname.
             MOVE "userid" TO userid.
             MOVE "password" TO D OF p-word.
             MOVE 8          TO L of p-word.
         EXEC SQL CONNECT TO :dbname USER :userid USING :p-word
         END-EXEC.
    

COBOL¿¡¼­ ±×·¡ÇÈ È£½ºÆ® º¯¼öÀÇ ±¸¹®: °íÁ¤ ±æÀÌ´Â ±×·¡ÇÈ È£½ºÆ® º¯¼öÀÇ ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ ±×·¡ÇÈ È£½ºÆ® º¯¼öÀÇ ±¸¹®: °íÁ¤ ±æÀÌ
 
>>-+-01-+--variable-name---+-PICTURE-+-------------------------->
   '-77-'                  '-PIC-----'
 
     .-IS-.                         .-IS-.
>----+----+--picture-string-USAGE---+----+--DISPLAY-1----------->
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 

º¯¼ö ±æÀÌ

>>-01--variable-name-.-----------------------------------------><
 
                                   .-IS-.
>>-49--identifier-1---+-PICTURE-+--+----+--S9(4)---------------->
                      '-PIC-----'
 
>-----+------------------------------------------+-------------->
      '-+---------------+---+-COMP-5----------+--'
        |       .-IS-.  |   '-COMPUTATIONAL-5-'
        '-USAGE-+----+--'
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 
>>-49--identifier-2---+-PICTURE-+------------------------------->
                      '-PIC-----'
 
     .-IS-.                         .-IS-.
>----+----+--picture-string-USAGE---+----+--DISPLAY-1----------->
 
>-----+----------------------+--.------------------------------><
      |       .-IS-.         |
      '-VALUE-+----+--value--'
 

±×·¡ÇÈ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. Picture-stringÀÇ ¾ç½ÄÀº G(m)¿©¾ß ÇÕ´Ï´Ù. ¶Ç´Â G´Â È®ÀåµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, "G(3)" ´ë½Å "GGG"°¡ µé¾î°¥ ¼ö ÀÖ½À´Ï´Ù.

  2. °íÁ¤ ±æÀÌ ¹®ÀÚ¿­ÀÇ °æ¿ì mÀÇ ¹üÀ§´Â 1 - 127ÀÔ´Ï´Ù.

  3. °¡º¯ ±æÀÌ ¹®ÀÚ¿­ÀÇ °æ¿ì mÀÇ ¹üÀ§´Â 1 - 16 350ÀÔ´Ï´Ù.

  4. mÀÌ 16 336º¸´Ù Ŭ °æ¿ì È£½ºÆ® º¯¼ö´Â LONG VARGRAPHIC ¹®ÀÚ¿­·Î ó¸®µÇ¸ç ±× »ç¿ëÀº Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù.

COBOL¿¡¼­ Ç¥½Ã±â º¯¼ö

Ç¥½Ã±â º¯¼ö´Â PIC S9(4) COMP-5 µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.

COBOL¿¡¼­ LOB ¼±¾ð

COBOL¿¡¼­ LOB È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº COBOL¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ LOB È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-01--variable-name----+--------------+--SQL TYPE IS----------->
                        '-USAGE-+----+-'
                                '-IS-'
 
>-----+-BLOB---+--(--length--+---+---)--.----------------------><
      +-CLOB---+             +-K-+
      '-DBCLOB-'             +-M-+
                             '-G-'
 

LOB È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. BLOB and CLOBÀÇ °æ¿ì  1 <= lob-length <= 2 147 483 647

  2. DBCLOBÀÇ °æ¿ì  1 <= lob-length <= 1 073 741 823.

  3. SQL TYPE IS, BLOB, CLOB, DBCLOB, K, M, G´Â ´ë¹®ÀÚ, ¼Ò¹®ÀÚ ¶Ç´Â ´ë¼Ò¹®ÀÚ È¥ÇÕÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.

  4. LOB ¼±¾ð¿¡¼­ ÃʱâÈ­´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

  5. »çÀü ó¸® ÄÄÆÄÀÏ·¯ »ý¼º Äڵ忡¼­ È£½ºÆ® º¯¼ö À̸§ ¾Õ¿¡´Â LENGTH¿Í DATA°¡ ÁöÁ¤µË´Ï´Ù.

BLOB ¿¹:

¼±¾ð:

     01 MY-BLOB USAGE IS SQL TYPE IS BLOB(2M).

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     01 MY-BLOB.
        49 MY-BLOB-LENGTH PIC S9(9) COMP-5.
        49 MY-BLOB-DATA PIC X(2097152).

CLOB ¿¹:

¼±¾ð:

     01 MY-CLOB USAGE IS SQL TYPE IS CLOB(125M).

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     01 MY-CLOB.
        49 MY-CLOB-LENGTH PIC S9(9) COMP-5.
        49 MY-CLOB-DATA PIC X(131072000).

DBCLOB ¿¹:

¼±¾ð:

          01 MY-DBCLOB USAGE IS SQL TYPE IS DBCLOB(30000).

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     01 MY-DBCLOB.
        49 MY-DBCLOB-LENGTH PIC S9(9) COMP-5.
        49 MY-DBCLOB-DATA PIC G(30000) DISPLAY-1.

COBOL¿¡¼­ LOB LOB À§Ä¡ ÁöÁ¤ÀÚ ¼±¾ð

COBOL¿¡¼­ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº COBOL¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-01--variable-name----+--------------+--SQL TYPE IS----------->
                        '-USAGE-+----+-'
                                '-IS-'
 
>-----+-BLOB-LOCATOR---+--.------------------------------------><
      +-CLOB-LOCATOR---+
      '-DBCLOB-LOCATOR-'
 

LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. SQL TYPE IS, BLOB-LOCATOR, CLOB-LOCATOR, DBCLOB-LOCATORÀº ´ë¹®ÀÚ, ¼Ò¹®ÀÚ ¶Ç´Â ´ë¼Ò¹®ÀÚ È¥ÇÕÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.

  2. À§Ä¡ ÁöÁ¤ÀÚÀÇ ÃʱâÈ­´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

BLOB À§Ä¡ ÁöÁ¤ÀÚ ¿¹(´Ù¸¥ LOB À§Ä¡ ÁöÁ¤ÀÚ À¯ÇüÀº ºñ½Á):

¼±¾ð:

     01 MY-LOCATOR USAGE SQL TYPE IS BLOB-LOCATOR.

±× °á°ú ´ÙÀ½ ¼±¾ðÀÌ »ý¼ºµË´Ï´Ù.

     01 MY-LOCATOR PIC S9(9) COMP-5.

COBOL¿¡¼­ ÆÄÀÏ ÂüÁ¶ ¼±¾ð

COBOL¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº COBOL¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

COBOL¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-01--variable-name----+--------------+--SQL TYPE IS----------->
                        '-USAGE-+----+-'
                                '-IS-'
 
>-----+-BLOB-FILE---+--.---------------------------------------><
      +-CLOB-FILE---+
      '-DBCLOB-FILE-'
 

BLOB ÆÄÀÏ ÂüÁ¶ ¿¹(´Ù¸¥ LOB À¯ÇüÀº ºñ½Á):

¼±¾ð:

     01 MY-FILE USAGE IS SQL TYPE IS BLOB-FILE.

±× °á°ú ´ÙÀ½ ¼±¾ðÀÌ »ý¼ºµË´Ï´Ù.

     01 MY-FILE.
        49 MY-FILE-NAME-LENGTH PIC S9(9) COMP-5.
        49 MY-FILE-DATA-LENGTH PIC S9(9) COMP-5.
        49 MY-FILE-FILE-OPTIONS PIC S9(9) COMP-5.
        49 MY-FILE-NAME PIC X(255).

COBOL¿¡¼­ È£½ºÆ® ±¸Á¶ À¯Áö

COBOL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­´Â È£½ºÆ® º¯¼ö ¼±¾ð Àý¿¡¼­ÀÇ ±×·ì µ¥ÀÌÅÍ Ç׸ñ¿¡ ´ëÇÑ ¼±¾ðÀ» Áö¿øÇÕ´Ï´Ù. µû¶ó¼­ ¹«¾ùº¸´Ùµµ SQL¹®ÀÇ ±âº» µ¥ÀÌÅÍ Ç׸ñ ÁýÇÕÀ» °£ÆíÇÏ°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» »ç¿ëÇÏ¿© SAMPLE µ¥ÀÌÅͺ£À̽ºÀÇ STAFF Å×ÀÌºí¿¡ ÀÖ´Â ÀϺΠÄ÷³¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

       01 staff-record.
           05 staff-id       pic s9(4) comp-5.
           05 staff-name.
               49 l          pic s9(4) comp-5.
               49 d          pic x(9).
           05 staff-info.
               10 staff-dept pic s9(4) comp-5.
               10 staff-job  pic x(5).

¼±¾ð ÀýÀÇ ±×·ì µ¥ÀÌÅÍ Ç׸ñÀº Á¾¼Ó µ¥ÀÌÅÍ Ç׸ñÀ¸·Î À§¿¡¼­ ¼³¸íÇÑ À¯È¿ÇÑ È£½ºÆ® º¯¼ö¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡´Â ¸ðµç ¼ýÀÚ¿Í ¹®ÀÚ À¯Çü, ¸ðµç ´ëÇü ¿ÀºêÁ§Æ®(LOB)°¡ µé¾î°©´Ï´Ù. 10 ·¹º§±îÁö ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» ÁßøÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹¿Í °°ÀÌ 49 ·¹º§ÀÇ Á¾¼Ó Ç׸ñÀ¸·Î VARCHAR ¹®ÀÚ À¯ÇüÀ» ¼±¾ðÇØ¾ß ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. 49 ·¹º§¿¡ ÀÖÁö ¾ÊÀ» °æ¿ì VARCHARÀº µÎ Á¾¼Ó Ç׸ñÀ» °¡Áø ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ¸·Î ó¸®µÇ¸ç ±×·ì µ¥ÀÌÅÍ Ç׸ñ ¼±¾ð ¹× »ç¿ëÀÇ ±ÔÄ¢À» µû¸¨´Ï´Ù. À§ÀÇ ¿¹¿¡¼­ staff-info´Â ±×·ì µ¥ÀÌÅÍ Ç׸ñÀÎ ¹Ý¸é staff-nameÀº VARCHARÀÔ´Ï´Ù. °°Àº ¿øÄ¢ÀÌ LONG VARCHAR, VARGRAPHIC ¹× LONG VARGRAPHIC¿¡ Àû¿ëµË´Ï´Ù. 02¿Í 49 »çÀÌÀÇ ·¹º§¿¡¼­ ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.

±×·ì µ¥ÀÌÅÍ Ç׸ñ°ú ±× ÈÄ¼Ó Ç׸ñÀº ´ÙÀ½°ú °°ÀÌ ³× °¡Áö ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹æ¹ý 1.

SQL¹®¿¡¼­ Àüü ±×·ìÀ» ´ÜÀÏ È£½ºÆ® º¯¼ö·Î ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

      EXEC SQL SELECT id, name, dept, job
            INTO :staff-record
        FROM staff WHERE id = 10 END-EXEC.

»çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ staff-record¿¡ ´ëÇÑ ÂüÁ¶¸¦ staff-record¿¡¼­ ¼±¾ðµÈ ¸ðµç ÈÄ¼Ó Ç׸ñÀÇ ¸ñ·ÏÀ¸·Î º¯È¯ÇÕ´Ï´Ù. À̶§ ¸ñ·ÏÀº ½°Ç¥·Î ºÐ¸®µË´Ï´Ù. °¢ ±âº» Ç׸ñÀº ¸ðµç ·¹º§ÀÇ ±×·ì À̸§À¸·Î ±ÔÁ¤µÇ¹Ç·Î ´Ù¸¥ Ç׸ñ°úÀÇ ¸í¸í Ãæµ¹À» ¹æÁöÇÕ´Ï´Ù. ÀÌ´Â ´ÙÀ½ ¹æ¹ý°ú ÀÏÄ¡ÇÕ´Ï´Ù.

¹æ¹ý 2.

±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» »ç¿ëÇÏ´Â µÎ ¹øÂ° ¹æ¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.

      EXEC SQL SELECT id, name, dept, job
            INTO
            :staff-record.staff-id,
            :staff-record.staff-name,
            :staff-record.staff-info.staff-dept,
            :staff-record.staff-info.staff-job
        FROM staff WHERE id = 10 END-EXEC.
ÁÖ:staff-id¿¡ ´ëÇÑ ÂüÁ¶´Â ¼ø¼ö COBOLÀÇ °æ¿ì¿Í °°ÀÌ staff-recordÀÇ staff-id°¡ ¾Æ´Ñ staff-record. Á¢µÎºÎ¸¦ »ç¿ëÇÏ´Â ±×·ì À̸§À¸·Î ±ÔÁ¤µË´Ï´Ù.

À§ ¸í·É¹®, staff-recordÀÇ Á¾¼Ó Ç׸ñ°ú µ¿ÀÏÇÑ À̸§À» °¡Áø È£½ºÆ® º¯¼ö°¡ ¾ø´Ù°í °¡Á¤ÇÏ¸é ¸í½ÃÀû ±×·ì ±ÔÁ¤À» Á¦°ÅÇÏ°í ¹æ¹ý 3ÀÇ °æ¿ì¿Í °°ÀÌ ÄÚµùµÉ ¼öµµ ÀÖ½À´Ï´Ù.

¹æ¹ý 3.

¿©±â¼­ Á¾¼Ó Ç׸ñÀº ƯÁ¤ ±×·ì Ç׸ñÀ¸·Î ±ÔÁ¤µÇÁö ¾Ê°í ÀÏ¹Ý COBOL ¹æ½ÄÀ¸·Î ÂüÁ¶µË´Ï´Ù.

      EXEC SQL SELECT id, name, dept, job
            INTO
            :staff-id,
            :staff-name,
            :staff-dept,
            :staff-job
        FROM staff WHERE id = 10 END-EXEC.

¼ø¼ö COBOL¿¡¼­¿Í ¸¶Âù°¡Áö·Î, ÁöÁ¤µÈ Á¾¼Ó Ç׸ñÀ» °íÀ¯ÇÏ°Ô ½Äº°ÇÒ ¼ö ÀÖ´Â ÇÑ »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, staff-jobÀÌ Çϳª ÀÌ»óÀÇ ±×·ì¿¡ ³ªÅ¸³¯ °æ¿ì »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ ¸ðÈ£ÇÑ ÂüÁ¶¸¦ Áö½ÃÇÏ´Â ¿À·ù¸¦ ¹ßÇàÇÕ´Ï´Ù.

          SQL0088N Host variable "staff-job" is ambiguous.

¹æ¹ý 4.

¸ðÈ£ÇÑ ÂüÁ¶¸¦ ÇØ°áÇϱâ À§ÇØ ´ÙÀ½°ú °°ÀÌ ÈÄ¼Ó Ç׸ñ¿¡ ´ëÇØ ºÎºÐÀûÀÎ ±ÔÁ¤À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

      EXEC SQL SELECT id, name, dept, job
            INTO
            :staff-id,
            :staff-name,
            :staff-info.staff-dept,
            :staff-info.staff-job
        FROM staff WHERE id = 10 END-EXEC.

¹æ¹ý 1¿¡¼­¿Í °°ÀÌ ±×·ì Ç׸ñ¿¡ ´ëÇÑ ÂüÁ¶°¡ ½°Ç¥·Î ºÐ¸®µÇ´Â ÈÄ¼Ó Ç׸ñÀÇ ¸ñ·Ï¿¡ ÇØ´çÇϹǷΠÀÌ·± À¯ÇüÀÇ ÂüÁ¶°¡ ¿À·ù¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ÀνºÅϽº°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°½À´Ï´Ù.

          EXEC SQL CONNECT TO :staff-record END-EXEC.

¿©±â¿¡¼­ CONNECT¹®Àº ´ÜÀÏ ¹®ÀÚ È£½ºÆ® º¯¼ö¸¦ ±â´ëÇÕ´Ï´Ù. ´ë½Å staff-record ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» ÁöÁ¤Çϸé È£½ºÆ® º¯¼ö´Â ´ÙÀ½°ú °°Àº »çÀü ó¸® ÄÄÆÄÀÏ ½Ã°£ ¿À·ù¸¦ ³º½À´Ï´Ù.

          SQL0087N "staff-record" È£½ºÆ® º¯¼ö´Â ±¸Á¶ ÂüÁ¶°¡ Çã¿ëµÇÁö ¾ÊÀ» ¶§
                   »ç¿ëµÇ´Â ±¸Á¶ÀÔ´Ï´Ù.

SQL0087NÀ» ¹ß»ý½ÃŰ´Â ±×·ì Ç׸ñÀÇ ±âŸ »ç¿ë¿¡´Â PREPARE, EXECUTE IMMEDIATE, CALL, Ç¥½Ã±â º¯¼ö ¹× SQLDA ÂüÁ¶°¡ µé¾î°©´Ï´Ù. ÇÑ Á¾¼Ó Ç׸ñ¸¸ Æ÷ÇÔµÈ ±×·ìÀº À§ÀÇ ¹æ¹ý 2, 3, 4¿¡¼­¿Í °°ÀÌ °³º° Á¾¼Ó Ç׸ñÀ» ÂüÁ¶ÇÏ´Â °æ¿ì¿¡ Çã¿ëµË´Ï´Ù.

COBOL¿¡¼­ Ç¥½Ã±â Å×À̺í

COBOL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­´Â ±×·ì µ¥ÀÌÅÍ Ç׸ñ¿¡ »ç¿ëÇÏ¸é Æí¸®ÇÑ Ç¥½Ã±â º¯¼öÀÇ Å×ÀÌºí ¼±¾ðÀ» Áö¿øÇÕ´Ï´Ù. ÀÌ´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðµË´Ï´Ù.

     01 <indicator-table-name>.
         05 <indicator-name> pic s9(4) comp-5
                             occurs <table-size> times.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°½À´Ï´Ù.

     01 staff-indicator-table.
         05 staff-indicator pic s9(4) comp-5
                            occurs 7 times.

ÀÌ Ç¥½Ã±â Å×À̺íÀº À§ ±×·ì Ç׸ñ ÂüÁ¶ÀÇ Ã¹¹øÂ° Çü½ÄÀ¸·Î È¿°úÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

      EXEC SQL SELECT id, name, dept, job
        INTO :staff-record :staff-indicator
        FROM staff WHERE id = 10 END-EXEC.

¿©±â¼­ »çÀü ó¸® ÄÄÆÄÀÏ·¯´Â staff-indicator°¡ Ç¥½Ã±â Å×À̺í·Î ¼±¾ðµÇ¾úÀ½À» ŽÁöÇϰí, SQL¹® 󸮽à °³º° Ç¥½Ã±â ÂüÁ¶·Î È®ÀåÇÕ´Ï´Ù. staff-indicator(1)´Â staff-recordÀÇ staff-id¿Í ¿¬°üµÇ°í staff-indicator(2)´Â staff-recordÀÇ staff-name°ú ¿¬°üµÇ´Â ½ÄÀÔ´Ï´Ù.
ÁÖ:Ç¥½Ã±â Å×À̺íÀÇ Ç¥½Ã±â Ç׸ñÀÌ µ¥ÀÌÅÍ Ç׸ñ¿¡ ÀÖ´Â Á¾¼Ó Ç׸ñº¸´Ù k°³ ¸¹À» °æ¿ì(¿¹¸¦ µé¾î, staff-indicator¿¡ 10°³ÀÇ Ç׸ñÀÌ ÀÖÀ¸¸é k=6), Ç¥½Ã±â Å×ÀÌºí ³¡¿¡¼­ k°³ÀÇ Ãß°¡ Ç׸ñÀº ¹«½ÃµË´Ï´Ù. ¸¶Âù°¡Áö·Î Ç¥½Ã±â Ç׸ñÀÌ Á¾¼Ó Ç׸ñº¸´Ù k°³ ÀûÀ» °æ¿ì ±×·ì Ç׸ñÀÇ ¸¶Áö¸· k°³ÀÇ Á¾¼Ó Ç׸ñ¿¡´Â ±×¿Í ¿¬°üµÈ Ç¥½Ã±â°¡ ¾ø½À´Ï´Ù. SQL¹®ÀÇ Ç¥½Ã±â Å×ÀÌºí¿¡ ÀÖ´Â °³º° ±¸¼º¿ä¼Ò¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

COBOL ±×·ì µ¥ÀÌÅÍ Ç׸ñ¿¡¼­ REDEFINES »ç¿ë

È£½ºÆ® º¯¼ö ¼±¾ð½Ã REDEFINESÀýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. REDEFINESÀý·Î ±×·ì µ¥ÀÌÅÍ Ç׸ñÀÇ ±¸¼º¿øÀ» ¼±¾ðÇϰí SQL¹®¿¡¼­ ±× ±×·ì µ¥ÀÌÅÍ Ç׸ñÀ» Àüü·Î ÂüÁ¶µÉ °æ¿ì REDEFINESÀýÀ» Æ÷ÇÔÇÑ ¸ðµç Á¾¼Ó Ç׸ñÀº È®ÀåµÇÁö ¾Ê½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.

   01 foo.
    10 a pic s9(4) comp-5.
    10 a1 redefines a pic x(2).
    10 b pic x(10).

SQL¹®¿¡¼­ foo¿¡ ´ëÇÑ ÂüÁ¶´Â ´ÙÀ½°ú °°½À´Ï´Ù.

    ... INTO :foo ...

À§ÀÇ ¸í·É¹®Àº ´ÙÀ½¿¡ ÇØ´çÇÕ´Ï´Ù.

    ... INTO :foo.a, :foo.b ...

Áï, REDEFINESÀý·Î ¼±¾ðµÈ a1 Á¾¼Ó Ç׸ñÀº ÀÌ·± °æ¿ì¿¡ ÀÚµ¿À¸·Î È®ÀåµÇÁö ¾Ê½À´Ï´Ù. a1ÀÌ ¸íÈ®ÇÑ °æ¿ì SQL¹®¿¡¼­ REDEFINESÀý·Î Á¾¼Ó Ç׸ñÀ» ¸í½ÃÀûÀ¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

    ... INTO :foo.a1 ...

¶Ç´Â

    ... INTO :a1 ...

BINARY/COMP-4 COBOL µ¥ÀÌÅÍ À¯Çü »ç¿ë

¸ñÇ¥ COBOL ÄÄÆÄÀÏ·¯¿¡¼­ COMP-5 µ¥ÀÌÅÍ À¯Çü¿¡ ÇØ´çÇÏ´Â BINARY, COMP ¶Ç´Â COMP-4 µ¥ÀÌÅÍ À¯ÇüÀ» º¸´Â ÇÑ(¶Ç´Â º¸µµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÇÑ) Á¤¼ö È£½ºÆ® º¯¼ö¿Í Ç¥½Ã±â°¡ Çã¿ëµÉ ¶§¸¶´Ù DB2 COBOL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ BINARY, COMP ¹× COMP-4 µ¥ÀÌÅÍ À¯Çü »ç¿ëÀ» Áö¿øÇÕ´Ï´Ù. ÀÌ Ã¥¿¡¼­ ÀÌ·± È£½ºÆ® º¯¼ö¿Í Ç¥½Ã±â´Â COMP-5 À¯ÇüÀ¸·Î Ç¥½ÃµË´Ï´Ù. COMP, COMP-4, BINARY COMP ¹× COMP-5¸¦ µ¿ÀÏÇÏ°Ô Ã³¸®ÇÏ´Â DB2¿¡¼­ Áö¿øÇÏ´Â ¸ñÇ¥ ÄÄÆÄÀÏ·¯´Â ´ÙÀ½°ú °°½À´Ï´Ù.


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