Oracle 저장 프로 세 스 를 어떻게 사용 하 는 지 에 대한 간단 한 예

전재 또는 다른 때 복사 하 십시오. http://esc3721.blog.51cto.com/2366253/517800
Oracle 저장 과정 에 대한 소 개 는 많 지 않 습 니 다.
저장 프로시저 구축
CREATE OR REPLACE PROCEDURE test_pro3(x OUT INT,y OUT int) 
  • IS 

  •   BEGIN 
  •     x := 20; 

  •     y := 30; 
  •   END;

  • 저장 프로시저 조회:
    
      
      
      
      
    1. SQL> SELECT text FROM all_source WHERE TYPE = 'PROCEDURE' AND name = 'TEST_PRO3'
    2.  
    3. TEXT 
    4. -------------------------------------------------------------------------------- 
    5. PROCEDURE test_pro3(x OUT INT,y OUT int
    6. IS 
    7.   BEGIN 
    8.     x := 20; 
    9.     y := 30; 
    10.   END
    11.  
    12. 6 。 

    JAVA 가 저장 프로 세 스 를 호출 하 는 code:
    
      
      
      
      
    1. package votory; 
    2.  
    3. import java.sql.Connection; 
    4. import java.sql.DriverManager; 
    5.  
    6. import java.sql.*; 
    7. import java.sql.ResultSet; 
    8.  
    9. public class ConneDB { 
    10.     public ConneDB() { 
    11.     } 
    12.  
    13.     public static void main(String[] args) { 
    14.         String driver = "oracle.jdbc.driver.OracleDriver"
    15.         String strUrl = "jdbc:oracle:thin:@127.0.0.1:1521:SID"
    16.         Statement stmt = null
    17.         ResultSet rs = null
    18.         Connection conn = null
    19.         CallableStatement cstmt = null
    20.  
    21.         try { 
    22.             Class.forName(driver); 
    23.             conn = DriverManager.getConnection(strUrl, "scott""tiger"); 
    24.             CallableStatement proc = null
    25.              
    26.             proc = conn.prepareCall("{ call test_pro3(?,?)}"); 
    27.             proc.registerOutParameter(1, Types.INTEGER); 
    28.             proc.registerOutParameter(2, Types.INTEGER); 
    29.             proc.execute(); 
    30.              
    31.             String test = proc.getString(1); 
    32.             String test2 = proc.getString(2); 
    33.              
    34.             System.out.println(test + " " + test2); 
    35.             System.out.println("DONE.............."); 
    36.         } catch (SQLException ex2) { 
    37.             ex2.printStackTrace(); 
    38.         } catch (Exception ex2) { 
    39.             ex2.printStackTrace(); 
    40.         } finally { 
    41.             try { 
    42.                 if (rs != null) { 
    43.                     rs.close(); 
    44.                     if (stmt != null) { 
    45.                         stmt.close(); 
    46.                     } 
    47.                     if (conn != null) { 
    48.                         conn.close(); 
    49.                     } 
    50.                 } 
    51.             } catch (SQLException ex1) { 
    52.             } 
    53.         } 
    54.     } 

    결 과 는 다음 과 같다.
    
      
      
      
      
    1. 20 30 
    2. DONE.............. 

    커서 를 어떻게 정의 하고 처리 합 니까?
    
      
      
      
      
    1. CREATE OR REPLACE PACKAGE testpackage  
    2. IS 
    3.   TYPE test_cursor IS REF CURSOR
    4. END
    5.  
    6. CREATE OR REPLACE PROCEDURE test_pro4(p_cursor OUT testpackage.test_cursor) 
    7. IS 
    8.   BEGIN 
    9.     OPEN p_cursor FOR SELECT * FROM a; 
    10.   END

    드디어 간단 한 예 를 알 게 됐어...허허

    좋은 웹페이지 즐겨찾기