PL/SQLÀº SQLÀÇ È®ÀåÀ̱⠶§¹®¿¡, SQL¿¡ Àû¿ëÇÏ´Â ÀϹÝÀûÀÎ ±¸¹®Àº PL/SQL ¾ð¾î¿¡ ´ëÇؼ­µµ Àû¿ë °¡´ÉÇÕ´Ï´Ù.

±¸ºÐ ¹®ÀÚ

±¸ºÐ ¹®ÀÚ´Â PL/SQL¿¡ ´ëÇØ Æ¯¼öÇÑ Àǹ̸¦ °¡Áö´Â ´Ü¼ø »ó¡À̰ųª È¥ÇÕ »ó¡ÀÔ´Ï´Ù.

´Ü¼ø »ó¡ ±âÈ£

ÀÇ ¹Ì

È¥ÇÕ »ó¡ ±âÈ£

ÀÇ ¹Ì

+

Ãß°¡ ¿¬»êÀÚ

<>

°ü°èÇü ¿¬»êÀÚ

-

»©±â/ºÎÁ¤ ¿¬»êÀÚ

!=

°ü°èÇü ¿¬»êÀÚ

*

°öÇϱ⠿¬»êÀÚ

||

Á¢¼Ó ¿¬»êÀÚ

/

³ª´©±â ¿¬»êÀÚ

--

´ÜÀÏ ¶óÀÎ ÁÖ¼® Áö½ÃÀÚ

=

°ü°èÇü ¿¬»êÀÚ

/*

ÁÖ¼® ±¸ºÐ¹®ÀÚ ½ÃÀÛ

@

¿ø°Ý ¾×¼¼½º Áö½ÃÀÚ

*/

ÁÖ¼® ±¸ºÐ¹®ÀÚ Á¾·á

;

¹®Àå Á¾°áÀÚ

:=

ÁöÁ¤ ¿¬»êÀÚ

ÀÚ¼¼ÇÑ ³»¿ëÀº PL/SQL User's Guide and Reference, Release 7.3 ¶Ç´Â 8.0, ¡°Fundamentals.¡±¸¦ ÂüÁ¶ÇϽʽÿÀ.


½Äº°ÀÚ

½Äº°ÀÚ´Â »ó¼ö, º¯¼ö, ¿¹¿Ü, Ä¿¼­, Ä¿¼­ º¯¼ö, ¼­ºêÇÁ·Î±×·¥, ÆÐÅ°Áö¸¦ Æ÷ÇÔÇÏ´Â PL/SQL ÇÁ·Î±×·¥ Ç׸ñ°ú ¿ä¼Ò¸¦ ¸í¸íÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù.

¿¹¾à¾î ¸ñ·Ï¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº
PL/SQL User's Guide and Reference, Release 7.3 ¶Ç´Â 8.0, ¡°Appendix¡±¸¦ ÂüÁ¶ÇϽʽÿÀ

ÁÖ¼® ÄÚµå

   °¢ ´Ü°è¸¦ ¹®¼­È­ÇÏ°í µð¹ö±ëÀ» µ½±â À§ÇØ Äڵ忡 ÁÖ¼®À» ´ä´Ï´Ù. ÁÖ¼®ÀÌ ´ÜÀÏ ¶óÀο¡    ÀÖÀ¸¸é µÎ ´ë½¬( - -)·Î, ÁÖ¼® ¹üÀ§°¡ ¿©·¯ ÁÙÀ̶ó¸é ±âÈ£/* ¿Í */»çÀÌ¿¡, PL/SQL ÄÚµå    ÁÖ¼®À» ´Ù½Ê½Ã¿À. ÁÖ¼®Àº öÀúÇÏ°Ô Á¤º¸¸¦ Á¦°øÇØ¾ß ÇÏ°í ±â´ÉÀûÀÎ ³í¸® ¶Ç´Â µ¥ÀÌÅÍ¿¡    ´ëÇÑ ¾î¶² Á¶°Ç ¶Ç´Â ±â´ÉÀ» °­¿äÇؼ­´Â ¾ÈµË´Ï´Ù. ÁÁÀº ÁÖ¼®Àº Äڵ带 Àб⠽±°Ô ÇÏ°í    ÄÚµå À¯Áö¸¦ À§ÇØ ¸Å¿ì Áß¿äÇÕ´Ï´Ù.

¿¹


   ¿ù ±Þ¿©¿¡¼­ Àϳâ±Þ¿©¸¦ °è»êÇÕ´Ï´Ù.
 

...
  v_sal NUMBER(9,2);
BEGIN
  /* Compute the annual salary based on
  the monthly salary input from the user */
  v_sal := v_sal*12;
END;  -- This is the end of the transaction

 

PL/SQL¿¡¼­ SQL ÇÔ¼ö
SQL ¿¡¼­ ÀÌ¿ë °¡´ÉÇÑ ´ëºÎºÐÀÇ ÇÔ¼ö´Â PL/SQLÇ¥Çö½Ä¿¡¼­µµ À¯È¿ÇÕ´Ï´Ù.

  • ´ÜÀÏ Çà ¼ýÀÚ ÇÔ¼ö
  • ´ÜÀÏ Çà ¹®ÀÚ ÇÔ¼ö
  • µ¥ÀÌÅÍÇü º¯È¯ ÇÔ¼ö
  • µ¥ÀÌÆ® ÇÔ¼ö
  • ±× ¹ÛÀÇ ÇÔ¼ö

  ¾Æ·¡ ÇÔ¼ö´Â ÀýÂ÷ÀûÀÎ ¹®Àå¿¡¼­´Â »ç¿ë ºÒ°¡´ÉÇÕ´Ï´Ù.
  • DECODE.
  • ±×·ì ÇÔ¼ö: AVG, MIN, MAX, COUNT, SUM, STDDEV °ú VARIANCE. ±×·ì ÇÔ¼ö´Â Å×ÀÌºí¿¡¼­ Çà ±×·ì¿¡ Àû¿ëµÇ¹Ç·Î PL/SQL ºí·Ï¿¡ ÀÖ´Â SQL ¹®Àå¿¡¼­¸¸ ÀÌ¿ë °¡´É ÇÕ´Ï´Ù.

 ¿¹

NUMBER_TABLE PL/SQL Å×ÀÌºí¿¡¼­ ÀúÀåµÈ ¸ðµç ¼ýÀÚÀÇ ÇÕÀ» °è»êÇÕ´Ï´Ù.
ÀÌ ¿¹´Â ÄÄÆÄÀÏ ¿À·ù¸¦ »ý¼ºÇÕ´Ï´Ù.
 

v_total := SUM(number_table);


Áßø ºí·Ï

   SQL¿¡ ºñÇØ ÀåÁ¡ °¡¿îµ¥ Çϳª´Â PL/SQL¿¡¼­ ¹®ÀåÀÌ ÁßøµÉ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ½ÇÇà    ¹®ÀåÀÌ  Çã¿ëµÇ´Â  °÷  ¾îµð¿¡¼­µçÁö  ºí·ÏÀ»  ÁßøÇÒ  ¼ö  ÀÖÀ¸¹Ç·Î,  Áßø  ºí·Ï  ¹®ÀåÀ»    ¸¸µå½Ê½Ã¿À.  ±×·¡¼­  ½ÇÇà  ºí·ÏÀÇ  ÀϺθ¦  ´õ  ÀÛÀº  ºí·ÏÀ¸·Î  ÂÉ°¶ ¼ö ÀÖ½À´Ï´Ù. ¿¹¿Ü    ¼½¼Çµµ ¶ÇÇÑ Áßø ºí·ÏÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

º¯¼ö ¹üÀ§

   °´Ã¼ÀÇ ¹üÀ§´Â °´Ã¼¸¦ Á¶È¸ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÇ ¿µ¿ªÀÔ´Ï´Ù.
   ¼±¾ðµÈ º¯¼ö¸¦ ½ÇÇà ¼½¼Ç¿¡¼­ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.

Áßø ºí·Ï°ú º¯¼ö ¹üÀ§

   ½½¶óÀ̵åÀÇ Áßø ºí·Ï¿¡¼­ y·Î ¸í¸íµÈ º¯¼ö´Â x·Î ¸í¸íµÈ º¯¼ö¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.    ±×·¯³ª º¯¼ö x´Â º¯¼öy¸¦ ÂüÁ¶ÇÒ ¼ö ¾ø½À´Ï´Ù. Áßø ºí·Ï¿¡¼­ º¯¼ö y°¡ ¿ÜºÎ ºí·Ï¿¡¼­ÀÇ    º¯¼ö x¿Í µ¿ÀÏÇÑ À̸§À¸·Î ÁÖ¾îÁö¸é º¯¼ö yÀÇ °ªÀº Áßø ºí·ÏÀÇ ¾È¿¡¼­¸¸ À¯È¿ÇÕ´Ï´Ù.

¹üÀ§

   ½Äº°ÀÚÀÇ ¹üÀ§´Â ½Äº°ÀÚ¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ ´ÜÀ§ÀÇ ¿µ¿ª(ºí·Ï, ¼­ºêÇÁ·Î±×·¥,    ÆÐÅ°Áö) ÀÔ´Ï´Ù.

°¡½Ã¼º

   ½Äº°ÀÚ´Â  ÇÑÁ¤ÇÏÁö  ¾Ê´Â ( unqualified ) À̸§À»  »ç¿ëÇÏ¿© ½Äº°ÀÚ¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Â    ¿µ¿ª¿¡¼­¸¸ ÂüÁ¶ °¡´ÉÇÕ´Ï´Ù.

¿¬½À

   ½½¶óÀ̵åÀÇ PL/SQL ºí·ÏÀ» Æò°¡(evaluate)ÇÕ´Ï´Ù. ¹üÀ§ ±ÔÄ¢¿¡ µû¶ó °¢°¢ÀÇ ¾Æ·¡ °ªÀ»    °áÁ¤ÇϽʽÿÀ:

   1.  ¼­ºê ºí·Ï¿¡¼­ V_MESSAGE ÀÇ °ª.
   2.  ¸ÞÀÎ ºí·Ï¿¡¼­ V_TOTAL_COMP ÀÇ °ª.
   3.  ¼­ºê ºí·Ï¿¡¼­ V_COMM ÀÇ °ª.
   4.  ¸ÞÀÎ ºí·Ï¿¡¼­ V_COMM ÀÇ °ª.
   5.  ¸ÞÀÎ ºí·Ï¿¡¼­ V_MESSAGE ÀÇ °ª.

 

PL/SQL¿¡¼­ ¿¬»êÀÚ

   Null ·Î ÀÛ¾÷  ÁßÀÏ ¶§, ¾Æ·¡ ±ÔÄ¢À»  ¸í½ÉÇÔÀ¸·Î½á  ¸î °¡Áö ÀϹÝÀûÀÎ ½Ç¼ö¸¦ ÇÇÇÒ ¼ö    ÀÖ½À´Ï´Ù.

 

ÇÁ·Î±×·¡¹Ö Áöħ
   
   PL/SQL ºí·ÏÀ» °³¹ßÇÒ ¶§, ¸íÈ®ÇÑ ÄÚµå »ý¼º°ú À¯Áö¸¦ °æ°¨Çϱâ À§ÇÏ¿© ÇÁ·Î±×·¡¹Ö    ÁöħÀ» ¼öÇàÇÕ´Ï´Ù.

ÄÚµå ±Ô¾à

   ¾Æ·¡ Å×À̺íÀº À̸§ÀÌ ÀÖ´Â °´Ã¼¿¡¼­ Å°¿öµå¸¦ ±¸º°Çϱâ À§ÇØ ´ë¹®ÀÚ ¶Ç´Â ¼Ò¹®ÀÚ ÄÚµå    ¾²±â¿¡ À¯¿ëÇÑ ÁöħÀ» Á¦°øÇÕ´Ï´Ù.
 

¹üÁÖ

´ë¼Ò¹®ÀÚ ±Ô¾à

¿¹

SQL ¸í·É¹®

´ë¹®ÀÚ

SELECT, INSERT

PL/SQL Å°¿öµå

´ë¹®ÀÚ

DECLARE, BEGIN, IF

µ¥ÀÌÅÍÇü

´ë¹®ÀÚ

VARCHAR2, BOOLEAN

½Äº°ÀÚ¿Í ¸Å°³º¯¼ö

¼Ò¹®ÀÚ

v_sal, emp_cursor, g_sal, p_empno

µ¥ÀÌÅͺ£À̽º Å×À̺í°ú ¿­

¼Ò¹®ÀÚ

emp, orderdate, deptno