Oracle procedure return DataSet used in JDBC

本文介绍了一个Oracle存储过程的创建与使用示例,该过程用于添加员工及其部门信息,并通过Java JDBC进行调用。文章还展示了如何处理员工ID重复的情况及部门不存在时的自动创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sql代码

--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:
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值