有员工表和部门表
创建存储过程, 员工新进一个部门时,部门表对应部门人数加1,员工调换部门时,原先部门人数减1,现在部门人数加1
Oracle存储过程的创建怎么破
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 旅人Maple 2019-07-16 04:09关注
CREATE OR REPLACE PROCEDURE ap.update_data (var_emp IN VARCHAR2, var_new_dpt IN VARCHAR2, var_omsg OUT VARCHAR2) AS l_exit EXCEPTION; l_count INT; l_old_dpt VARCHAR2 (50); ----table : emp_table dpt _able BEGIN SELECT COUNT (*) INTO l_count FROM emp_table WHERE empname = var_emp; IF l_count <= 0 THEN var_o_msg := 'emp not exists'; RAISE l_exit; END IF; SELECT dptid INTO l_old_dpt FROM emp_table WHERE empname = var_emp; UPDATE dpt_table SET dptnumber = dptnumber + 1 WHERE (dptid = var_new_dpt or dptname =var_new_dpt);--看你传入参数是部门id还是名称 UPDATE dpt_table SET dptnumber = dptnumber - 1 WHERE dptid = l_old_dpt; var_omsg := 'information updated '; COMMIT; RETURN; EXCEPTION WHEN l_exit THEN ROLLBACK; RETURN; WHEN OTHERS THEN ROLLBACK; END;
随手写的,用触发器其实更好一点,没必要写什么存储过程。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 matlab实现基于主成分变换的图像融合。
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制
- ¥20 usb设备兼容性问题
- ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊