求高手指点 如何在存储过程中遍历一条条数据,保存到相应表中
使用接口获取数据返回一个table,
table中保存的是公司人员在职与离职信息,(员工是否离职取决于该条数据中的字段"离职时间"是否为不为空)
如何该条数据字段"离职时间"不为空,就将数据保存到离职表中,
如果该条数据字段"离职时间"为空,就将该条数据保存到在职表中,
如何在存储过程一条一条遍历table中的数据,将数据保存到相应的表中
希望高手能给个小例子,或者是直接贴在留言栏 谢谢了
[解决办法]
我有个ORACLE的例子,你要不要
[解决办法]
你将接口得来的数据放到临时表中,然后获取临时表中
离职时间 不为空 的数据保存到离职表中
select 字段 from 临时表 into 离职表 where 离职时间<>''
离职时间 为空 的该条数据保存到在职表中,
select 字段 from 临时表 into 在职表 where 离职时间=''
这个如果是数据库的接口可以这样做,如何是web service 直接在程序里判断
[解决办法]
- SQL code
declare FUserID_cursor cursor for select t.FUserID from #TempTable t --where t.FQuitPostDate <>''//分开处理时用 declare @FUserID_info NVARCHAR (50) open FUserID_cursor fetch next from FUserID_cursor into @FUserID_info while(@@FETCH_STATUS=0) begin declare @FQuitPostDate as NVARCHAR (50) select @FQuitPostDate = FQuitPostDate from #TempTable where FUserID = @FUserID_info if @FQuitPostDate <>'' begin INSERT INTO FIsSAPData ( FUserID, FUserName, FEmail, FPosition, FQuitPostDate, ) SELECT FUserID, FUserName, FEmail, FPosition, FQuitPostDate, FROM #TempTable where FUserID = @FUserID_info fetch next from FUserID_cursor into @FUserID_info end else begin INSERT INTO FIsNotSAPData ( FUserID, FUserName, FEmail, FPosition, FQuitPostDate, ) SELECT FUserID, FUserName, FEmail, FPosition, FQuitPostDate, FROM #TempTable where FUserID = @FUserID_info fetch next from FUserID_cursor into @FUserID_info end end
[解决办法]
[解决办法]
如果是我,我不会用存储过程做,直接用C#做个函数来处理这个table,再用C#的函数来insert,存储过程无论是开发,维护,都特别的麻烦,没有自动对齐,你看见前半个大括号,找后半个也许就要好几分钟,没有debug,排错的时候只能用输出.
还有各种的不爽.
反正我是能不用procedure就不用.
[解决办法]
设定游标 离职 查询在table中 离职的人员id
循环游标 insert到离职表中
关闭游标
设定游标 在职 查询在table中 在职的人员id
循环游标 insert到在职表中
关闭游标