程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 實現Oracle存儲過程的實際應用的代碼

實現Oracle存儲過程的實際應用的代碼

編輯:Oracle數據庫基礎

如果你在Oracle存儲過程(非列表)的實際操作中,你對Oracle存儲過程(非列表)有不解之處時,你可以通過以下的文章對其的實際應用與功能有所了解,以下是文章的具體介紹,望你浏覽完以下的內容會有所收獲。

Oracle存儲過程為:

  1. CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,
    PARA2 OUT VARCHAR2) AS  
  2. BEGIN   
  3. SELECT INTO PARA2 FROM TESTTB WHERE I_IDPARA1;   
  4. END TESTB;  

在Java裡調用時就用下面的代碼:

  1. package com.hyq.src;  
  2. public class TestProcedureTWO {  
  3. public TestProcedureTWO() {  
  4. }  
  5. public static void main(String[] args ){  
  6. String driver = "Oracle.jdbc.driver.OracleDriver";  
  7. String strUrl = "jdbc:Oracle:thin:@127.0.0.1:1521:hyq";  
  8. Statement stmt = null;  
  9. ResultSet rs = null;  
  10. Connection conn = null;  
  11. try {  
  12. Class.forName(driver);  
  13. conn = DriverManager.getConnection(strUrl, " hyq ", " hyq ");  
  14. CallableStatement proc = null;  
  15. proc = conn.prepareCall("{ call HYQ.TESTB(?,?) }");  
  16. proc.setString(1, "100");  
  17. proc.registerOutParameter(2, Types.VARCHAR);  
  18. proc.execute();  
  19. String testPrint = proc.getString(2);  
  20. System.out.println("=testPrint=is="+testPrint);  
  21. }  
  22. catch (SQLException ex2) {  
  23. ex2.printStackTrace();  
  24. }  
  25. catch (Exception ex2) {  
  26. ex2.printStackTrace();  
  27. }  
  28. finally{  
  29. try {  
  30. if(rs != null){  
  31. rs.close();  
  32. if(stmt!=null){  
  33. stmt.close();  
  34. }  
  35. if(conn!=null){  
  36. conn.close();  
  37. }  
  38. }  
  39. }  
  40. catch (SQLException ex1) {  
  41. }  
  42. }  
  43. }  
  44. }  
  45. }  

注意,這裡的proc.getString(2)中的數值2並非任意的,而是和Oracle存儲過程中的out列對應的,如果out是在第一個位置,那就是proc.getString(1),如果是第三個位置,就是proc.getString(3),當然也可以同時有多個返回值,那就是再多加幾個out參數了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved