返回首页

gbase数据、南大通用产品文档:GBase8s

更新日期:2024年09月11日

DMY2-
08-01-11
MDY20
010811
MDY4
01/08/2011
Y4MD*
2011/01/08

格式 Y4MD*(因为星号不是有效分隔符)和 MDY4(未定义任何分隔符)都会显示缺省
符号(斜杠)作为分隔符。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 151 -

要点: 如果使用 Y2 格式,那么 DBCENTURY 环境变量的设置还会影响在数据输入时
对文字 DATE 值求值的方式。
另外,GBase 8s ESQL/C 调用的某些例程可使用 DBTIME 变量(而不是 DBDATE)
来将 DATETIME 格式设置为国际规范。有关更多信息,请参阅 DBTIME 环境变量和
GBase 8s ESQL/C 程序员手册 中对 DBTIME 环境变量的论述。
DBDATE 变量的设置优先于 GL_DATE 环境变量的设置,并且优先于
CLIENT_LOCALE 指定的任何缺省 DATE 格式。有关 GL_DATE 和
CLIENT_LOCALE 的信息,请参阅《GBase 8s GLS 用户指南》。
最终用户格式影响下列上下文:
l
在显示 DATE 值时,GBase 8s 产品使用 DBDATE 环境变量来确定输出的格式。
l
在 DATE 值的数据输入期间,GBase 8s 产品使用 DBDATE 环境变量来解释输入。
例如,如果在 INSERT 语句中指定文字 DATE 值,那么数据库服务器期望此文字值
与 DBDATE 指定的格式兼容。同样,数据库服务器将您指定为 DATE( ) 函数的自变量
的日期解释为 DBDATE 格式。
数据库对象中的 DATE 表达式
当数据库对象中的表达式
(包括检查约束、
分段存储表达式、
SPL 例程、
触发器或 UDR)
包含字面日期值时,数据库服务器使用在创建(或上次修改)数据库对象时 DBDATE(或其
他相关环境变量)所具有的设置对表达式求值。如果 DBDATE 已复位为新值,那么对文字
DATE 求值时会忽略该新值。
例如:假如 DBDATE 设置为 MDY2/,用户创建了一个表且 orderdate 列具有以下检查
约束:
orderdate < '06/25/98'
则先前表达式的日期根据定义约束时 DBDATE 的值来进行格式编排。检查约束表达
式解释为 orderdate < '06/25/98',不管对 orderdate 列执行插入或更新操作期间
DBDATE 的值如何。假设当用户将值 '30/01/98' 插入 orderdate 列中时,DBDATE
复位为 DMY2/。插入的日期值使用日期格式 DMY2/,而检查约束表达式使用日期格式
MDY2/。
有关较早版本的 GBase 8s 中始终根据运行时环境求值的旧对象的讨论,请参阅数据
库对象中的缩写年份和表达式。该节描述如何重新定义对象,以便根据定义对象(或上次
修改对象)时生效的环境变量设置解释日期。
要点: GBase 8s 的 DBDATE 的行为与先前版本不兼容。

tcp_keepalives_count
参数说明:在支持TCP_KEEPCNT 套接字选项的操作系统上,设置GBase 8c 服务端在
断开与客户端连接之前可以等待的保持活跃信号个数。
该参数属于USERSET 类型参数,请参考表15-15-1 中对应设置方法进行设置。
须知:

如果操作系统不支持TCP_KEEPCNT 选项,这个参数的值必须为0。

在通过Unix 域套接字进行连接的操作系统上,这个参数将被忽略。

将该值设置为0 时,将使用系统的值。

该参数在不同的会话之间不共享,也就是说不同的会话连接可能有不同的值。

查看该参数时查出来的是当前会话连接内的参数值,而不是guc 副本的值。
取值范围:0-100,其中0 表示GBase 8c 未收到客户端反馈的保持活跃信号则立即断开
连接。
默认值:0

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1172

功能描述
CURSOR 命令定义一个游标,用于在一个大的查询里面检索少数几行数据。
为了处理SQL 语句,存储过程进程分配一段内存区域来保存上下文联系。游标是指向
上下文区域的句柄或指针。借助游标,存储过程可以控制上下文区域的变化。
注意事项

游标命令只能在事务块里使用。

通常游标和SELECT 一样返回文本格式。因为数据在系统内部是用二进制格式存储的,
系统必须对数据做一定转换以生成文本格式。
一旦数据是以文本形式返回,
客户端应用
需要把它们转换成二进制进行操作。使用FETCH 语句,游标可以返回文本或二进制格
式。

应该小心使用二进制游标。
文本格式一般都比对应的二进制格式占用的存储空间大。

进制游标返回内部二进制形态的数据,可能更易于操作。如果想以文本方式显示数据,
则以文本方式检索会为用户节约很多客户端的工作。
比如,
如果查询从某个整数列返回

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1094
1,在缺省的游标里将获得一个字符串1,但在二进制游标里将得到一个4 字节的包含
该数值内部形式的数值(大端顺序)

语法格式
CURSOR cursor_name
[ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
FOR query ;
参数说明

cursor_name
将要创建的游标名。
取值范围:遵循数据库对象命名规范。

BINARY
指明游标以二进制而不是文本格式返回数据。

[ NO ] SCROLL
SCROLL:若指定,那么游标可以反向滚动。
NO SCROLL:声明该游标不能用于以倒序的方式检索数据行。
未声明:
根据执行计划的不同,
自动判断该游标是否可以用于以倒序的方式检索数据行。

WITH HOLD | WITHOUT HOLD
声明当创建游标的事务结束后,游标是否能继续使用。
WITH HOLD:声明该游标在创建它的事务结束后仍可继续使用。
WITHOUT HOLD:声明该游标在创建它的事务之外不能再继续使用,此游标将在事务
结束时被自动关闭。
如果不指定WITH HOLD 或WITHOUT HOLD,默认行为是WITHOUT HOLD。
跨节点事务不支持WITH HOLD
(例如在多DBnode 部署GBase 8c 中所创建的含有DDL
的事务属于跨节点事务)


query

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1095
使用SELECT 或VALUES 子句指定游标返回的行。
取值范围:SELECT 或VALUES 子句。
示例
请参考FETCH 的示例。
相关命令
FETCH