0 0

sybase(ase)存储过程,请问为什么它只执行一个cursor?见代码:5

sybase,请问为什么它只执行一个cursor?在第二个游标处,只会打印一条记录,正常的应该是遍历所有的记录的。
见代码:


create proc test(@sTime datetime,@eTime datetime)
as 
begin
    declare 
        @areaID varchar(50),
        @dnsAnalyseDelay numeric(10,2),
        @dbConnTimeLen numeric(10,2),
        @product numeric(10,2),
        @kpi1 numeric(10,2),
        @kpi2 numeric(10,2),
        @webDownRate numeric(10,2),
        @kpi3 numeric(10,2),
        @kqi3 numeric(10,2),
        
        @areaIDAttach varchar(40),
        @attachSucRate numeric(10,2),
        @dbTimeLen numeric(10,2)
        
        select @kpi1=0
	
	--解析tableA
    declare cur_tableA 
    cursor for
    select 
        vcAreaID areaID,
        round(avg(dbDnsDelay)*1.00,2) dnsAnalyseDelay,
        round(avg(dbTimeLen)*1.00,2) dbConnTimeLen,
        round(avg(ftWebDownRate)*1.00,2) webDownRate
    from 
    tableA
    where 1=1
	and dtEndTime>=@sTime
	and	dtEndTime<@eTime
    and intSystemID=1
    group by vcAreaID 
    
    open cur_tableA
        while(@@sqlstatus=0)
            begin
                fetch cur_tableA into @areaID,@dnsAnalyseDelay,@dbConnTimeLen,@webDownRate
                select @product = @dnsAnalyseDelay*@dbConnTimeLen    
                print "dnsAnalyseDelay= %1!  dbConnTimeLen=%2! product= %3! areaID= %4! webDownRate=%5!",@dnsAnalyseDelay,@dbConnTimeLen,@product,@areaID,@webDownRate
                --分类统计,取到kpi2
                if @product>=3000 select @kpi2 = 0
                else if 10<@product and @product<3000 select @kpi2 = round((3000-@product)*1.00/(3000-10)*100,2)
                else if @product<=10 select @kpi2=100
                print "kpi2= %1!",@kpi2
                
                --分类统计,取到kpi3
                if @webDownRate>=2000 select @kpi3 = 100
                else if 128<@webDownRate and @webDownRate<3000 select @kpi3 = round((2000-@webDownRate)*1.00/(2000-128)*100,2)
                else if @webDownRate<=128 select @kpi3=0
                print "kpi3= %1!",@kpi3
                
                --分类统计,取到kqi3
                select @kqi3 = round(0.2*@kpi1+0.5*@kpi2+0.3*@kpi3,2)
                print "kqi3= %1!",@kqi3
            end
    close cur_tableA
    DEALLOCATE CURSOR cur_tableA
    
    --解析tableB  这里不会执行,或者只会打印一条记录,正常的应该是遍历所有的记录的。
    declare cur_tableB 
    cursor for
    select 
        vcAreaID areaIDAttach,
        round(sum(intSuc)*1.00/count(1),4) attachSucRate,
        round(avg(dbTimeLen)*1.00,2) dbTimeLen
    from tableB 
    where 1=1
	and dtEndTime>=@sTime
	and	dtEndTime<@eTime
    and intSystemID=3
    group by vcAreaID
        
    open cur_tableB
        while(@@sqlstatus=0)
            begin
                fetch cur_tableB into @areaIDAttach,@attachSucRate,@dbTimeLen
                print "areaIDAttach=%1!,attachSucRate=%2!,dbTimeLen=%3!",@areaIDAttach,@attachSucRate,@dbTimeLen 
            end
    close cur_tableB
    
end 
  


2012年9月21日 17:01
目前还没有答案

相关推荐

    sybase如何在Sybase ASE上定时调度一个存储过程

    Job Scheduler 是 Sybase ASE 中的一种机制,用于定时执行存储过程或其他任务。它可以帮助数据库管理员简化工作流程,提高工作效率。 其次,在安装和配置 Job Scheduler 之前,需要了解 Sybase ASE 的版本问题。...

    Sybase ASE ODBC Driver 下载

    Sybase ASE ODBC驱动程序是基于Windows平台的,它为各种编程语言(如C++、VB、Python等)提供了一个统一的接口,使得开发人员可以轻松地访问和操作Sybase ASE数据库。该驱动程序支持SQL语句执行、事务处理、结果集...

    Sybase ASE12.5附带的Sybase Central完整免安装版

    在ASE12.5的时代,Sybase Central提供了一个用户友好的界面,使得DBA(数据库管理员)和开发者可以更轻松地执行日常管理任务,如创建和修改数据库对象,监控服务器性能,备份和恢复操作,以及处理用户权限和安全设置...

    Sybase ASE存储过程大全

    很全面的sybase资料集合,包括了创建修改删除的所有东西,也包括一些的语法和运算,对初学者很方便

    Sybase ASE 12.5.4 ODBC驱动包

    Sybase ASE 12.5.4 ODBC驱动包, 4.0.x 版本 将zip解到d:\\sybasease目录下边,然后注册下边的内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers] ...

    Sybase ASE v12.5 系统管理指南

    《Sybase ASE v12.5 系统管理指南》是一部深入探讨Sybase Adaptive Server Enterprise (ASE) v12.5版本系统管理的权威参考文献。该指南旨在帮助IT专业人员理解和掌握ASE数据库系统的运维与优化,从而确保系统的高效...

    Sybase ASE参考手册(中文版,全4卷)

    Sybase Adaptive Server Enterprise(ASE),通常简称为Sybase ASE,是Sybase公司(现为SAP的一部分)开发的一款高性能的企业级关系型数据库管理系统。这本中文版的Sybase ASE参考手册包含了全面的技术信息,旨在...

    SybaseASE12.5.2安装参考手册.doc

    Sybase ASE 12.5.2 安装参考手册 本手册旨在以图文方式,step by step 地描述在 Linux 上安装 Sybase ASE 数据库。以下是从该手册中提取的重要知识点: 知识点 1: Linux 安装 在安装 Sybase ASE 之前,需要先安装...

    sybase ase参考手册:配置参数.pdf

    Sybase ASE 是一个关系数据库管理系统,提供了许多配置参数以满足不同应用场景的需求。下面是 Sybase ASE 配置参数手册中的知识点总结: 1. abstract plan cache:abstract plan cache 是一个配置参数,用于控制...

    sybase ase for linux 12.5安装

    Sybase ASE for Linux 12.5 安装指南 本文档旨在指导用户如何在 RedHat AS 5 上安装 Sybase ASE for Linux 12.5。 installation process covers the creation of a Sybase directory, setting up the user and ...

    Centos 安装sybase ASE-15 详细操作步骤

    在本教程中,我们将深入探讨如何在CentOS操作系统上安装Sybase Adaptive Server Enterprise(ASE)15,这是一个高性能的企业级数据库管理系统。以下是安装过程的详细步骤,以及可能遇到的问题和解决方案,以及所需的...

    Sybase ASE for Linux安装过程及安全配置讲解

    在上述几种Linux平台上的数据库产品中,Sybase ASE的性能很好,紧凑的程序分发包里包含了全部文档、数据库备份和监视等工具,同时它对系统的要求不高(系统配置为32MB内存,包含文档的全部安装需要200MB硬盘,否则...

    python 通过Sybase ASE ODBC Driver访问sybase数….docx

    ### Python 通过 Sybase ASE ODBC Driver 访问 Sybase 数据库 在当前的大数据时代背景下,数据库的应用无处不在,而 Python 作为一种强大的编程语言,因其简洁、易读及功能强大等特点,被广泛应用于数据处理与分析...

    sybase ase 15 操作指南

    Sybase Adaptive Server Enterprise (ASE) 15 是一款高性能的企业级数据库管理系统,它提供了强大的数据处理能力和高度可靠的安全机制。本指南主要针对 Sybase ASE 15.0.3 版本在 Linux 平台上的安装与配置进行详细...

    Sybase-ASE-15.7安装指南高清版

    升级是数据库管理中的一个重要部分,指南详细介绍了如何从旧版本升级到15.7版本,包括准备升级、执行预升级任务、系统表和存储过程的变更、以及升级后恢复功能等步骤。文档还提到了在不同操作系统架构(例如从32位...

    SybaseASE、IQ文档

    **ASE 15.0.3** 是一个重要的版本更新,主要包含了性能优化、安全性增强和新特性的引入。在Linux环境下安装Sybase ASE 15.0.3,你需要了解以下关键步骤: 1. **系统需求**:确认Linux服务器满足硬件和软件的最低...

    如何单独在备份机上启动Sybase ASE12.5

    Sybase Adaptive Server Enterprise (ASE) 是一款高性能的关系型数据库管理系统。版本12.5虽然较老,但在某些特定环境下仍被广泛使用。在本篇文章中,我们将详细介绍如何在备份服务器上单独启动Sybase ASE 12.5。 #...

    Sybase ASE快速参考手册

    12. **APL表和DOL表**:APL表存储过程的源代码,DOL表记录了服务器的活动和状态信息。APL表是动态的,而DOL表是静态的。 13. **锁**:Sybase ASE中的锁用于控制并发访问,有表锁、页锁、行锁等多种类型,防止数据...

    sybase ase 版本功能对比

    该版本可以在多处理器机器上安装和运行,但 ASE 只会利用其中一个处理器,并且仅限于使用 2GB 内存和 5GB 磁盘空间。XE 仅在 Linux x86、Linux x86-64 和 Linux OpenPower 平台上可用。 #### 2. Developer Edition ...

Global site tag (gtag.js) - Google Analytics