È£½ºÆ® º¯¼ö´Â SQL¹®¿¡¼ ÂüÁ¶µÇ´Â COBOL ¾ð¾î º¯¼öÀÔ´Ï´Ù. ÀÌ·± º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·Î ÀÔ·Â µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ Ãâ·Â µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥À» »çÀü ó¸® ÄÄÆÄÀÏÇϸé ÄÄÆÄÀÏ·¯¿¡¼ ´Ù¸¥ COBOL º¯¼ö¿Í ¸¶Âù°¡Áö·Î È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. È£½ºÆ® º¯¼ö¸¦ ¸í¸íÇϰí, ¼±¾ðÇϰí, »ç¿ëÇÒ ¶§ ¾Æ·¡¿¡ ±â¼úµÈ ±ÔÄ¢À» µû¸£½Ê½Ã¿À.
SQL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼ ¼±¾ðµÈ À̸§À¸·Î È£½ºÆ® º¯¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. ´ÙÀ½ ±ÔÄ¢ÀÌ Àû¿ëµË´Ï´Ù.
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--'
ÁÖ:
ºÎµ¿ ¼Ò¼öÁ¡
>>-+-01-+--variable-name----+---------------+-------------------> '-77-' | .-IS-. | '-USAGE-+----+--' (1) >-----+--+-COMPUTATIONAL-1-+--------+---------------------------> | '-COMP-1----------' | | (2) | '--+-COMPUTATIONAL-2-+--------' '-COMP-2----------' >-----+----------------------+--.------------------------------>< | .-IS-. | '-VALUE-+----+--value--'
ÁÖ:
¼ýÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:
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--'
¹®ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:
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--'
±×·¡ÇÈ È£½ºÆ® º¯¼ö °í·Á»çÇ×:
Ç¥½Ã±â º¯¼ö´Â PIC S9(4) COMP-5 µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.
COBOL¿¡¼ LOB È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº COBOL¿¡¼ ´ëÇü ¿ÀºêÁ§Æ®(LOB) È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.
COBOL¿¡¼ LOB È£½ºÆ® º¯¼öÀÇ ±¸¹® >>-01--variable-name----+--------------+--SQL TYPE IS-----------> '-USAGE-+----+-' '-IS-' >-----+-BLOB---+--(--length--+---+---)--.---------------------->< +-CLOB---+ +-K-+ '-DBCLOB-' +-M-+ '-G-'
LOB È£½ºÆ® º¯¼ö °í·Á»çÇ×:
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 À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº COBOL¿¡¼ ´ëÇü ¿ÀºêÁ§Æ®(LOB) À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.
COBOL¿¡¼ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹® >>-01--variable-name----+--------------+--SQL TYPE IS-----------> '-USAGE-+----+-' '-IS-' >-----+-BLOB-LOCATOR---+--.------------------------------------>< +-CLOB-LOCATOR---+ '-DBCLOB-LOCATOR-'
LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:
BLOB À§Ä¡ ÁöÁ¤ÀÚ ¿¹(´Ù¸¥ LOB À§Ä¡ ÁöÁ¤ÀÚ À¯ÇüÀº ºñ½Á):
¼±¾ð:
01 MY-LOCATOR USAGE SQL TYPE IS BLOB-LOCATOR.
±× °á°ú ´ÙÀ½ ¼±¾ðÀÌ »ý¼ºµË´Ï´Ù.
01 MY-LOCATOR PIC S9(9) COMP-5.
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 »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼´Â È£½ºÆ® º¯¼ö ¼±¾ð Àý¿¡¼ÀÇ ±×·ì µ¥ÀÌÅÍ Ç׸ñ¿¡ ´ëÇÑ ¼±¾ðÀ» Áö¿øÇÕ´Ï´Ù. µû¶ó¼ ¹«¾ùº¸´Ùµµ 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 »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼´Â ±×·ì µ¥ÀÌÅÍ Ç׸ñ¿¡ »ç¿ëÇÏ¸é Æí¸®ÇÑ Ç¥½Ã±â º¯¼öÀÇ Å×ÀÌºí ¼±¾ðÀ» Áö¿øÇÕ´Ï´Ù. ÀÌ´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ðµË´Ï´Ù.
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¹®ÀÇ Ç¥½Ã±â Å×ÀÌºí¿¡ ÀÖ´Â °³º° ±¸¼º¿ä¼Ò¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. |
È£½ºÆ® º¯¼ö ¼±¾ð½Ã 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 ...
¸ñÇ¥ COBOL ÄÄÆÄÀÏ·¯¿¡¼ COMP-5 µ¥ÀÌÅÍ À¯Çü¿¡ ÇØ´çÇÏ´Â BINARY, COMP ¶Ç´Â COMP-4 µ¥ÀÌÅÍ À¯ÇüÀ» º¸´Â ÇÑ(¶Ç´Â º¸µµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ´Â ÇÑ) Á¤¼ö È£½ºÆ® º¯¼ö¿Í Ç¥½Ã±â°¡ Çã¿ëµÉ ¶§¸¶´Ù DB2 COBOL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼ BINARY, COMP ¹× COMP-4 µ¥ÀÌÅÍ À¯Çü »ç¿ëÀ» Áö¿øÇÕ´Ï´Ù. ÀÌ Ã¥¿¡¼ ÀÌ·± È£½ºÆ® º¯¼ö¿Í Ç¥½Ã±â´Â COMP-5 À¯ÇüÀ¸·Î Ç¥½ÃµË´Ï´Ù. COMP, COMP-4, BINARY COMP ¹× COMP-5¸¦ µ¿ÀÏÇÏ°Ô Ã³¸®ÇÏ´Â DB2¿¡¼ Áö¿øÇÏ´Â ¸ñÇ¥ ÄÄÆÄÀÏ·¯´Â ´ÙÀ½°ú °°½À´Ï´Ù.