`
q_wong
  • 浏览: 104820 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

導入員工績效存儲過程

阅读更多

導入7000多筆資料,如果寫Java程式的話就算優化到每筆資料一條SQL語句,半個小時都更新不完

換成存儲過程的話1分多鐘就OK了

 

具體做法是遍歷Excel表中的每一行,把所有資料讀進來,先判斷數據是否合法,不合法的剔除,然後把所有員工工號用stringBuffer串起來,中間用一個特殊字符分割開,大概三四百筆的時候調用一次存儲過程,然後用存儲過程完成字符串的分割和數據更新。

 

CREATE OR REPLACE procedure HTCHR.import_Employee_Performance(--導入員工績效 
employeeNumberStr in varchar2, 
performanceRatingStr in varchar2,
defaultProposedMonthStr in varchar2, 
defaultProposedAmountStr in varchar2,
annualPlanningId in number
) is 

allEmployeeNumber varchar2(4000);--所有員工工號
allPerformanceRating varchar2(4000);--所有員工績效 
allDefaultProposedMonth varchar2(4000);--所有發放月數 
allDefaultProposedAmount varchar2(4000);--所有發放金額 

empNumber varchar2(4000);--員工工號 
rating varchar2(4000);--員工績效 
month varchar2(4000);--發放月數 
amount varchar2(4000);--發放金額 

employeeNumber_index int;--當前員工工號在所有員工工號中的位置 
performanceRating_index int;--當前員工績效在所有員工績效中的位置 
defaultProposedMonth_index int;--當前發放月數在所有發放月數中的位置 
defaultProposedAmount_index int;-- 當前發放金額在所有發放金額中的位置 

begin

allEmployeeNumber := employeeNumberStr;
allPerformanceRating := performanceRatingStr;
allDefaultProposedMonth := defaultProposedMonthStr;
allDefaultProposedAmount := defaultProposedAmountStr;
employeeNumber_index := instr(allEmployeeNumber,'*',2);

while(employeeNumber_index>0) loop

employeeNumber_index := instr(allEmployeeNumber,'*',2);
performanceRating_index := instr(allPerformanceRating,'*',2);
defaultProposedMonth_index := instr(allDefaultProposedMonth,'*',2);
defaultProposedAmount_index := instr(allDefaultProposedAmount,'*',2);

empNumber := substr(allEmployeeNumber,2,employeeNumber_index-2);
rating := substr(allPerformanceRating,2,performanceRating_index-2);
month := substr(allDefaultProposedMonth,2,defaultProposedMonth_index-2);
amount := substr(allDefaultProposedAmount,2,defaultProposedAmount_index-2);

update salaryfinaldetail set performanceRating = rating,
defaultProposedMonth = month,
defaultProposedAmount = amount 
where annualPlanning_id = annualPlanningId and employeenumber = empNumber;

allEmployeeNumber := substr(allEmployeeNumber,employeeNumber_index);
allPerformanceRating := substr(allPerformanceRating,performanceRating_index);
allDefaultProposedMonth := substr(allDefaultProposedMonth,defaultProposedMonth_index);
allDefaultProposedAmount := substr(allDefaultProposedAmount,defaultProposedAmount_index);

end loop;

empNumber := substr(allEmployeeNumber,2);
rating := substr(allPerformanceRating,2);
month := substr(allDefaultProposedMonth,2);
amount := substr(allDefaultProposedAmount,2);

update salaryfinaldetail set performanceRating = rating,
defaultProposedMonth = month,
defaultProposedAmount = amount 
where annualPlanning_id = annualPlanningId and employeenumber = empNumber;

commit;

end;
/

 

分享到:
评论

相关推荐

    绩效管理系统设计方案.doc

    设计方案 7 4.1系统结构设计 7 4.2系统功能设计 9 4.2.1部门设置 9 4.2.2岗位设置 9 4.2.3机构人员设置 9 4.2.4操作权限设置 10 4.2.5绩效考核指标设置 10 4.2.6考核评分 11 4.2.7个人KPI 11 4.2.8员工KPI 11 4.2.9...

    悠索绩效考核系统最新官方版

    5、修改成绩的计算存储过程,不是取的平均分,而是总分(修改存储过程,删除/COUNT(*)) 6、修改成绩入库地方,按新算法入库(修改存储过程,删除/COUNT(*)) 7、修复指标导入导出的时候少字段的问题; 8、修复工作...

    [计算机毕业设计]基于SSM的洗衣店管理系统(源码+部署说明+演示视频+包运行).zip

    在员工管理时采用了考勤管理和绩效评估等制度,提高了员工的工作效率和服务质量。 此外,我们还编写了详细的部署说明文档,包括系统环境搭建、数据库配置、代码导入等方面的内容,方便用户进行二次开发和部署。 ...

    好笔头 v4.0.8官方版.zip

    好笔头用最简单的方式,帮助企业解决移动办公(OA)、客户管理(CRM)、团队沟通、移动签到、工作汇报、成员管理、绩效考核等问题;能帮助员工对信息进行分类整理、做好客户跟进、提升工作效率,最终提升业绩的实用...

    悠索工资查询系统 v1.0.rar

    4.单位的部门信息,员工信息均采用数据库存储,可以在系统后台灵活的进行增加、修改、删除等操作,也可以通过Excel一次性导入部门和员工信息; 5.系统内部集成强大的新闻系统,支持按角色或人员发布信息,让管理员...

    人力资源管理系统数据库课程设计.docx

    以工资核算为核心、以员工的绩效考核为依据,通过建立多种数据模型辅助完成人力资源管理对企业经营决策的支持作用。 本说明书目的在于明确说明系统需求,界定系统实现功能的范围,指导系统设计以及编码。本说明书的...

    平凡考试系统V2018

    *修改 人员、题库等批量导入excel格式时模板实例文件不能修改。 *修改 完善补考试卷的参考人员补录功能。 *修改 完善人员选择框人数统计数值显示问题。 *修改 完善学习任务自动计时器在不同浏览器的兼容性问题。 ...

    基于三层架构开发的ASP.NET校园考勤系统.zip

    包括权限管理,Excel文件的导入导出,批量数据存储数据库,验证码,XML,LayUI,根据数据生成图表,session,cookis等技术 C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息...

    悠索工资查询系统V1.0.rar

    4.单位的部门信息,员工信息均采用数据库存储,可以在系统后台灵活的进行增加、修改、删除等操作,也可以通过Excel一次性导入部门和员工信息; 5.系统内部集成强大的新闻系统,支持按角色或人员发布信息,让管理员...

    asp.net知识库

    SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取...

    G Merge: Mail & Doc Merge with Attachments-crx插件

    绩效审查(表格)-员工持股计划交流:-感谢信-活动和网络研讨会邀请-登记表定价:-免费增值有限最多200次合并-Pro计划适用于单用户,无限制合并*:6美元/月-团队计划适用于10位用户,无限制合并*使用共享模板:40...

    SQL Server 2008商业智能完美解决方案 3/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    SQL Server 2008商业智能完美解决方案 1/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    SQL Server 2008商业智能完美解决方案 2/3

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

    SQL Server 2008 商业智能完美解决方案(3)

    第二部分面向Analysis Services开发人员,详细介绍了如何使用BIDS以及BIDS的所有功能,提供了使用SSAS构建OLAP多维数据集和数据挖掘模型的指南;第三部分面向Integration Services开发人员,详细介绍如何使用SSIS...

Global site tag (gtag.js) - Google Analytics