¿ÜºÎ ÀúÀå ÇÁ·Î½Ãµà¾î Á¤ÀÇó·³ SQL ÇÁ·Î½Ãµà¾î Á¤ÀÇ´Â ´ÙÀ½°ú °°Àº Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.
¿ÜºÎ ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ CREATE PROCEDURE¹®°ú´Â ´Þ¸® SQL ÇÁ·Î½Ãµà¾îÀÇ CREATE PROCEDURE¹®Àº EXTERNALÀýÀ» ÁöÁ¤ÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å SQL ÇÁ·Î½Ãµà¾î¿¡´Â ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¼Ò½º ¸í·É¹®ÀÌ µé¾î ÀÖ´Â ÇÁ·Î½Ãµà¾î º»¹®ÀÌ ÀÖ½À´Ï´Ù.
´ÙÀ½ ¿¹´Â´Ü¼øÇÑ ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ CREATE PROCEDUR¹®À» º¸¿©ÁÝ´Ï´Ù. ÇÁ·Î½Ãµà¾î À̸§, ÇÁ·Î½Ãµà¾î¿Í ÁÖ°í ¹Þ´Â ¸Å°³º¯¼ö ¸ñ·Ï ±×¸®°í LANGUAGE ¸Å°³º¯¼ö´Â ¸ðµç ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ °øÅëÀÔ´Ï´Ù. ±×·¯³ª, ÇÁ·Î½Ãµà¾î º»¹®À» Çü¼ºÇÏ´Â SQLÀÇ LANGUAGE °ª°ú BEGIN...END ºí·ÏÀº SQL ÇÁ·Î½Ãµà¾î¿¡ °íÀ¯ÇÕ´Ï´Ù.
CREATE PROCEDURE UPDATE_SALARY_1 (1) (IN EMPLOYEE_NUMBER CHAR(6), (2) IN RATE INTEGER) (2) LANGUAGE SQL (3) BEGIN UPDATE EMPLOYEE (4) SET SALARY = SALARY * (1.0 * RATE / 100.0 ) WHERE EMPNO = EMPLOYEE_NUMBER; END
ÀÌÀü ¿¹¿¡ ´ëÇÑ ÁÖ:
(1) | ÀúÀå ÇÁ·Î½Ãµà¾î À̸§Àº UPDATE_SALARY_1ÀÔ´Ï´Ù. |
(2) | µÎ ¸Å°³º¯¼ö¿¡´Â CHAR(6)¿Í INTEGERÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÖ½À´Ï´Ù. µÑ´Ù ÀÔ·Â ¸Å°³º¯¼öÀÔ´Ï´Ù. |
(3) | LANGUAGE SQLÀº À̰ÍÀÌ SQL ÇÁ·Î½Ãµà¾îÀÓÀ» ³ªÅ¸³»¹Ç·Î ÇÁ·Î½Ãµà¾î º»¹®Àº ´Ù¸¥ ¸Å°³º¯¼ö¸¦ µû¸¨´Ï´Ù. |
(4) | ÇÁ·Î½Ãµà¾î º»¹®Àº Á÷¿ø Å×ÀÌºí¿¡¼ ÇàÀ» °»½ÅÇÏ´Â ´ÜÀÏ SQL UPDATE¹®À¸·Î ±¸¼ºµË´Ï´Ù. |
SL º»¹®¿¡¼ OUT ¸Å°³º¯¼ö¸¦ Ç¥Çö½Ä¿¡ ÀÖ´Â °ªÀ¸·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. ¿À·ÎÁö ÁöÁ¤¹®À» »ç¿ëÇÏ¿© °ªÀ» OUT ¸Å°³º¯¼ö¿¡ ÁöÁ¤Çϰųª SELECT, VALUES ¹× FETCH¹®ÀÇ INTOÀý¿¡¼ ¸ñÇ¥ º¯¼ö·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. IN ¸Å°³º¯¼ö¸¦ ÁöÁ¤ ¶Ç´Â INTOÀýÀÇ ¸ñÇ¥·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.