HOME   ·Î±×ÀΠ  ȸ¿ø°¡ÀÔ
    
ȸ¿ø°¡ÀÔ
ºñ¹Ð¹øÈ£ ã±â ÀÚµ¿·Î±ä
ÀÌÀü°Ô½ÃÆÇ
   free_board
   °Ç°­°Ô½ÃÆÇ
   ¿À¶óŬDB
   Linux
   HTML/javascript
   Áú¹®°ú ´ä
È£¼­±â
   À̹ÌÁö°Ô½ÃÆÇ  
   °Ç°­°Ô½ÃÆÇ  
   À½¾ÇÀÚ·á  
   ¼ºÁØÀÌ °Ô½ÃÆÇ  
[ÀϹÝ] µ¿Àû SQL(Dynamic SQL)ÀÇ »ç¿ë¹æ¹ý
  È£¼® ´Ô²²¼­ ¾´ ±ÛÀÔ´Ï´Ù - 211.¢½.74.31 ÀÐÀ½:5863  
µ¿Àû SQL(Dynamic SQL)ÀÇ »ç¿ë¹æ¹ý - EXECUTE IMMEDIATE - | PL/SQL  2006.03.22 16:22 
 
kj_choi  Ä«Æä¸Å´ÏÀú   http://cafe.naver.com/pdsinc/74 
 
 
°ü·Ã ¸µÅ©
 http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/sq_pl09.htm *(ÀϺ» : Ãßõ)
 
 http://blog.naver.com/swinter8/130000770771 (Çѱ¹ : °­Ãß, ÀÚ¼¼ÇÑ ¼³¸í°ú »ùÇüҽº )
 
 http://www.utexas.edu/its/unix/reference/oracledocs/v92/B10501_01/appdev.920/a96624/11_dynam.htm#13131
                                                                  (¿µ¾î : Ãßõ, »ç¿ë¼³¸í)
 
 
À§ÀÇ ¸µÅ©¸¸ ºÁµµ »ç¿ëÀÌ °¡´ÉÇÕ´Ï´Ù¸¸ Àú °°Àº Ãʺ¸ÀÚ¸¦ À§ÇÏ¿© ºÎ¿¬ ¼³¸íµå¸³´Ï´Ù.
 
Á¦°¡ ¸¸µé°í ½Í¾ú´ø°ÍÀº ÆÐÅ°Áö ¹Ùµð¿¡ Á¤ÀÇÇÑ ÇÁ·Î½ÃÁ®°¡ INPUTÆĶó¸ÞŸ·Î ¹ÞÀº Á¤º¸·Î
Å×À̺íÀÇ Æ¯Á¤°ªÀ» °®´Â µ¥ÀÌŸµéÀ» °»½ÅÇϵÇ, °»½Å ´ë»óµ¥ÀÌŸ°¡ ¾øÀ¸¸é
¿¡·¯·Î ó¸®ÇÏ´Â °ÍÀ̾ú½À´Ï´Ù.
select ¹®¿¡ ´ëÇÑ ¿¹´Â ¸¹¾Ò´Âµ¥ updateÇÒ¶§ °»½Å°á°ú¸¦ ¾î¶»°Ô ¹Þ¾Æ¾ß ÇÏ´ÂÁö ¸ô¶ó¼­ Á¤¸» ¸¹ÀÌ
°í¹ÎÇߴµ¥ --;  SQL%ROWCOUNT ·Î ±â³É ¹Þ¾ÆÁö´õ±º¿ä
 
<Sample 1>--------------------------------------------------------------------------
PROCEDURE  UPD_PRG
(
 i_up_time   IN    DATE
 ,o_rtn        OUT VARCHAR2
)
 
-- »ó¼ö¼±¾ð
cn_pkg_name  CONSTANT VARCHAR2(20) := 'UPD_PKG';
 
-- º¯¼ö¼±¾ð
w_sql_data      VARCHAR2(4096);
w_update_flag  NUMBER := 0;
w_out              VARCHAR2(3);
 
w_up_time      DATE;
w_up_name    VARCHAR2(60);
 
 
-- SQL¹®ÀÛ¼º
 w_sql_data := 'UPDATE TEST_CSV_TABLE'
    || ' SET '
    ||       'OUTPUT_STATUS = ''1'''
    ||     ' ,OUTPUT_YMD = ' || '''' || i_up_time || ''''
    ||     ' ,UPDATED_BY = ' || '''' || cn_pkg_name || ''''
    || ' WHERE '
    ||     'OUTPUT_STATUS = ''0''';

 
-- log
DBMS_OUTPUT.PUT_LINE('¡¼L140¡½w_sql_data=[' || w_sql_data || ']');
 
 -- Dynamic SQL ½ÇÇà
EXECUTE IMMEDIATE w_sql_data;

  /* ½ÇÇà°á°ú °ËÁõ*/

  --  °»½Å°á°ú°¡ 0°ÇÀÌ¸é ´ë»ó µ¥ÀÌŸ°¡ ¾øÀ½À¸·Î ¿¡·¯
  IF SQL%ROWCOUNT = 0 THEN

    -- log
    DBMS_OUTPUT.PUT_LINE('SQL ROWCOUNT :' || SQL%ROWCOUNT);

    -- out ÆĶó¸ÞÅÍ¿¡ ÇØ´ç ¿¡·¯ÄÚµå ¼³Á¤
    w_out  :=  'XXX';
 
    -- ¿¡·¯ ó¸®
    RAISE e_not_exist_Recode;

  ELSE

    DBMS_OUTPUT.PUT_LINE('SQL ROWCOUNT :' || SQL%ROWCOUNT);
 
    -- out ÆĶó¸ÞÅÍ¿¡ Á¤»óó¸® Á¾·á ¼³Á¤
    w_out  :=  'OOO';

  END IF;
-------------------------------------------------------------------------------------
 
¸¸¾à ¾î¶² ƯÁ¤ Ä÷³ÀÇ °»½Å¿©ºÎ¸¦ È®ÀÎÇÏ°í ½Í´Ù¸é
 
<Sample 2>--------------------------------------------------------------------------
 
-- SQL¹®ÀÛ¼º
 w_sql_data := 'UPDATE  TEST_CSV_TABLE'
    || ' SET '
    ||       'OUTPUT_STATUS = ''1'''
    ||     ' ,OUTPUT_YMD = ' || '''' || i_up_time || ''''
    ||     ' ,UPDATED_BY = ' || '''' || cn_pkg_name || ''''
    || ' WHERE '
    ||     'OUTPUT_STATUS = ''0'''
     || ' RETURNING  OUTPUT_STATUS  INTO :w_update_flag';
 
-- log
DBMS_OUTPUT.PUT_LINE('¡¼L140¡½w_sql_data=[' || w_sql_data || ']');
 
 -- Dynamic SQL ½ÇÇà
EXECUTE IMMEDIATE w_sql_data
               RETURNING INTO w_update_flag;
 
 
¿©±â¼­ "OUTPUT_STATUS" ¶ó´Â Ä÷³ÀÌ °»½ÅµÇ¾ú´Ù¸é "w_update_flag"¿¡´Â "1"À̶ó´Â ¼ýÀÚ°¡
¹ÝȯµÇ¾î Áý´Ï´Ù. °»½Å´ë»ó µ¥Å¸°¡ ¾øÀ¸¸é(°»½ÅÀÌ ¾ÊµÇ¾ú±â¶§¹®¿¡) "0"ÀÌ ¹ÝȯµË´Ï´Ù.
-------------------------------------------------------------------------------------
 
¸¸¾à µ¿ÀûÀ¸·Î °»½ÅÇÒ °ªÀÌ º¯°æµÈ´Ù°í ÇÑ´Ù¸é
 
<Sample 3>--------------------------------------------------------------------------
 
-- ·çÇÁ¸¦ µ¹¾Æ°¡¸é¼­ 󸮰¡ µÇ°ÚÁö¿ä..
w_up_time := ¾îµð¼±°¡ ¾ò¾î¿Â °ªÀ» ¼ÂÆÃ;
w_up_name :=¾îµð¼±°¡ ¾ò¾î¿Â °ªÀ» ¼ÂÆÃ;

-- SQL¹®ÀÛ¼º
 w_sql_data := 'UPDATE  TEST_CSV_TABLE'
    || ' SET '
    ||       'OUTPUT_STATUS = ''1'''
    ||     ' ,OUTPUT_YMD = :val1'
    ||     ' ,UPDATED_BY = :val2'
    || ' WHERE '
    ||     'OUTPUT_STATUS = ''0''';
 
-- log
DBMS_OUTPUT.PUT_LINE('¡¼L140¡½w_sql_data=[' || w_sql_data || ']');
 
 -- Dynamic SQL ½ÇÇà
EXECUTE IMMEDIATE w_sql_data
               USING   w_up_time, w_up_name;
 
-------------------------------------------------------------------------------------
 
ÇÁ·Î½ÃÁ® ½ÇÇà½ÃÅ°±â
<Sample 4>--------------------------------------------------------------------------
  EXECUTE IMMEDIATE 'BEGIN UPD2_PKG.UPD2_PRG(:a, :b, :c, :d, :e, :f, :g, :h, :i); END;'
    USING IN w_data_a,
                  w_data_b,
                  w_data_c,
                  w_data_d,
                  w_data_e,
                  w_data_f,
                  w_data_g,
                  w_data_h,
     OUT       w_rtn_cd_i;
 
 
  IF w_rtn_cd_i = success THEN
   -  ¼º°øÇßÀ»¶§ÀÇ Ã³¸®
 
  ELSIF w_rtn_cd_i = not_found  THEN
   -  ¸®ÅÏ°ªÀÌ Æ¯Á¤ ¿¡·¯ÀÇ °æ¿ìÀÇ Ã³¸®

  ELSE
    -- ±âŸ ½Ã½ºÅÛ¿¡·¯ µî
    RAISE e_exception;
  END IF;


¸ñ·Ï

ºÐ·ù ¼±ÅÃ
94 ÀÏ¹Ý ¿À¶óŬ Áø¼öº¯È¯ ÆÐÅ°Áö ¼Ò½º ( 2 Áø¼ö ~ 36 Áø¼ö ) È£¼® 08-02-27 4892
93 ÀÏ¹Ý ¿À¶óŬ ¾Ïȣȭ ±¸Çö È£¼® 08-02-20 5666
92 ÀÏ¹Ý sqlplus¿¡¼­ º¯¼ö »ç¿ëÇÏ´Â ¹æ¹ý È£¼® 07-09-14 6459
91 ÀÏ¹Ý ¿À¶óŬ 10gÀÇ Flashback ±â¼ú [recycle ±â´É] È£¼® 07-08-10 5679
90 ÀÏ¹Ý ENTERPRISE EDITION µ¥ÀÌÅͺ£À̽º¸¦ STANDARD EDITIONÀ¸·Î º¯°æÇÏ´Â ¹ý È£¼® 07-07-25 4765
89 ÀÏ¹Ý ¿À¶óŬ Å×À̺í ÆÄƼ¼Ç »ç¿ëÇϱâ È£¼® 07-07-25 5443
88 ÀÏ¹Ý ¼³Ä¡½Ç¼ö·Î ÀÎÇÑ ¿À¶óŬ À缳ġ °ü·Ã È£¼® 07-07-24 4294
87 ÀÏ¹Ý ¿À¶óŬ ÆÄƼ¼Ç Å×À̺í (Partitioned Table) È£¼® 07-07-10 9289
86 ÀÏ¹Ý ¿À¶óŬ Å×À̺í ÆÄƼ¼Å´× È£¼® 07-07-10 6168
ÀÏ¹Ý µ¿Àû SQL(Dynamic SQL)ÀÇ »ç¿ë¹æ¹ý È£¼® 07-06-28 5864
84 ÀÏ¹Ý ¿À¶óŬ 10G Åäµå¿¡¼­ DEBUG ±â´É»ç¿ëÇϱâ È£¼® 07-06-25 5098
83 ÀÏ¹Ý °³¹ßÀÚ°¡ ¹üÇϱ⠽¬¿î Æ©´× À̽´ 10°¡Áö À¯Çü ºÐ¼® È£¼® 07-06-22 5021
82 ÀÏ¹Ý ¿À¶óŬ 8i ORA-00604 ,ORA-04031 ¿¡·¯ ó¸® È£¼® 07-06-12 6233
81 ÀÏ¹Ý ¿À¶óŬ 8i DB Àç½ÃÀÛ È£¼® 07-06-12 4103
80 ÀÏ¹Ý mysql DB ¹× »ç¿ëÀÚ »ý¼º (1) È£¼® 07-05-18 4078
óÀ½ÀÌÀü  [1] [2] [3] 4 [5] [6] [7] [8] [9] [10]  ´ÙÀ½¸Ç³¡

 
Copyright © zenos.pe.kr. All rights reserved.