更新日期:2024年09月11日
在某些情况下,如果系统时间有问题,ON-Bar 会失败,并出现以下消息:There are no
storage spaces or logical logs to backup or restore。如果发生此情况,可以执行相应步骤来解
决问题。
时间线使用 UNIX™ 时间作为数据库空间的归档检查点时间和逻辑日志的结束时间。如果
没有自动备份日志并且更改了系统时钟,那么可能会破坏时间线。
例如,如果在归档检查点时间前结束了逻辑日志记录,就会有一个高于归档检查点时间的
时间戳记。数据库空间不需要日志,并且 ON-Bar 将尝试立即恢复备份。如果找不到日
志,那么 ON-Bar 失败,并出现以下消息:There are no storage spaces or logical logs to
backup or restore.
要存储存储空间和逻辑日志:
1.
将时钟改回其原有值。
2.
从备份恢复系统。
3.
将时钟更改成新的时间。
此部分描述如何使用 DB-Access 将集合值插入到列内。它未讨论如何将个别元素插入到集
合列内。要访问或修改集合的个别元素,
请使用 GBase 8s ESQL/C 程序或 SPL 例程。
要获
取关于如何创建 GBase 8s ESQL/C 程序来插入到集合内的信息,请参阅《GBase 8s ESQL/C
程序员手册》。要获取关于如何创建 SPL 例程来插入到集合内的信息,请参阅 创建和使
用 SPL 例程。
本部分提供的这些示例是基于下图中的 manager 表。
manager 表同时包含简单的和嵌套的集
合类型。
图: 创建 manager 表。
CREATE TABLE manager
(
mgr_name VARCHAR(30),
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 170 -
department VARCHAR(12),
direct_reports SET(VARCHAR(30) NOT NULL),
projects LIST(ROW(pro_name VARCHAR(15),
pro_members SET(VARCHAR(20) NOT NULL))
NOT NULL)
);
将值插入到简单的集合和嵌套的集合内
当您将值插入包含集合列的行内时,您插入集合列包含的所有元素的值以及其他列的值。
例如,下列语句将单个行插入到 manager 表内,该表同时包括简单的集合和嵌套的集合列:
INSERT INTO manager(mgr_name, department,
direct_reports, projects)
VALUES
(
'Sayles', 'marketing',
"SET{'Simonian', 'Waters', 'Adams', 'Davis', 'Jones'}",
LIST{
ROW('voyager_project', SET{'Simonian', 'Waters',
'Adams', 'Davis'}),
ROW ('horizon_project', SET{'Freeman', 'Jacobs',
'Walker', 'Smith', 'Cannan'}),
ROW ('saphire_project', SET{'Villers', 'Reeves',
'Doyle', 'Strongin'})
}
);
将 NULL 值插入到包含 row 类型的集合内
要将值插入到 ROW 类型的集合内,您必须为 ROW 类型中的每一字段指定值。
通常,在集合中不允许 NULL 值。然而,如果集合的元素类型为 ROW 类型,则您可将
NULL 值插入到 row 类型的个别字段内。
您还可指定空集合。
空集合是不包含任何元素的集合。
要指定空集合,
请使用大括号
({})
。
例如,
下列语句将数据插入到 manager 表中的行内,
但指定 direct_reports 和 projects 列为空
集合:
INSERT INTO manager
VALUES ('Sayles', 'marketing', "SET{}",
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 171 -
"LIST{ROW(NULL, SET{})}"
);
集合列不可包含 NULL 元素。由于指定 NULL 值作为集合的元素,因此下列语句返回一
个错误:
INSERT INTO manager
VALUES ('Cole', 'accounting', "SET{NULL}",
"LIST{ROW(NULL, ""SET{NULL}"")}"
下列语法规则适用于对集合类型执行插入和更新:
使用大括号({})来划分每一集合包含的元素。
如果该集合为嵌套的集合,则使用大括号({})来同时划分内部集合和外部集合的元素。