zoukankan      html  css  js  c++  java
  • Process multirow data with cursor or without cursor[利用游标或者非游标处理多行数据]

     Implement functionality using Cusor
    /*
    decription:
    import data from BomIntraplantRoute_Buckets of ofg_response_staging into
    ds_in_bom_intraplant_route_bucket of OFG_SLV_DEV

    created by: Winstion He on 2008/1/2

    */

    create proc [dbo].[Pr_ToSolver_ds_in_bom_intraplant_route_bucket]
    as
    declare @BomIntraplantRouteId int
    declare @BucketId int
    declare @Yield float
    declare @Tpt int
    declare @Mfg float

    --clear primitive data
    if Exists(select * from OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket)
     delete from OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket

    declare c_BomIntraRoute_Buckets cursor for
     select BomIntraplantRouteId,BucketId,Yield,Tpt,Mfg
     from BomIntraplantRoute_Buckets
    open c_BomIntraRoute_Buckets

    fetch from c_BomIntraRoute_Buckets into @BomIntraplantRouteId,@BucketId,@Yield,@Tpt,@Mfg
    while @@fetch_status=0 begin
     --get bom_header_name,intraplant_route_name through @BomIntraplantRouteId
     --from BomIntraplantRoute
     declare @IntraplantRouteName varchar(128)
     declare @BomId varchar(128)

     select @BomId=A.BomId,@IntraplantRouteName=B.IntraplantRouteName
     from BomIntraplantRoute as A
     join IntraplantRoute as B
      on A.IntraplantRouteId= B.IntraplantRouteId
     where A.BomIntraplantRouteId=@BomIntraplantRouteId

     --get bucketname based bucketid using proc
     declare @bucketName varchar(6)
     exec Pr_ToSolver_PopulateBucketName @BucketId,@bucketName output

     --insert value to table
     insert into OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket
     (
     bom_header_name,
     bucket,
     intraplant_route_name,
     yield,
     tpt,
     mfg
     )
     values
     (
     @BomId,
     @bucketName,
     @IntraplantRouteName,
     @Yield,
     @Tpt,
     @Mfg
     )

    if @@rowcount < 1 goto ErrorHandle
    --next row
    fetch from c_BomIntraRoute_Buckets into @BomIntraplantRouteId,@BucketId,@Yield,@Tpt,@Mfg

    end

    ErrorHandle:
     print 'BUG!'

    close c_BomIntraRoute_Buckets
    deallocate c_BomIntraRoute_Buckets
    return



    implement functionality without using cursor

    use ofg_response_staging

    if object_id('Pr_ToSolver_ds_in_bom_intraplant_route_bucket') is not null
        drop  proc Pr_ToSolver_ds_in_bom_intraplant_route_bucket
    go

    create proc Pr_ToSolver_ds_in_bom_intraplant_route_bucket
    as
    if exists(select * from OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket)
        delete from OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket

    insert into OFG_SLV_DEV3.dbo.ds_in_bom_intraplant_route_bucket
    (
        bom_header_name
        ,bucket
        ,intraplant_route_name
        ,yield
        ,tpt
        ,mfg
     )
    select
        bi.BomId
        ,ltrim(str(b.YearCode))+ case when b.WorkWeekCode <=9 then '0'+ ltrim(str(b.WorkWeekCode))
         when b.WorkWeekCode >9 then ltrim(str(b.workWeekCode))
         end as bucketname

        ,i.IntraplantRouteName 
        ,birb.Yield
        , birb.Tpt
        ,birb.Mfg
      
       

    from  
          BomIntraplantRoute bi, 
          BomIntraplantRoute_Buckets birb,
          IntraplantRoute i,
          Bucket b

    where
        bi.BomIntraplantRouteId=birb.BomIntraplantRouteId
        and
        bi.IntraplantRouteId=i.IntraplantRouteId
        and
        birb.BucketId=b.BucketId
       

     


    select 
     ltrim(str(b.YearCode))+ case when b.WorkWeekCode <=9 then '0'+ ltrim(str(b.WorkWeekCode))
         when b.WorkWeekCode >9 then ltrim(str(b.workWeekCode))
         end as bucketname

    from Bucket b

    go 

  • 相关阅读:
    luogu4182 [USACO18JAN] Lifeguards P (单调队列优化dp)
    bzoj3277 串 (后缀数组+二分答案+ST表)
    [模板]后缀数组
    bzoj4361 isn (dp+树状数组+容斥)
    luogu4187 [USACO18JAN]Stamp Painting (dp)
    [USACO15DEC]高低卡(白金)High Card Low Card (Platinum)
    USACO环绕岛屿Surround the Islands 并查集 枚举暴力
    5.7 ~ 5.12 刷题列表
    5.4 ~ 5.6 刷题记录
    HNOI2012 永无乡 无旋Treap
  • 原文地址:https://www.cnblogs.com/Winston/p/1187410.html
Copyright © 2011-2022 走看看