`
yose
  • 浏览: 52161 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Sybase cursor的使用

阅读更多

Sybase 在很多语法上面和常用的MS Sql 还有 PL Sql 存在很多不同的差异, 经常弄的我头昏脑涨。 
这两天有个需求:几十个 tbName_xx 这种形式是表需要数据更新, 参照 MS Sql 的帮助文档和网上资料自己写了个cursor。结果是非常的郁闷! 
后来几经摸索和别人的指点,弄了一个能正确执行的, 把代码贴出来供大家参考

sql代码 
  1. --第一步
  2. DECLARE cursor_a CURSOR /*声明游标*/  
  3. FOR   
  4. SELECT sDomainCode   
  5.    FROM tbOsDomain   
  6.    WHERE sDomainCode NOT IN ('CN', 'EN', 'US', ...)  
  7. ORDER BY sDomainCode  

  8. --第二步  
  9. OPEN cursor_a  /*打开游标*/ 
  10.  
  11. DECLARE @domainCode VARCHAR(11), @message VARCHAR(80), @dynaSql VARCHAR(1000)   
  12. FETCH cursor_a   
  13. INTO @domainCode  --提取游标数据
  14.   
  15. WHILE @@sqlstatus = 0   
  16.    BEGIN  
  17.       SELECT @message = "----- domainCode is : " + @domainCode   
  18.       PRINT @message
  19.       SET @dynaSql = " UPDATE tbTestData SET testCell='value_" + @domainCode
  20.       EXEC(@dynaSql) --执行动态SQL, Sybase 12 以上的版本支持使用动态SQL
  21.       --to do something.....  
  22.   
  23.       -- Get the next cur.  
  24.       FETCH cursor_a   
  25.       INTO @domainCode   
  26.    END  
  27. CLOSE cursor_a 

  28. --第三步 
  29. DEALLOCATE CURSOR cursor_a  /*删除游标*/  

 

 

分享到:
评论
3 楼 yose 2010-03-01  
是啊,但是我就是对细节处不了解哦,,,就绕弯子了
2 楼 lobbychmd 2010-02-26  
跟 sql server差不多,我记得就1个状态码不同
1 楼 icefishc 2010-02-26  
Sybase和MS sqlserver 用的都是T-SQL。 语法基本一样。

相关推荐

    sybase与microsoft—sql的语法区别

    - Sybase使用`fetch from cursor_name`来获取游标中的数据,而在SQL Server中,应使用`fetch next from cursor_name`。 4. **数据注释**: - Sybase支持`datacomment`语句用于添加数据级别的注释,而SQL Server...

    sybase分页代码使用jdbc分页速度快适合大数据

    使用Java代码实现分页的关键在于维护一个游标(cursor)和一个缓存(cache)。 1. **游标管理**:游标允许我们遍历数据库结果集,一次处理一行数据。在JDBC中,`ResultSet`对象就是一个游标。我们可以通过设置`...

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

    本文旨在探讨如何使用 Python 通过 Sybase ASE ODBC Driver 访问 Sybase 数据库,并分享一些实践经验和技巧。 #### 一、Sybase ASE ODBC Driver 简介 Sybase ASE(Adaptive Server Enterprise)是 Sybase 公司推出...

    sybase T-SQL命令

    Sybase T-SQL(Transact-SQL)是Sybase Adaptive Server Enterprise (ASE)数据库管理系统中使用的编程语言,它是SQL标准的扩展,增加了许多特定于Sybase的功能。在深入探讨Sybase T-SQL命令之前,先要理解其基本概念...

    sybase游标使用

    在Sybase数据库管理系统中,游标(Cursor)是一种重要的数据处理工具,它允许用户按需逐行处理查询结果,而不是一次性加载所有数据。游标在处理大数据集或进行复杂的数据操作时尤其有用,例如在循环中对每条记录进行...

    sybase stored procedure

    Sybase 存储过程还可以通过游标(Cursor)处理结果集,进行循环处理或者逐行操作。同时,存储过程支持 OUT 或 INOUT 参数,允许返回值给调用者。 总的来说,Sybase 存储过程是数据库开发中的强大工具,提供了代码...

    oracle移植到sybase的技术参考手册

    7. **CURSOR使用** - Oracle中的CURSOR定义与Sybase存在差异。 - 示例:调整CURSOR定义文本以匹配Sybase的格式。 8. **CURSOR处理选项** - Oracle中CURSOR的处理选项如%ISOPEN, %NOTFOUND, %FOUND, %ROWCOUNT...

    Sybase数据库指南

    3. **游标处理**:执行查询后,可以使用游标(Cursor)来遍历查询结果,对每一行数据进行处理。 4. **事务管理**: UltraLite支持事务处理,开发者可以通过`Transaction.begin()`、`Transaction.commit()`和`...

    在Mac上使用FreeTDS、UnixODBC、pyodbc连接Sybase

    在Mac操作系统上使用Python连接到Sybase数据库,通常需要通过FreeTDS、UnixODBC和pyodbc这三个组件来实现。以下是详细的配置和使用步骤: **1. UnixODBC安装:** UnixODBC是Unix和Linux系统上的一个开放源代码ODBC...

    sybase函数大全

    本资源“sybase函数大全”是一个详尽的参考手册,为Sybase数据库开发人员提供全面的函数使用指南。以下是一些重要的Sybase函数类别及其应用: 1. **算术函数**:这类函数用于执行基本的数学运算,如`ABS()`返回...

    sybase数据库的基本语法

    在Sybase数据库中,可以使用DECLARE CURSOR语句声明一个游标,然后使用OPEN、FETCH和CLOSE语句来操作这个游标,从而实现对结果集的逐行处理。 数据库设备是Sybase中的一个概念,它是一个逻辑存储单元,用于将数据...

    sqlanydb python中远程连接sybase的

    在Python编程环境中,连接到远程Sybase数据库时,可以使用`sqlanydb`库,它是一个专门为连接Sybase Adaptive Server Enterprise (ASE)设计的Python驱动程序。`sqlanydb`库提供了一个简单易用的接口,使Python程序员...

    SYBASE内存配置

    4. **Procedure Cache**:存储预编译对象的缓存,如存储过程(stored procedures)、触发器(triggers)、规则(rules)等,同时也处理查询(query)和游标(cursor)等操作。 5. **Data Cache**:用于缓存从数据库读取的数据...

    数据库迁移资料,oracle移植到sybase的技术参考手册

    - Oracle使用`||`作为字符串连接符,而Sybase使用`+`符号。 3. **%TYPE的处理** - 在Oracle中,%TYPE用于声明与另一个列相同类型的变量。在迁移到Sybase时,需要手动查找该列的数据类型,并根据其类型定义新的变量...

    sybase ctlib 编程参考

    ### Sybase ctlib 编程参考 #### 客户端/服务器架构(Client/Server architecture) 在客户端/服务器架构中,应用程序被分为两部分:客户端应用和服务器端应用。客户端负责处理用户界面和业务逻辑,而服务器端则主要...

    Sybase to GP

    此外,可以使用`WITH`语句创建临时表,如`WITH t0 AS (query)`,以及通过`DECLARE v_cursor refcursor`声明和使用游标。 字符串拼接方面,Sybase中的`+`运算符在Greenplum中被`||`取代。`SELECT INTO`语句在...

    SYBASE数据库迁移到AS_400_db2的FAQ.docx

    DECLARE c1 CURSOR FOR SELECT cusnbr, cuscrd FROM ordapplib.customer; OPEN c1; FETCH c1 INTO proc_cusnbr, proc_cuscrd; WHILE at_end = 0 DO SET proc_cuscrd = proc_cuscrd + (proc_cuscrd * i_...

    python操作mysql数据库.pdf

    # 使用 cursor() 方法获取操作游标 cursor = db.cursor() # 使用 execute 方法执行 SQL 语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据库 data = cursor.fetchone() print ...

    freetds-patched.tar.gz

    3. **多版本兼容**:FreeTDS不仅支持旧版本的TDS协议,还支持新版本,这意味着它可以与不同版本的SQL Server和Sybase数据库配合使用。 4. **接口选择**:FreeTDS提供C语言的API,同时也支持通过各种编程语言的绑定...

Global site tag (gtag.js) - Google Analytics