跪求,我写的这个存储过程有问题,帮忙解决啊
我在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的程序又如何来调用这个存储过程呢?多谢
------解决方案--------------------楼主的是MSSQL的写法吗?
------解决方案--------------------你上面写的存储过程是java中的么?
------解决方案--------------------好像和mssql的语法不太一样,不懂.