È£½ºÆ® º¯¼ö´Â SQL¹®¿¡¼ ÂüÁ¶µÇ´Â REXX ¾ð¾î º¯¼öÀÔ´Ï´Ù. ÀÌ·± º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ DB2·Î ÀÔ·Â µ¥ÀÌÅ͸¦ Àü´ÞÇϰí DB2¿¡¼ Ãâ·Â µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. LOB À§Ä¡ ÁöÁ¤ÀÚ ¹× LOB ÆÄÀÏ ÂüÁ¶ º¯¼ö¸¦ Á¦¿ÜÇϸé REXX ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. È£½ºÆ® º¯¼ö µ¥ÀÌÅÍ À¯Çü ¹× Å©±â´Â º¯¼ö°¡ ÂüÁ¶µÇ´Â ·±Å¸ÀÓ¿¡ °áÁ¤µË´Ï´Ù. È£½ºÆ® º¯¼ö¸¦ ¸í¸íÇÏ°í »ç¿ëÇÒ ¶§ ´ÙÀ½ ±ÔÄ¢À» Àû¿ëÇϽʽÿÀ.
ÀûÀýÈ÷ ¸í¸íµÈ REXX º¯¼ö¸¦ È£½ºÆ® º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. º¯¼ö À̸§ÀÇ ±æÀÌ´Â 64ÀÚ±îÁö °¡´ÉÇÕ´Ï´Ù. ¸¶Ä§Ç¥·Î À̸§À» Á¾·áÇÏÁö ¸¶½Ê½Ã¿À. È£½ºÆ® º¯¼ö À̸§Àº ¾ËÆÄ¸ä ¹®ÀÚ, ¼ýÀÚ ¹× @, _, !, ., ?, $ µîÀÇ ¹®ÀÚ·Î ±¸¼ºµÉ ¼ö ÀÖ½À´Ï´Ù.
REXX ÀÎÅÍÇÁ¸®ÅͰ¡ ÇÁ·Î½Ãµà¾î¿¡¼ ÀÎ¿ë ºÎÈ£°¡ ¾ø´Â ¸ðµç ¹®ÀÚ¿À» °Ë»çÇÕ´Ï´Ù. ¹®ÀÚ¿ÀÌ ÇöÀç REXX º¯¼ö Ç®ÀÇ º¯¼ö¸¦ Ç¥½ÃÇϸé REXX¿¡¼ ¹®ÀÚ¿À» ÇöÀç °ªÀ¸·Î ´ëüÇÕ´Ï´Ù. ´ÙÀ½Àº REXX¿¡¼ È£½ºÆ® º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â ¹æ¹ýÀÇ ÇÑ ¿¹ÀÔ´Ï´Ù.
CALL SQLEXEC 'FETCH C1 INTO :cm' SAY 'Commission = ' cm
¹®ÀÚ¿ÀÌ ¼ýÀÚ µ¥ÀÌÅÍ À¯ÇüÀ¸·Î º¯È¯µÇÁö ¾Ê°Ô ÇÏ·Á¸é ´ÙÀ½ ¿¹¿¡¼¿Í °°ÀÌ ¹®ÀÚ¿À» ´ÜÀÏ ÀÎ¿ë ºÎÈ£·Î ´ÝÀ¸½Ê½Ã¿À.
VAR = '100'
REXX¿¡¼´Â VAR º¯¼ö¸¦ 3 ¹ÙÀÌÆ® ¹®ÀÚ¿ 100À¸·Î ¼³Á¤ÇÕ´Ï´Ù. ´ÜÀÏ ÀÎ¿ë ºÎÈ£¸¦ ¹®ÀÚ¿ÀÇ ÀϺηΠÆ÷ÇÔ½ÃŰ·Á´Â °æ¿ì ´ÙÀ½ ¿¹¸¦ µû¸£½Ê½Ã¿À.
VAR = "'100'"
CHARACTER Çʵ忡 ¼ýÀÚ µ¥ÀÌÅ͸¦ »ðÀÔÇϸé REXX ÀÎÅÍÇÁ¸®ÅÍ¿¡¼ ¼ýÀÚ µ¥ÀÌÅ͸¦ Á¤¼ö·Î ó¸®ÇϹǷΠ¼ýÀÚ ¹®ÀÚ¿À» ¸í½ÃÀûÀ¸·Î ¿¬°áÇÏ°í ´ÜÀÏ ÀÎ¿ë ºÎÈ£·Î ´Ý¾Æ¾ß ÇÕ´Ï´Ù.
REXXÀÇ Ç¥½Ã±â º¯¼ö µ¥ÀÌÅÍ À¯ÇüÀº ¼Ò¼öÁ¡ÀÌ ¾ø´Â ¼ýÀÚÀÔ´Ï´Ù. ´ÙÀ½Àº INDICATOR Ű¿öµå¸¦ »ç¿ëÇÏ´Â REXXÀÇ Ç¥½Ã±â º¯¼öÀÇ ¿¹ÀÔ´Ï´Ù.
CALL SQLEXEC 'FETCH C1 INTO :cm INDICATOR :cmind' IF ( cmind < 0 ) SAY 'Commission is NULL'
À§ÀÇ ¿¹¿¡¼ cmindÀÇ °ªÀÌ À½¼öÀÎÁö °Ë»çÇÕ´Ï´Ù. À½¼ö°¡ ¾Æ´Ò °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ cmÀÇ ¸®ÅÏµÈ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À½¼öÀÏ °æ¿ì °¡Á®¿Â °ªÀº ³Î(NULL)À̹ǷΠcmÀ» »ç¿ëÇØ¼± ¾ÈµË´Ï´Ù. ÀÌ °æ¿ì µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼´Â È£½ºÆ® º¯¼öÀÇ °ªÀ» º¯°æÇÏÁö ¾Ê½À´Ï´Ù.
SQLEXEC, SQLDBS ¹× SQLDB2´Â »çÀü Á¤ÀÇµÈ REXX º¯¼ö¸¦ ƯÁ¤ Á¶ÀÛÀÇ °á°ú·Î ¼³Á¤ÇÕ´Ï´Ù. ÀÌ·± º¯¼ö´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ÁÖ: | GET ERROR MESSAGE API¿¡¼¸¸ -8 - -18 »çÀÌÀÇ °ªÀ» ¸®ÅÏÇÕ´Ï´Ù. |
LOB Ä÷³À» REXX È£½ºÆ® º¯¼ö·Î °¡Á®¿À¸é ÀÌ´Â ´Ü¼ø(Áï, uncounted) ¹®ÀÚ¿·Î ÀúÀåµË´Ï´Ù. ÀÌ´Â CHAR, VARCHAR, GRAPHIC, LONG µî°ú °°Àº ¸ðµç ¹®ÀÚ ±â¹Ý SQL À¯ÇüÀÇ °æ¿ì¿Í °°Àº ¹æ½ÄÀ¸·Î Á¶ÀýµË´Ï´Ù. ÀԷ½à ȣ½ºÆ® º¯¼ö ³»¿ëÀÇ Å©±â°¡ 32Kº¸´Ù Å©°Å³ª ¾Æ·¡ ¼³Á¤µÈ ´Ù¸¥ ±âÁØÀ» ¸¸Á·½Ãų °æ¿ì ÇØ´ç LOB À¯ÇüÀ¸·Î ÇÒ´çµË´Ï´Ù.
REXX SQL¿¡¼ LOB À¯ÇüÀº ¾Æ·¡¿Í °°ÀÌ È£½ºÆ® º¯¼öÀÇ ¹®ÀÚ¿ ³»¿ë¿¡ µû¶ó
°áÁ¤µË´Ï´Ù.
È£½ºÆ® º¯¼ö ¹®ÀÚ¿ ³»¿ë | °á°ú LOB À¯Çü |
---|---|
:hv1='32Kº¸´Ù ±ä ÀÏ¹Ý ÀÎ¿ë ºÎÈ£·Î ´ÝÈù ¹®ÀÚ¿ ...' | CLOB |
:hv2="'ÀÎ¿ë ºÎÈ£ ºÐ¸®°¡ EmbeddedµÈ ¹®ÀÚ¿ ", "32Kº¸´Ù ±ä...'" | CLOB |
:hv3="¹®ÀÚ¿ ºÐ¸®°¡ EmbeddedµÈ G'DBCS ¹®ÀÚ¿ ", "ÀÎ¿ë ºÎÈ£, G·Î ½ÃÀÛ, 32Kº¸´Ù ±ä ¹®ÀÚ¿...'" | DBCLOB |
:hv4="¹®ÀÚ¿ ºÐ¸®°¡ EmbeddedµÈ BIN'¹®ÀÚ¿ ", "ÀÎ¿ë ºÎÈ£, BINÀ¸·Î ½ÃÀÛ,ÀÓÀÇ ±æÀÌ...'" | BLOB |
REXX¿¡¼ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº REXX¿¡¼ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.
REXX¿¡¼ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹® .-,-------------------. V | >>-DECLARE-----:--variable-name---+---LANGUAGE TYPE--+-BLOB---+---LOCATOR--> +-CLOB---+ '-DBCLOB-' >--------------------------------------------------------------><
ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. REXX/SQL¿¡¼ ÀÌ·± ¼±¾ðÀ» ¹ß°ßÇÏ¸é ¼±¾ðµÈ È£½ºÆ® º¯¼ö¸¦ ³ª¸ÓÁö ÇÁ·Î±×·¥ÀÇ À§Ä¡ ÁöÁ¤ÀڷΠó¸®ÇÕ´Ï´Ù. À§Ä¡ ÁöÁ¤ÀÚ °ªÀº REXX º¯¼ö¿¡ ³»ºÎ Çü½ÄÀ¸·Î ÀúÀåµË´Ï´Ù.
¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
CALL SQLEXEC 'DECLARE :hv1, :hv2 LANGUAGE TYPE CLOB LOCATOR'
¿£Áø¿¡¼ ¸®ÅÏµÈ LOB À§Ä¡ ÁöÁ¤ÀÚ°¡ Ç¥½ÃÇÏ´Â µ¥ÀÌÅÍ´Â ´ÙÀ½°ú °°Àº Çü½ÄÀÇ FREE LOCATOR¹®À» »ç¿ëÇÏ¿© REXX/SQL¿¡¼ ÇØÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù.
FREE LOCATOR¹®¿¡ ´ëÇÑ ±¸¹® .-,-------------------. V | >>-FREE--LOCATOR-----:--variable-name---+----------------------><
¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
CALL SQLEXEC 'FREE LOCATOR :hv1, :hv2'
ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ LOB ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. REXX/SQL¿¡¼ ÀÌ·± ¼±¾ðÀ» ¹ß°ßÇÏ¸é ¼±¾ðµÈ È£½ºÆ® º¯¼ö¸¦ ³ª¸ÓÁö ÇÁ·Î±×·¥ÀÇ LOB ÆÄÀÏ ÂüÁ¶·Î ó¸®ÇÕ´Ï´Ù.
REXX¿¡¼ LOB ÆÄÀÏ ÂüÁ¶ º¯¼öÀÇ ±¸¹®Àº REXX¿¡¼ LOB ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.
REXX ÆÄÀÏ ÂüÁ¶ ¼±¾ð .-,-------------------. V | >>-DECLARE-----:--variable-name---+---LANGUAGE TYPE--+-BLOB---+---FILE--> +-CLOB---+ '-DBCLOB-' >--------------------------------------------------------------><
¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
CALL SQLEXEC 'DECLARE :hv3, :hv4 LANGUAGE TYPE CLOB FILE'
REXXÀÇ ÆÄÀÏ ÂüÁ¶ º¯¼ö¿¡´Â ¼¼ Çʵ尡 ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹ÀÇ °æ¿ì ´ÙÀ½°ú °°½À´Ï´Ù.
FILE_OPTIONS¿¡ ´ëÇØ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼´Â ´ÙÀ½°ú °°Àº Ű¿öµå¸¦ ¼³Á¤ÇÕ´Ï´Ù.
ÁÖ: | ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö´Â REXXÀÇ È¥ÇÕ º¯¼öÀ̹ǷΠNAME, NAME_LENGTH ¹× FILE_OPTIONS Çʵ带 ¼±¾ðÇÒ »Ó ¾Æ´Ï¶ó ÇØ´ç ÇʵåÀÇ °ªµµ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. |
OS/2ÀÇ °æ¿ì REXX SQL LOB À§Ä¡ ÁöÁ¤ÀÚ¿Í ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö ¼±¾ðÀ» ±×´ë·Î µÎ¸é ÀÀ¿ëÇÁ·Î±×·¥ Á¾·á ÈÄ¿¡ ¿µÇâÀ» ¹ÌÄ¡¹Ç·Î ¸í½ÃÀûÀ¸·Î Áö¿ö¾ß ÇÒ °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¼öÇà ÁßÀÎ ¼¼¼ÇÀ» ´Ý±â Àü±îÁö ÀÀ¿ëÇÁ·Î±×·¥ ÇÁ·Î¼¼½º°¡ ³ª°¡Áö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. REXX SQL LOB ¼±¾ðÀ» Áö¿ìÁö ¾ÊÀ¸¸é LOB ÀÀ¿ëÇÁ·Î±×·¥ ½ÇÇà ÈÄ µ¿ÀÏ ¼¼¼Ç¿¡¼ ¼öÇà ÁßÀÎ ´Ù¸¥ ÀÀ¿ëÇÁ·Î±×·¥°ú »óÈ£ÀÛ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¼±¾ðÀ» Áö¿ì´Â ±¸¹®Àº ´ÙÀ½°ú °°½À´Ï´Ù.
CALL SQLEXEC "CLEAR SQL VARIABLE DECLARATIONS"
LOB ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ³¡¿¡¼ ÀÌ ¸í·É¹®À» ÄÚµùÇØ¾ß ÇÕ´Ï´Ù. ÀÌÀü ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ³²°åÀ» ¼ö ÀÖ´Â ¼±¾ðÀ» Áö¿ì´Â ¿¹¹æÃ¥À¸·Î, REXX SQL ÀÀ¿ëÇÁ·Î±×·¥ ½ÃÀÛ½Ã¿Í °°Àº ¾î´À À§Ä¡¿¡¼µç ¸í·É¹®À» ÄÚµùÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇÇϽʽÿÀ.