返回首页

gbase数据、南大通用产品文档:GBase8sdtcvasc() 函数

更新日期:2024年09月11日

dtcvasc() 函数将符合 ANSI SQL 标准的 DATETIME 值的字符串转换为
datetime 值。
要获取关于 ANSI SQL DATETIME 标准的信息,请参阅 DATETIME 和
INTERVAL 值的 ANSI SQL 标准。
语法
mint dtcvasc(inbuf, dtvalue)
char *inbuf;
dtime_t *dtvalue;
inbuf
指向包含 ANSI 标准 DATETIME 字符串的缓冲区的指针。
dtvalue
指向初始化的 datetime 变量的指针。

用法
您必须以您想要此变量拥有的限定符,来初始化 dtvalue 中的 datetime 变量。

inbuf 中的字符串必须有符合 year to second 限定符的值,该限定符的格式为 ANSI
SQL。
inbuf 字符串可有开头的和结尾的空格。
然而,
从第一个有效位至最后一个,
inbuf 仅
可包含符合 ANSI SQL 标准的 DATETIME 值的数字和定界符的字符。


GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 676 -

如果您指定年份值作为一个或两个数字,
则 dtcvasc() 函数假定该年份在当前世纪中。
您可设置该 DBCENTURY 环境变量来确定,当您省略来自该日期的世纪时,dtcvasc() 使
用哪个世纪。

如果该字符串为空字符串,则 dtcvasc() 函数将 dtvalue 指向的值设置为空。如果该
字符串是可接受的,则函数设置 datetime 变量中的值,并返回零。否则,函数保持该变量
不变,并返回负的错误代码。

返回代码
0
转换成功。
-1260
不可能在指定的类型之间转换。
-1261
在 datetime 或 interval 的第一个字段中数字太多。
-1262
在 datetime 或 interval 中的非数值字符。
-1263
在 datetime 或 interval 值中的字段超出范围或不正确。
-1264
在 datetime 或 interval 的末尾存在额外的字符。
-1265
在 datetime 或 interval 运算上发生溢出。
-1266
datetime 或 interval 值与该运算不兼容。
-1267
datetime 计算的结果超出范围。
-1268
参数包含无效的 datetime 限定符。
示例
demo 目录在 dtcvasc.ec 文件中包含此样例程序。
/*

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 677 -

* dtcvasc.ec *
The following program converts ASCII datetime strings in ANSI SQL format into datetime
(dtime_t) structure.
*/

#include

EXEC SQL include datetime;

main()
{
mint x;

EXEC SQL BEGIN DECLARE SECTION;
datetime year to second dt1;
EXEC SQL END DECLARE SECTION;

printf("DTCVASC Sample ESQL Program running.\n\n");

printf("Datetime string #1 = 2007-02-11 3:10:35\n");
if (x = dtcvasc("2007-02-11 3:10:35", &dt1))
printf("Result = failed with conversion error: %d\n", x);
else
printf("Result = successful conversion\n");

/*
* Note that the following literal string has a 26 in the hours place
*/
printf("\nDatetime string #2 = 2007-02-04 26:10:35\n");
if (x = dtcvasc("2007-02-04 26:10:35", &dt1))
printf("Result = failed with conversion error: %d\n", x);
else
printf("Result = successful conversion\n");

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 678 -


printf("\nDTCVASC Sample Program over.\n\n");
}
输出
DTCVASC Sample ESQL Program running.

Datetime string #1 = 2007-02-11 3:10:35
Result = successful conversion

Datetime string #2 = 2007-02-04 26:10:35
Result = failed with conversion error:-1263
DTCVASC Sample Program over.

可以用以下命令将数据恢复到远程服务器:
ontape -s -L 0 -F | rsh remote_server "ontape -p"
但在成功完成后,过程可能会挂起。您有三个主要选项:

终止远程 shell 过程

用以下命令执行远程服务器中的远程 shell:
rsh local_server "ontape -s -L 0 -F" | ontape -p

使用 sh 或 bash shell 中的以下命令对远程服务器上的标准输出 (stdout) 和标准
错误 (stderr) 进行重定向:
ontape -p >/dev/null 2>&1

通过将上述命令放置在远程服务器上的 shell 脚本 (ontape.sh) 中,您可以简化此
重定向。可以从本地服务器发布以下命令:

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 162 -

ontape -s -L 0 -F | rsh remote_server /my/path/ontape.sh

shell 脚本 ontape.sh 包含以下文本:
#!/bin/sh
#define some Gbasedbt environment variables, such as

GBS_HOME=/... ; export GBS_HOME
GBS_DATA=/... ; export GBS_DATA
PATH=/...; export PATH
# 用 stdout/stderr redirection 调用 ontape

ontape -p >/dev/null 2>&1

Consumer Group 管理
Consumer Group 管理功能包括创建、
显示、
修改以及删除Consumer Group 。
点击“创建Consumer Group”如下图所示:
图5- 617 创建Consumer Group
在弹出创建Consumer Group 页面中,填写名称和注释,点击OK。
图5- 618 创建Consumer Group
创建成功后,左侧树会刷新节点,刷新结束后在Consumer Group 管理下方显示
Consumer Group 列表,如下图所示:

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 239 -
图5- 619 显示Consumer Group
点击“修改Consumer Group”如下图所示:
图5- 620 修改Consumer Group
在弹出修改Consumer Group 页面中,可以修改Consumer Group 下的成员。点
击“右移”可以将用户添加到Consumer Group 中,点击“左移”可以将用户从
Consumer Group 中的用户删除。也可以修改名称和注释。点击“OK”确认修改。

GBaseDataStudio 管理工具手册
- 240 -
南大通用数据技术股份有限公司
图5- 621 修改Consumer Group
点击“删除Consumer Group”
,可以删除Consumer Group,如下图所示:
图5- 622 删除Consumer Group

GBaseDataStudio 管理工具手册
南大通用数据技术股份有限公司
- 241 -