跪求,我写的这个存储过程有问题,帮忙解决啊
我在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的语法不太一样,不懂.