【南大通用GBase8s 常用SQL语句(140)

    1. FREE 语句

使用 FREE 语句来释放那些分配给准备好的语句或分配给游标的资源。

语法

 

元素

描述

限制

语法

cursor_id

游标的名称

必须已经声明

标识符

cursor_id_var

持有 cursor_id 值的主变量

必须为字符数据类型

特定于语言

statement_id

准备好的 SQL 语句的标识符

必须在先前的 PREPARE 语句中定义

PREPARE 语句

statement_id_var

存储准备好的对象名称的主变量

必须声明为字符数据类型。

PREPARE 语句

用法

随同 GBase 8s ESQL/C 或随同 SPL使用此语句,这是对 SQL 的 ANSI/ISO 标准的扩展。

FREE 释放为准备好的语句或为游标分配的(ESQL/C 的)数据库服务器和应用开发工具。

如果您为准备好的语句声明游标,则 FREE statement_id(或 statement_id_var)仅释放应用开发工具中的资源;游标仍可使用。仅当释放游标时,才释放数据库服务器中的资源。

如果您准备了语句(但没有为它声明游标),则 FREE statement_id(或 FREE statement_id_var)释放在应用开发工具和数据库服务器中的资源。

在您释放语句之后,不可执行它或为它声明游标,直到您再次准备它。

下列 GBase 8s ESQL/C 示例展示那些用于释放隐式准备好的语句的语句序列:

EXEC SQL prepare sel_stmt from 'select * from orders';

...

EXEC SQL free sel_stmt;

下列 GBase 8s ESQL/C 示例展示那些用于释放显式准备好的语句的资源的语句序列。此示例中的第一个 FREE 语句释放游标。此示例中的第二个 FREE 语句释放准备好的语句。

sprintf(demoselect, "%s %s",

   "select * from customer ",

   "where customer_num between 100 and 200");

EXEC SQL prepare sel_stmt from :demoselect;

EXEC SQL declare sel_curs cursor for sel_stmt;

EXEC SQL open sel_curs;

...

EXEC SQL close sel_curs;

EXEC SQL free sel_curs;

EXEC SQL free sel_stmt;

如果您为准备好的语句声明游标,则释放游标仅释放数据库服务器中的资源。要为该语句释放应用开发工具中的资源,请使用 FREE statement_id(或 FREE statement_id_var)。如果未为准备好的语句声明游标,则释放它会释放应用开发工具和数据库服务器中的资源。要查看释放游标的 FREE 语句的 ESQL/C 示例,请参阅前面的示例。

释放游标之后,不可打开它直到再次声明为止。游标应在其被释放之前明确地关闭它。

在 SPL 例程执行完毕时,数据库服务器自动地释放例程中通过 PREPARE 或 DECLARE 语句已经分配给游标或准备好的语句的任何资源,如果这些资源尚未由 FREE 语句释放的话。

SPL 例程中的 FREE 语句不可引用 SPL 的 FOREACH 语句可声明的直接游标的 cursor_id

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值