返回首页

gbase数据、南大通用产品文档:GBase8s管理外部表装入和卸载操作产生的错误

更新日期:2024年09月11日

可管理外部表装入和卸载操作期间发生的错误。
这些主题描述如何使用拒绝文件和错误消息来管理错误,以及如何恢复已装入到数据库的
数据。
拒绝文件
装入期间具有转换错误的行将写入执行转换的服务器上的拒绝文件中。
CREATE EXTERNAL TABLE 语句中的 REJECTFILE 关键字用于确定指定给拒绝文件的
名称。
可不使用拒绝文件,而是使用 CREATE EXTERNAL TABLE 语句中的 MAXERRORS 关
键字来指定数据库服务器停止装入数据之前允许的错误数。
(如果不设置 MAXERRORS 关
键字,数据库将无视错误数,处理所有数据。)
数据库服务器将在开始执行装入时除去拒绝文件(如果有)。仅当装入期间发生错误时,
才会重新创建和写入拒绝文件。
拒绝文件条目是包含以逗号分隔的以下字段的单行:
file name, record, reason-code, field-name: bad-line
file name
输入文件的名称
record
输入文件中的记录号,在该文件中检测到错误

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 270 -
reason-code
错误的描述
field-name
外部字段名称(行中的第一个错误即在此处出现)或 (如果拒绝不特别针
对特定列)
bad-line
坏行本身(仅对于定界或固定 ASCII 文件)
装入操作以 ASCII 格式写入 file name、record、field-name 和 reason-code。
bad-line 信息由输入文件的类型决定:
 对于定界文件或固定文本文件,
整个坏行将直接复制到拒绝文件中。
但是如果定界格
式表具有 TEXT 或 BYTE 列,那么拒绝文件中将不包含任何坏数据。装入操作将
仅为每个拒绝的行生成一个标题。
 对于 GBase 8s 内部数据文件,坏行不会放入拒绝文件中,因为您无法编辑文件中的
二进制表示。但是,拒绝文件中仍然会报告 file name、record、reason-code 和
field-name,这样您可以隔离该问题。
以下类型的错误可能导致行被拒绝。
CONSTRAINT constraint name
违反了该约束。
CONVERT_ERR
有字段遇到转换错误。
MISSING_DELIMITER
找不到定界符。
MISSING_RECORDEND
找不到记录结尾。
NOT NULL
field-name 中找到了空值。
ROW_TOO_LONG
输入记录长度超过了 64 KB。
输入记录长度超过了 2 GB。

外部表错误消息
与外部表有关的大多数错误消息都在范围 -26151 到 -26199 之间。
其他消息为 -615、-999、-23852 和 -23855。在这些消息中,n macro 和 r macro 指从替
换字符 %r(first..last) 生成的值。有关错误消息列表,请参阅 GBase 8s Error Messages,或
使用 finderr 实用程序。有关违例表错误消息的信息,请参阅《GBase 8s 管理员参考》。

外部表的表类型可恢复性
装入数据时,数据库服务器将检查表的可恢复性级别。
 如果表类型为 RAW,数据库服务器可使用轻量级追加(快速)方式装入数据和处理
检查约束。如果装入期间数据库服务器崩溃,将不回滚装入的数据,而表可能保持未
知状态。
 如果表类型为 STATIC,那么数据库服务器根本不能装入数据。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 271 -
 只有高级方式支持数据可恢复性。
高级方式使用记录的常规插入。
要在快速方式装入
失败之后恢复数据,请还原为最近的 0 级备份。对于此级别的可恢复性,表类型必
须为 STANDARD。
有关复原表类型的信息,请参阅《GBase 8s 备份与复原指南》。












































GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 272 -
4 日志记录和日志管理


在对象资源管理器中,右击“存储过程”节点,然后从快捷菜单中选择“执行存储过
程”。

修改后,点击“执行 SQL ”即可。

GBase 8s 企业管理器用户手册
南大通用数据技术股份有限公司

49

语法格式
分区表查询SQL 含有where 条件,并且条件或者整理后的条件符合以下两种情况,
即可应用分区筛选:
partition_name = constant
partition_name IN (constant1, constant2,……)
具体可以涵盖:<, <=, >, >=, =, <>, IN, BETWEEN...AND...等。
示例
gbase> create table t1 (n int) partition by range(n)
-> (
-> partition p0 values less than (100),
-> partition p1 values less than (200),
-> partition p2 values less than (300),
-> partition p3 values less than (400)
-> );
Query OK, 0 rows affected (Elapsed: 00:00:00.13)

gbase> insert into t1 values(1),(2),(3),(4),(5);
Query OK, 5 rows affected (Elapsed: 00:00:00.10)
Records: 5 Duplicates: 0 Warnings: 0


GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 716
gbase> insert into t1 values(101),(102),(103),(104),(105);
Query OK, 5 rows affected (Elapsed: 00:00:00.08)
Records: 5 Duplicates: 0 Warnings: 0

gbase> insert into t1 values(201),(202),(203),(204),(205);
Query OK, 5 rows affected (Elapsed: 00:00:00.10)
Records: 5 Duplicates: 0 Warnings: 0

gbase> insert into t1 values(301),(302),(303),(304),(305);
Query OK, 5 rows affected (Elapsed: 00:00:00.09)
Records: 5 Duplicates: 0 Warnings: 0

gbase> select * from t1 where n <4;
+------+
| n |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (Elapsed: 00:00:00.05)

gbase> select * from t1 where n >300;
+------+
| n |
+------+
| 301 |
| 302 |
| 303 |
| 304 |
| 305 |
+------+
5 rows in set (Elapsed: 00:00:00.03)

gbase> select * from t1 where n in (101,309);

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 717
+------+
| n |
+------+
| 101 |
+------+
1 row in set (Elapsed: 00:00:00.04)

gbase> select * from t1 where n between 1 and 199;
+------+
| n |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
10 rows in set (Elapsed: 00:00:00.05)