zoukankan      html  css  js  c++  java
  • sql游标使用

    一、游标的作用:
    Select时,返回的是一个结果集,若需要为结果集返回的过程中,读取到一行数据。需要对此行数据进行处理,比如按读取到的数据作为查询条件返回一个查询结果集等等,应用都需要用到游标。
    游标可允许 用户 查询下一行、上一行、第一行或最后一行,并对这些读取到的行进行处理。
    二、游标举例

    CREATE FUNCTION GetMRPlnFullBom  --创建一函数,根据单据电键查询单据中每行,并对每行数据进行处理。   
    (  
    	@DocEntry int  
    )  
    RETURNS @TAB TABLE   -- 将最终查询的结果集定义临时表,返回。   
    (  
        DocEntry int,  
        LineNum int,  
        LineNumLevel nvarchar(100),  
        ItmID nvarchar(20),   
        ItmName nvarchar(100),  
        LineType char(1),  
        Qty numeric(19,9),  
        BomLevel int,  
        ParentEntry int,  
        ParentItmID nvarchar(20),  
        TopEntry int,  
        TopItmID nvarchar(20) ,  
        BaseEntry int ,  
        BaseLineNum int ,  
        BaseType int  
    )  
    AS  
    BEGIN  
         Declare  @ItmID varchar(50) , @Qty int ,@LineNum int ,@ObjType int   --声明局部变量   
         --声明一游标,声明游标时 XXX前不能加@,比如下面的MRPlnA_ItmID ,格式是DECLARE XXX CURSOR FOR        
         DECLARE MRPlnA_ItmID CURSOR FOR   
         SELECT ItmID , Qty ,LineNum , ObjType FROM MRPlnA  Where DocEntry = @DocEntry --语句要在DECLARE XXX CURSOR FOR与OPEN XXX之间。   
         Open MRPlnA_ItmID      --打开游标   
         FETCH NEXT FROM MRPlnA_ItmID INTO @ItmID , @Qty ,@LineNum , @ObjType --FETCH NEXT FROM XXX INTO ... 更新游标指定记录即换行,并将Select出来的数据,存入临时变量中。  FETCH格式上除了NEXT还有PRIOR、FRIST、LAST。分别是上一行、第一行及最后一行。   
         WHILE @@FETCH_STATUS = 0 --@@FETCH_STATUS全局变量,用于查询FETCH最后一次状态,控制循环。当读取完时是0,读取失败是-1,记录被删除是-2。   
         BEGIN  
             Insert Into @TAB  
             Select DocEntry,LineNum,LineNumLevel,ItmID,ItmName,LineType,Qty*@Qty,BomLevel,ParentEntry,   
                    ParentItmID,TopEntry,TopItmID , @DocEntry SourceEntry ,@LineNum BaseLineNum ,@ObjType BaseType   
             From GetBomFullItems(@ItmID, 'V 1.0', GetDate()) TD --GetBomFULLItmes是另一查询函数。   
             FETCH NEXT FROM MRPlnA_ItmID INTO @ItmID  , @Qty ,@LineNum , @ObjType -- Select移到下一行。   
         END  
         CLOSE MRPlnA_ItmID       --关闭游标   
         DEALLOCATE MRPlnA_ItmID  --释放游标   
         RETURN
    END
    

    参考:https://www.cnblogs.com/moss_tan_jun/archive/2011/11/26/2263988.html

  • 相关阅读:
    001-Java®语言规范、Java平台标准版文档、JVM概述
    004-RIP、OSPF【路由选择协议】
    003-ARP地址解析协议
    0405-服务注册与发现-客户端负载均衡-Ribbon 同Eureka使用,Ribbon脱离Eureka使用
    0404-服务注册与发现-客户端负载均衡-两种自定义方式-Ribbon通过代码自定义配置、使用配置文件自定义Ribbon Client
    网页嵌入swf代码
    解决html5 video不能播放 能播放声音不能播放视频
    代码高亮插件SyntaxHighlighter
    透明度
    web图片轮播实现
  • 原文地址:https://www.cnblogs.com/xsj1989/p/5362325.html
Copyright © 2011-2022 走看看