ÄÁÅÙÃ÷»ó¼¼º¸±â

¿À¶óŬ PL/SQL ÇÁ·Î±×·¡¹Ö
¿À¶óŬ PL/SQL ÇÁ·Î±×·¡¹Ö
  • ÀúÀÚ½ºÆ¼ºì Æ÷À̾ŸÀÎ ¿Ü
  • ÃâÆÇ»çÇѺû¹Ìµð¾î(ÁÖ)
  • ÃâÆÇÀÏ2009-11-10
  • µî·ÏÀÏ2013-02-26
º¸À¯ 1, ´ëÃâ 0, ¿¹¾à 0, ´©Àû´ëÃâ 1, ´©Àû¿¹¾à 0

Ã¥¼Ò°³

¿À¶óŬ 9iÀÇ PL/SQL ¹öÀüÀº ¿À¶óŬ 8i ÀÌÀü ¹öÀü¿¡ ÀÖ´ø ±â´ÉµéÀÌ º¸°­µÇ¾úÀ» »Ó¸¸ ¾Æ´Ï¶ó Ãß°¡µÈ ±â´Éµµ ¸¹ÀÌ ÀÖ´Ù. ¿©±â¿¡´Â Ãß°¡µÈ ÀÚ·áÇü°ú Ãß°¡µÈ PL/SQLÀÇ ±â´ÉÀÎ ¿ø½Ã µ¿Àû SQL, ÀÚÀ²Àû Æ®·£Àè¼Ç, È£ÃâÀÚ ±ÇÇÑ, ¹®ÀÚ¿­ ÷ÀÚ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ´ÙÃþ Ä÷º¼Ç, ·¹ÄÚµå ±â¹ÝÀÇ DML, °´Ã¼Çü »ó¼Ó µîµµ Æ÷ÇÔÇÑ´Ù.



À̹ø °³Á¤ 3ÆÇ¿¡¼­´Â µ¶ÀÚµéÀÇ ¿ä±¸¿¡ µû¶ó PL/SQL ÇÁ·Î±×·¥À» »ý¼ºÇÏ°í ½ÇÇàÇÏ´Â ¹æ¹ý, PL/SQL¿¡¼­ ÀÚ¹Ù ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â ¹æ¹ý, µ¥ÀÌÅͺ£À̽º Æ®¸®°ÅÀÇ Á¤ÀÇ¿Í »ç¿ë µîÀ» º°µµ·Î ±¸¼ºÇÏ¿© ¼³¸íÇÑ´Ù. ±×¸®°í °æÇè ¸¹Àº PL/SQL ÇÁ·Î±×·¡¸ÓµéÀ» ¹è·ÁÇÏ¿© PL/SQL¿¡¼­ ÃÖ´ëÀÇ ¼º´ÉÀ» ¾òÀ» ¼ö ÀÖ°Ô, PL/SQL ½ÇÇà½Ã°£ ¾ÆÅ°ÅØó¿Í ¿À¶óŬ ³»ºÎ ±¸Á¶¿¡ ´ëÇÑ ¼³¸í µî ±¤¹üÀ§ÇÑ ³»¿ëµµ ´Ù·ð´Ù.

ÀúÀÚ¼Ò°³

½ºÆ¼ºì Æ÷À̾ŸÀΠ(Steven Feuerstein)



¿À¶óŬ PL/SQL ÇÁ·Î±×·¡¹Ö¿¡ ÀÖ¾î Àü ¼¼°èÀÇ À¯´ÉÇÑ Àü¹®°¡Áß Çϳª·Î ¼Õ²ÅÈù´Ù. ±×´Â ¡º¿À¶óŬ PL/SQL ÇÁ·Î±×·¡¹Ö¡», ¡ºOracle PL/SQL Best Practices¡», ¡ºOracle Built-in Packages¡»¸¦ ºñ·ÔÇÑ ´Ù¼öÀÇ Æ÷ÄÏ Âü°í¼­(O'Reilly & Associates¿¡¼­ ¹ß°£) ¼­ÀûÀÇ ÀúÀڠȤÀº °øµ¿ ÀúÀÚ´Ù. ½ºÆ¼ºìÀº Äù½ºÆ® ¼ÒÇÁÆ®¿þ¾î(Quest Software)ÀÇ ¼±ÀÓ ±â¼ú °í¹®À̸ç 1980³âºÎÅÍ ¼ÒÇÁÆ®¿þ¾î¸¦ °³¹ßÇϱ⠽ÃÀÛÇß°í ¿À¶óŬ¿¡¼­ 1987³âºÎÅÍ 1992³â±îÁö ÀÏÇß´Ù. 





ºô ÇÁ¸®ºô (Bill Pribyl)



ÀúÀÚ, ±³»ç, ¼ÒÇÁÆ®¿þ¾î °³¹ßÀڷμ­ È°µ¿ÇÏ°í ÀÖÀ¸¸ç ¡ºLearning Oracle PL/SQL¡»ÀÇ ÀúÀÚ´Ù. ±×¸®°í ¡º¿À¶óŬ PL/SQL ÇÁ·Î±×·¡¹Ö¡»°ú ±× ¿ÜÀÇ Æ÷ÄÏ ·¹ÆÛ·±½º¸¦ °øÀúÇß´Ù. 1986³âºÎÅÍ ¿À¶óŬÀ» »ç¿ëÇϱ⠽ÃÀÛÇÏ¿©, ¿À¶óŬ Á¦Ç°À» »ç¿ëÇϴ ´Ù¾çÇÑ Ãø¸é¿¡ ´ëÇÑ ÄÁ¼³ÆÃÀ» ÇØ¿Ô´Ù. ÃÖ±Ù¿¡´Â ¿ÀǼҽº PL/SQL ¼Ò½º¸¦ °øÀ¯Çϴ ¸ðÀÓÀΠPLNet.org¿¡¼­ È°µ¿ÇÏ°í ÀÖ´Ù. 





Â÷¿µÀÎ



¼øõ´ëÇб³ ÄÄÇ»Åͱ³À°°ú¸¦ Á¹¾÷ÇßÀ¸¸ç, ÇöÀ砢߿ºû½Ã½ºÅÛ¿¡¼­ µ¥ÀÌÅͺ£À̽º °ü·Ã ÀÛ¾÷À» ´ã´çÇÏ°í ÀÖ´Ù. 





¾çÈÆ



LG CNS ±â¼ú¿¬±¸ºÎ¹®ÀÇ µ¥ÀÌÅÍ ¾ÆÅ°ÅØó ÆÀ¿¡¼­ ÀçÁ÷ÇÏ°í ÀÖÀ¸¸ç Çѱ¹Åë½Å, ±¹¹Î°Ç°­º¸Çè, ½Å°øÇ× TGIS µî ´Ù¼öÀÇ ½Ã½ºÅÛ ±¸Ãà ÇÁ·ÎÁ§Æ®¿¡¼­ DBA ÆÀÀå ¹× ¾ÆÅ°ÅØó ÆÀÀåÀ¸·Î µ¥ÀÌÅͺ£À̽º BMT, ¼³°è, ±¸Ãà, Áø´Ü, Æ©´× µîÀÇ ÀÏÀ» ÇÏ¿´´Ù. 





¼­¹Î±¸



¿¬¼¼´ëÇб³¿¡¼­ ÄÄÇ»ÅÍ°úÇÐÀ» Àü°øÇÏ°í ÀÖÀ¸¸ç, »ï¼º¼ÒÇÁÆ®¿þ¾î ¸â¹ö½Ê 12±â, ÀÚ¹Ù½ºÅ͵ð ³×Æ®¿öÅ© ºÎ¿î¿µÀڷΠȰµ¿ÁßÀÌ´Ù. ´å³Ý, ÀÚ¹Ù, µ¥ÀÌÅͺ£À̽º µîÀÇ ºÐ¾ß¿¡ °ü½ÉÀÌ ¸¹´Ù. 

¸ñÂ÷

1ºÎ. PL/SQL ÇÁ·Î±×·¡¹Ö 



1Àå. PL/SQL ¼Ò°³ 



PL/SQLÀ̶õ ¹«¾ùÀΰ¡

PL/SQLÀÇ ±â¿ø

ÀÌ°ÍÀÌ PL/SQLÀÌ´Ù

PL/SQLÀÇ ¹öÀü

PL/SQL °³¹ßÀÚ¸¦ À§ÇÑ ÀÚ·á

ÀúÀÚÀÇ Ãæ°í 



2Àå. PL/SQL Äڵ堻ý¼º°ú ½ÇÇà 



SQL*Plus

Áß¿äÇÑ PL/SQL ÀÛ¾÷ ¼öÇàÇϱâ

¿À¶óŬ PL/SQL ±â¹Ý °³¹ßÀÚ µµ±¸

´Ù¸¥ ¾ð¾î·Î PL/SQL È£ÃâÇϱâ

±âŸ PL/SQL·Î Àû¿ëÇϴ °æ¿ì 



3Àå. ¾ð¾î ±âÃÊ 



PL/SQL ºí·Ï ±¸Á¶

PL/SQL ¹®ÀÚ ÁýÇÕ

½Äº°ÀÚ

¸®ÅÍ·²

¼¼¹ÌÄݷР±¸ºÐÀÚ

ÁÖ¼®

PRAGMA Å°¿öµå

·¹À̺í 





2ºÎ. PL/SQL ÇÁ·Î±×·¥ ±¸Á¶ 



4Àå. Á¶°ÇÁ¦¾î¿Í ¼øÂ÷Á¦¾î 



IF¹®

CASE¹®

GOTO¹®

NULL¹® 



5Àå. ·çÇÁ¸¦ ÀÌ¿ëÇÑ ¹Ýº¹Ã³¸® 



·çÇÁ ±âÃÊ

´Ü¼ø ·çÇÁ

WHILE ·çÇÁ

¼ýÀÚ FOR ·çÇÁ

Ä¿¼­ FOR ·çÇÁ

·çÇÁ ·¹À̺í

¹Ýº¹Ã³¸®¸¦ À§ÇÑ ÆÁ 



6Àå. ¿¹¿Ü Ã³¸®±â 



PL/SQLÀÇ ¿À·ù Ã³¸® ¹æ¹ý

¿¹¿Ü Á¤ÀÇÇϱâ

¿¹¿Ü ¹ß»ý½ÃÅ°±â

¿¹¿Ü Ã³¸®Çϱâ 





3ºÎ. PL/SQL ÇÁ·Î±×·¥ µ¥ÀÌÅÍ 



7Àå. ÇÁ·Î±×·¥ÀÇ µ¥ÀÌÅ͠ó¸®Çϱâ 



ÇÁ·Î±×·¥ µ¥ÀÌÅÍ À̸§Áþ±â

PL/SQL ÀÚ·áÇüÀÇ °³¿ä

ÇÁ·Î±×·¥ µ¥ÀÌÅÍ ¼±¾ðÇϱâ

ÇÁ·Î±×·¡¸Ó Á¤ÀÇ ¼­ºêŸÀÔ

µ¥ÀÌÅÍÀÇ Çü º¯È¯ 



8Àå. ¹®ÀÚ¿­ 



¹®ÀÚ ÁýÇÕÀÇ È¿°ú

¹®ÀÚ¿­ ÀÚ·áÇü

¹®ÀÚ¿­ °ü·Ã ¹®Á¦v

¹®ÀÚ¿­ ÇÔ¼ö

NLS ÇÔ¼ö 



9Àå. ¼ýÀÚ 



¼öÄ¡ ÀÚ·áÇü

¼ýÀÚ º¯È¯

¼öÄ¡ ÇÔ¼ö 



10Àå. ³¯Â¥¿Í Å¸ÀÓ½ºÅÆÇÁ 



³¯Â¥¿Í ½Ã°£ °ü·Ã ÀÚ·áÇü

³¯Â¥¿Í Å¸ÀÓ½ºÅÆÇÁ º¯È¯

³¯Â¥/½Ã°£ °è»ê

³¯Â¥/½Ã°£ ÇÔ¼ö 



11Àå. ·¹ÄÚµå¿Í Ä÷º¼Ç 



PL/SQLÀÇ ·¹ÄÚµå

PL/SQLÀÇ Ä÷º¼Ç

Ä÷º¼ÇÇü°ú Ä÷º¼ÇÀÇ ¼±¾ð

Ä÷º¼Ç È°¿ë

Ä÷º¼Ç °ü·Ã ³»Àå ¸Þ¼Òµå

Ä÷º¼Ç Ã³¸®

Ä÷º¼Ç °ü·Ã ÀÇ»ç ÇÔ¼ö

Ä÷º¼Ç °ü¸®

Ä÷º¼ÇÇü ¼±Åà



12Àå. ±âŸ ÀÚ·áÇü 



ºÒ¸° ÀÚ·áÇü

RAW ÀÚ·áÇü

UROWID¿Í ROWID ÀÚ·áÇü

LOB ÀÚ·áÇü

LOB Ã³¸®

¹Ì¸® Á¤ÀǵȠ°´Ã¼Çü 





4ºÎ. PL/SQLÀÇ SQL 



13Àå. DML°ú Æ®·£Àè¼Ç °ü¸® 



PL/SQLÀÇ DML

FORALL¹®À» ÀÌ¿ëÇÑ ´ë·® DML Ã³¸®

Æ®·£Àè¼Ç °ü¸®

ÀÚÀ²Àû Æ®·£Àè¼Ç 



14Àå. µ¥ÀÌÅÍ ÃßÃâ 



Ä¿¼­ ±âÃÊ

¾Ï½ÃÀû Ä¿¼­ Ã³¸®

¸í½ÃÀû Ä¿¼­ Ã³¸®

BULK COLLECT

SELECT¡¦FOR UPDATE

Ä¿¼­ º¯¼ö

Ä¿¼­ Ç¥Çö½Ä(¿À¶óŬ 9i) 



15Àå. µ¿Àû SQL°ú PL/SQL 



NDS¹®

Ä¿¼­ º¯¼ö¸¦ ÀÌ¿ëÇÑ ´ÙÁß Çà ÁúÀÇ

¹ÙÀεù º¯¼ö

°´Ã¼¿Í Ä÷º¼Ç Ã³¸®

NDS¸¦ ÀÌ¿ëÇÑ ¾ÖÇø®ÄÉÀ̼Ǡ»ý¼º

NDS À¯Æ¿¸®Æ¼ ÆÐÅ°Áö

NDS¿Í DBMS_SQL ºñ±³ 





5ºÎ. PL/SQL ¾ÖÇø®ÄÉÀ̼Ǡ±¸¼º 



16Àå. ÇÁ·Î½ÃÀú, ÇÔ¼ö ±×¸®°í ¸Å°³º¯¼ö 



¸ðµâ ÄÚµå

ÇÁ·Î½ÃÀú

ÇÔ¼ö

¸Å°³º¯¼ö

·ÎÄà¸ðµâ

¸ðµâ ¿À¹ö·Îµù

¼±Ç༱¾ð

°í±Þ ÁÖÁ¦

¸ðµâÈ­¸¦ À§ÇÏ¿© 



17Àå. ÆÐÅ°Áö 



¿Ö ÆÐÅ°ÁöÀΰ¡

ÆÐÅ°Áö ±¸Ãà ±ÔÄ¢

ÆÐÅ°Áö ¿ä¼Ò È£Ãâ ±ÔÄ¢

ÆÐÅ°Áö µ¥ÀÌÅ͠ó¸®

ÆÐÅ°Áö »ç¿ë ½Ã±â

ÆÐÅ°Áö¿Í ¿ÀºêÁ§Æ®Çü 



18Àå. Æ®¸®°Å 



DML Æ®¸®°Å

DDL Æ®¸®°Å

µ¥ÀÌÅͺ£À̽º À̺¥Æ® Æ®¸®°Å

INSTEAD OF Æ®¸®°Å

AFTER SUSPEND Æ®¸®°Å

Æ®¸®°Å °ü¸® 



19Àå. PL/SQL ¾ÖÇø®ÄÉÀ̼Ǡ°ü¸® 



µ¥ÀÌÅͺ£À̽º ³» Äڵ堰ü¸®¿Í ºÐ¼®

ÀúÀåµÈ Äڵ堺¸È£

³×ÀÌƼºê ÄÄÆÄÀÏ »ç¿ë

PL/SQL ÇÁ·Î±×·¥ Å×½ºÆ®

PL/SQL ÇÁ·Î±×·¥ µð¹ö±ë

PL/SQL ÇÁ·Î±×·¥ Æ©´×

¾ÖÇø®ÄÉÀ̼Ǡ¼º´É Çâ»ó 





6ºÎ. °í±Þ PL/SQL 



20Àå. PL/SQLÀÇ ½ÇÇà½Ã°£ ±¸Á¶ 



³»ºÎ±¸Á¶ »ìÆ캸±â

ÀÇÁ¸¼º °ü¸®

PL/SQLÀÇ ¿À¶óŬ ¼­¹ö ¸Þ¸ð¸® »ç¿ë

¼­¹ö Ãø PL/SQL ÄÚµå

Ŭ¶óÀ̾ðÆ® Ãø PL/SQL ÄÚµå

½ÇÇà±ÇÇÑ ¸ðµ¨

PL/SQLÀ» À§ÇÑ Çϵå¿þ¾î : Å¬¼ö·Ï ÁÁ´Ù

¹Ýµå½Ã ¾Ë¾ÆµÎ¾î¾ß ÇÒ ³»¿ë 



21Àå. PL/SQLÀÇ °´Ã¼ÁöÇâ 



¿À¶óŬ °´Ã¼ Æ¯Â¡ ¼Ò°³

È®ÀåµÈ ¿¹

°´Ã¼ ºä

°´Ã¼Çü°ú °´Ã¼ ºä °ü¸®

°´Ã¼ÁöÇâÀû Á¢±ÙÀÇ »ç¿ë¿¡ ´ëÇؼ­ 



22Àå. PL/SQL¿¡¼­ Àڹ٠ȣÃâ 



¿À¶óŬ°ú ÀÚ¹Ù

¿À¶óŬ ³» ÀÚ¹Ù »ç¿ëÀ» À§ÇÑ Áغñ

´Ü¼ø ¿¹Á¦

loadjava »ç¿ë

dropjava »ç¿ë

µ¥ÀÌÅͺ£À̽º¿¡¼­ÀÇ ÀÚ¹Ù °ü¸®

DBMS_JAVA »ç¿ë

PL/SQL¿¡¼­ ÀÚ¹Ù ÆÛºí¸®½Ã¿Í »ç¿ë 



23Àå. ¿ÜºÎ ÇÁ·Î½ÃÀú 



¿ÜºÎ ÇÁ·Î½ÃÀú ¼Ò°³

¿À¶óŬ ³Ý ¼³Á¤

¿À¶óŬ ¶óÀ̺귯¸® »ý¼º

È£Ãâ ½ºÆå ÀÛ¼ºÇϱâ

È£ÃâµÈ C ÇÁ·Î±×·¥¿¡¼­ÀÇ ¿¹¿Ü ¹ß»ý

±âº»ÀÌ ¾Æ´Ñ ¿¡ÀÌÀüÆ®

¿ÜºÎ ÇÁ·Î½ÃÀú °ü¸®

ÇÑÁÙ ¼­Æò