首页>java频道>java教程>正文
Java JDBC调用Oracle存储过程

www.zige365.com 2010-6-7 10:55:47 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
  • ELSE     
  •     raise_application_error(-202021,'员工id 重复!!!');      
  • END IF;      
  •    commit;      
  •      
  • END;    
  • --1.建包

    1. CREATE OR REPLACE PACKAGE my_pak AS 
    2.  TYPE my_cus IS REF CURSOR  ;  
    3. END my_pak; 

    --2.写存储返回过程

    1. CREATE OR REPLACE PROCEDURE sp_add_emp3(  
    2.    v_empno emp.empno%TYPE,  
    3.    v_ename emp.ename%TYPE,  
    4.    v_deptno dept.deptno%TYPE,  
    5.    v_dname dept.dname%TYPE,  
    6.  
    7.    p_cus OUT my_pak.my_cus  
    8. )AS 
    9.    num1 NUMBER;  
    10.    num2 NUMBER;  
    11. BEGIN 
    12.  
    13. OPEN p_cus FOR select empno,ename into v_empno,v_ename  from emp where deptno =v_deptno   
    14.    SELECT COUNT(*) INTO num1 FROM dept WHERE deptno=v_deptno;  
    15. IF(num1=0) THEN 
    16.    INSERT INTO dept(deptno,dname) VALUES(v_deptno,v_dname);  
    17. END IF;  
    18.    SELECT COUNT(*) INTO num2 FROM emp WHERE empno=v_empno;  
    19. IF(num2=0)THEN 
    20.    INSERT INTO emp(empno,ename,deptno) VALUES(v_empno,v_ename,v_deptno);  
    21. ELSE 
    22.    raise_application_error(-202021,'员工id 重复!!!');  
    23. END IF;  
    24.    commit;  
    25.  
    26. END

    Java JDBC调用Oracle,Java中调用代码3: 

    1. Class.forName("oracle.jdbc.driver.OracleDriver");      
    2. conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");      
    3. conn.setAutoCommit(false);      
    4.      
    5. conn=DBConnection.getDBConnection().getConnection();      
    6.      
    7. String spName="{call sp_add_emp2(?,?,?,?,?)}";      
    8. CallableStatement cstmt=conn.prepareCall(spName);      
    9. cstmt.setInt(1,1111);      
    10. cstmt.setString(2, "qqqq");      
    11. cstmt.setInt(3, 50);      
    12. cstmt.setString(4, "pppp");      
    13. cstmt.registerOutParameter(5, java.sql.Types.ORACLETYPE);      
    14. cstmt.executeUpdate();      
    15. int i = cstmt.getInt(5);      
    16. System.out.println(i);      
    17. cstmt.close();      
    18. conn.close();    

    【编辑推荐】

    1. 在Weblogic中实现JDBC的功能

      本新闻共6页,当前在第5页  1  2  3  4  5  6  

    我要投稿 新闻来源: 编辑: 作者:
    相关新闻
    几种如何减少JDBC连接池开销的方法
    JSP JDBC来连接SQL Server 2005的方法
    研究分析JDBC技术在数据库连接池上的应用
    JDBC连接Sybase数据库的三种方法
    JDBC数据源的几种形式