• GBase 8s CLOSE 语句


    当您不再需要引用 Select 或 Function 游标检索的行时,请使用 CLOSE 子句关闭游标。

    在 ESQL/C 中,该语句还可以刷新并关闭 Insert 游标。可在 GBase 8s ESQL/C 或 SPL 中使用此语句。

    在这里插入图片描述

    用法

    关闭游标使得游标对于除 OPEN 或 FREE (或 OPEN FOR)之外的任何语句无用,并释放数据库服务器已经分配到游标的资源。

    在不兼容ANSI 的数据库中,您可以关闭尚未打开的游标或已经关闭的游标。在这些情况下没有采取任何操作。

    在兼容 ANSI 的数据库中,如果您关闭尚未打开的游标,那么数据库服务器返回错误。

    示例

    以下示例关闭了游标 democursor 。

    EXEC SQL close democursor;

    以下是来自 demo1.ec 的 ESQL/C Source 代码示例:

    #include

    EXEC SQL define FNAME_LEN 15;

    EXEC SQL define LNAME_LEN 15;

    main()

    {

    EXEC SQL BEGIN DECLARE SECTION;

    char fname[ FNAME_LEN + 1 ];

    char lname[ LNAME_LEN + 1 ];

    EXEC SQL END DECLARE SECTION;

    printf( “DEMO1 Sample ESQL Program running.\n\n”);

    EXEC SQL WHENEVER ERROR STOP;

    EXEC SQL connect to ‘stores7’;

    EXEC SQL declare democursor cursor for

    select fname, lname

    into :fname, :lname

    from customer

    where lname < “C”;

    EXEC SQL open democursor;

    for (;😉

    {

    EXEC SQL fetch democursor;

    if (strncmp(SQLSTATE, “00”, 2) != 0)

    break;

    printf(“%s %s\n”,fname, lname);

    }

    if (strncmp(SQLSTATE, “02”, 2) != 0)

    printf(“SQLSTATE after fetch is %s\n”, SQLSTATE);

    EXEC SQL close democursor;

    EXEC SQL free democursor;

    EXEC SQL create routine from ‘del_ord.sql’;

    EXEC SQL disconnect current;

    printf(“\nDEMO1 Sample Program over.\n\n”);

    exit(0);

    }

    关闭 Select 或 Function 游标

    当游标与 SQL 的 SELECT 、EXECUTE FUNCTION 或 EXECUTE PROCEDURE 语句相关时,关闭游标将终止此相关联的 SQL 语句。

    数据库服务器释放它可能已经分配到活动行集的所有资源。例如,它用来保存有序集的临时表。数据库服务器还释放它在在通过游标选择的行上可能持有的任何锁定。然而,如果事务包含 CLOSE 语句,则在您执行 COMMIT WORK 或 ROLLBACK WORK 语句之前数据库服务器不释放锁定。

    关闭 Select 游标或 Function 游标之后,您无法执行游标的 FETCH 语句,直到您重新打开它。

    SPL 例程中,内置的 SQLCODE 函数可以显示 Select 游标或 Function 游标的 CLOSE 语句的结果。该函数返回的值相当于 sqlca 结构的 SQLCODE 字段。然而,如果您在调用 SPL 例程的上下文之外调用内置的 SQLCODE 函数,则 GBase 8s 发出错误。

  • 相关阅读:
    Linux输入设备应用编程(键盘,按键,触摸屏,鼠标)
    Redis的三种模式——主从复制、哨兵、集群
    云原生技术 --- k8s节点组件之kube-proxy的学习与理解
    LeetCode SQL专项练习(4)组合查询 & 指定选取
    JVM系列之GC
    【计算机网络笔记】什么是网络协议?
    微信小程序地图polyline坐标太多异常显示BUG
    前端面试第一周快速复盘,不标准的面试经验分享 (一)
    【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库
    支持Lrc2024 Boris FX Optics最新 for mac
  • 原文地址:https://blog.csdn.net/qq_39280087/article/details/126478465