跪求,我写的这个存储过程有问题,帮忙解决啊

yesjoy yesjoy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在java的方法里面是这样写的:
for (int i = 0; i < len; i++) {
Misfunc misfunc = (Misfunc) funcCodeList.get(i);
String funcCode = misfunc.getMisfuncCode();
Long projEmpFuncId = new Long(super.getNextIdFromSequence());
sql= "insert into sys_proj_staff_func

(proj_emp_func_id,proj_staff_id,misfunc_code) values(?,?,?)"

Object[] value = new Object[] { projEmpFuncId, projStaffId,
funcCode };
getJdbcTemplate().update(sql, value);
}

由于效率的问题,我把上面的循环的insert语句写成了存储过程如下:
create procedure create_proj_auth(projStaffId)
language sql
begin
for rs1 as select * from SYS_MISFUNC where MISFUNC_TYPE='B0'
do
insert into SYS_PROJ_STAFF_FUNC
(PROJ_EMP_FUNC_ID, MISFUNC_CODE, PROJ_STAFF_ID)
values
(PROJ_EMP_FUNC_ID, rs1.MISFUNC_CODE, projStaffId);
end for;
end;

call create_proj_auth;

drop procedure create_proj_auth();
对于上面的存储过程,我有如下两个问题:

1、projStaffId 这个参数怎么传入进去(我这里的写法有问题)
2、PROJ_EMP_FUNC_ID 这个是主键,需要自动生成

最后请问在java的程序又如何来调用这个存储过程呢?多谢
...全文
评论 4
收藏 已收藏
分享
返回顶部
yesjoy
MS-SQL Server 34,876 成员 254,635 内容