返回首页

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

更新日期:2024年09月11日



sword GCINumberNeg (
GCIError *errhp,
const GCINumber *number,
GCINumber *result
);

对一个数值进行求反操作。如果 number 参数为NULL,则此函数返回错误。 参数
输入
/输出


errhp
输入/输出 错误信息句柄,该接口调用失败时,错误信息会存在该句柄上
number
输入
待求反的数值
result
输出
对numbe执行求反操作的结果


如果执行成功,返回GCI_SUCCESS,否则返回GCI_ERROR。

问题现象
时间类型数据文件中带有AM、PM,需要正常加载入库。
数据文件如下:
pst103:/home/gbase # cat time.txt
Nov 20 2016 11:30:00:123PM
Nov 20 2016 11:30:00:456AM
解决方法
指定datetime 列的格式为'%b %d %Y %h:%i:%s:%f%p'(%p 代表AM 或者PM),
注意小时格式必须采用12 小时制的%h,而不能是24 小时制的%H。
gbase> load data infile 'sftp://gbase:gbase@10.10.10.103//home/gbase/time.t
xt' into table t_time fields terminated by '\t'
DATETIME FORMAT
'%b %d %Y %h:%i:%s:%f%p';
Query OK, 2 rows affected (Elapsed: 00:00:00.84)
Task 65781 finished, Loaded 2 records, Skipped 0 records
gbase> select *
from t_time;
+----------------------------+
| c1
|
+----------------------------+
| 2016-11-20 23:30:00.123000 |
| 2016-11-20 11:30:00.456000 |
+----------------------------+
2 rows in set (Elapsed: 00:00:00.00)
如果数据文件中时间不包含毫秒,
可以使用%r代表12 小时制的时间
(hh:mm:ss 后
面紧跟着AM 或者PM)。
/home/gbase # cat time.txt
Nov 20 2016 11:31:00PM
Nov 20 2016 11:31:00AM

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
125
gbase> load data infile 'sftp://gbase:gbase@10.10.10.103//home/gbase/time.t
xt' into table t_time fields terminated by '\t'
DATETIME FORMAT
'%b %d %Y %r';
Query OK, 2 rows affected (Elapsed: 00:00:00.73)
Task 65785 finished, Loaded 2 records, Skipped 0 records
gbase> select *
from t_time;
+----------------------------+
| c1
|
+----------------------------+
| 2016-11-20 23:30:00.123000 |
| 2016-11-20 11:30:00.456000 |
| 2016-11-20 23:31:00
|
| 2016-11-20 11:31:00
|
+----------------------------+
4 rows in set (Elapsed: 00:00:00.01)
数据加载入库后12 小时制时间根据AM、PM 自动转化为24 小时制时间。

您可以编辑与 ON-Bar 一起安装的脚本,以定制备份与恢复命令以及存储管理器命令。
在 UNIX™ 操作系统上,onbar shell 脚本位于 $GBS_HOME/bin 目录中。
编辑脚本并备份原始文件的副本,以便在需要时还原。
重要: 请小心编辑脚本并测试更改。请勿更改脚本底部的清除代码。这样做可能导致意外行
为,例如,在备份验证期间遗留临时文件。
该脚本包含用于 Storage Manager 的命令,并备份 Storage Manager 目录。如果要使用不
同的存储管理器,请删除特定于 Storage Manager 的行,并(可选)为所使用的存储管理
器添加命令。
脚本包含以下部分:

此处添加启动处理
如果需要,使用这一部分初始化存储管理器,并且设置环境变量。


此处结束启动处理
这一部分启动 onbar_d 驱动程序并检查返回码。将这一部分用于 onbar_d 和存储管理器
命令。

此处添加清除处理
这部分中的代码在备份操作完成后将 Storage Manager 目录备份到 ISMData 卷池
中。如果使用第三方存储管理器,请删除特定于 Storage Manager 的信息。
如果对卷池使用不同于 ISMData 的名称,请将其更改为在 ISM_DATA_POOL 配
置参数中指定的名称。
这部分会除去 archecker 临时文件。

此处结束清除处理
使用这一部分返回 onbar_d 错误代码。

在重新安装期间更新 ON-Bar 脚本
重新安装数据库服务器后,可能需要更新与 ON-Bar 一起安装的脚本。安装过程备份了现
有定制脚本,以便您可以复用其内容。

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

安装程序在 UNIX™ 上安装缺省 onbar shell 脚本。如果缺省脚本与本地脚本不同,那么
安装程序将备份本地脚本,并发出消息通知您本地脚本已被重命名。重命名的文件的命名
约定为 onbar.date,其中 date 是重命名文件时的日期。例如,文件 onbar.2012.05.15 于
2012 年 5 月 15 日重命名。
您可以通过从重命名的脚本向缺省脚本添加信息来更新缺省脚本。

打印备份引导文件
当备份成功时,使用下面示例的方法向 onbar 脚本添加命令来打印紧急引导文件。每次发
出 onbar -b 命令时,都将打印紧急引导文件。
以下示例适用于 UNIX™:
onbar_d "$@" # receives onbar arguments from command line return_code =
$?
# check return code

# if backup (onbar -b) is successful, prints emergency boot file
if [$return_code -eq 0 -a "$1" = "-b"]; then
servernum=‘awk '/^SERVERNUM/ {print $2}' $GBS_HOME/etc/$ONCONFIG
'
lpr \$GBS_HOME/etc/ixbar.$servernum
fi
exit $return_code

将备份的逻辑日志迁移到磁带
可以将存储管理器设置为将逻辑日志备份到磁盘上,接着编写脚本自动将这些逻辑日志从
磁盘迁移到磁带,以便进行工作环境之外的保存。编辑onbar 脚本使其在 onbar_d 进程完
成后调用该迁移脚本。以下示例显示了调用迁移脚本的脚本:
以下示例适用于 UNIX™:
onbar_d "$@" # starts the backup or restore
EXIT_CODE=$? # any errors?

PHYS_ONLY=false #if it's physical-only, do nothing
for OPTION in $*; do
if [$OPTION = -p]; then
PHYS_ONLY = true


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

fi
done
if ! PHYS_ONLY; then # if logs were backed up, call another
migrate_logs # program to move them to tape
fi