前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL命令 OPEN

SQL命令 OPEN

作者头像
用户7741497
发布2022-05-06 15:22:14
4880
发布2022-05-06 15:22:14
举报
文章被收录于专栏:hml_知识记录

SQL命令 OPEN

打开游标。

大纲

代码语言:javascript
复制
OPEN cursor-name

参数

  • cursor-name - 游标的名称,已经声明过了。 游标名称是在DECLARE语句中指定的。 游标名称区分大小写。

描述

OPEN语句根据游标的DECLARE语句中指定的参数打开游标。 一旦打开,就可以获取游标。 打开的游标必须关闭。

  • 试图打开未声明的游标会出现SQLCODE -52错误。
  • 试图打开已经打开的游标会导致SQLCODE -101错误。
  • 试图获取或关闭未打开的游标将导致SQLCODE -102错误。

成功的OPEN设置SQLCODE = 0,即使结果集是空的。

作为SQL语句,这只在嵌入式SQL中支持。 通过ODBC使用ODBC API支持等价的操作。

示例

下面的嵌入式SQL示例显示了一个正在打开和关闭的游标(名为EmpCursor):

代码语言:javascript
复制
ClassMethod Open()
{
    s name = "LastName,FirstName",state = "##"
    &sql(
        DECLARE EmpCursorO CURSOR FOR 
            SELECT Name, Home_State
            INTO :name, :state FROM Sample.Person
            WHERE Home_State %STARTSWITH 'A'
    )
    w !,"BEFORE: Name=",name," State=",state 
    &sql(OPEN EmpCursorO)
    if SQLCODE '= 0 { 
        w "打开错误: ",SQLCODE
        q 
    }
    n %ROWCOUNT,%ROWID
    for { 
        &sql(FETCH EmpCursorO)
        q:SQLCODE  
        w !,"DURING: Name=",name," State=",state 
    }
    w !,"FETCH status SQLCODE=",SQLCODE
    w !,"获取的行数 = ",%ROWCOUNT
    &sql(CLOSE EmpCursorO)
    w !,"AFTER: Name=",name," State=",state
}
代码语言:javascript
复制
DHC-APP>d ##class(PHA.TEST.SQLCommand).Open()
 
BEFORE: Name=LastName,FirstName State=##
DURING: Name=Quixote,Terry J. State=AR
DURING: Name=Xerxes,Angelo P. State=AL
DURING: Name=Gore,Alfred M. State=AZ
DURING: Name=Ahmed,Elmo X. State=AZ
DURING: Name=Press,Juanita Q. State=AZ
DURING: Name=DeLillo,Olga A. State=AR
DURING: Name=Klein,Richard K. State=AL
DURING: Name=Lopez,Ralph W. State=AZ
DURING: Name=Yu,Edward Y. State=AR
DURING: Name=Underman,Maria P. State=AL
DURING: Name=Vanzetti,Alexandra O. State=AL
DURING: Name=Koivu,Joshua J. State=AR
FETCH status SQLCODE=100
获取的行数 = 12
AFTER: Name=Koivu,Joshua J. State=OH

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SQL命令 OPEN
  • 大纲
    • 参数
    • 描述
    • 示例
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档