在加载期间发生转换错误的行或违反外部表上检查约束的行将写入到拒绝文件中。REJECTFILE 子句声明了该拒绝文件的路径和文件名称。
如果您在同一会话中对同一个表执行另一个装入,则任何先前相同名称的拒绝文件将被覆盖。
拒绝文件条目具有以下格式:
filename, record, reason-code,
field-name: bad-line
下表描述拒绝文件中的这些元素:
- 元素
- 描述
-
filename
- 输入文件的名称
-
record
- 输入文件中记录号,在该文件中检测到错误
- reason-code
- 错误的描述
-
field-name
- 外部字段名称,其中行中发生第一个错误;如果拒绝不是特定于某个列,则为 <none>
-
bad-line
- 造成错误的行(仅限于定界或固定位置字符文件)
拒绝文件以 ASCII 格式写
filename, record 、
field-name 和
reason-code。
bad-line 信息随输入文件类型不同而变化。
- 对于定界文件或固定位置字符文件,错误行有多达 80 个字符被直接复制到拒绝文件中。
- 对于
GBase 8s
内部数据文件,错误行选项不放在拒绝文件中,因为您不能在文件中编辑二进制表示法;但 filename 、record 、reason-code 和
field-name 仍在拒绝文件中报告,这样您可以隔离该问题。请使用 Table Options 子句指定外部数据的格式。
以下错误可导致行被拒绝。
- 错误文本
- 说明
- CONSTRAINT constraint name
- 违反了该约束。
- CONVERT_ERR
- 有字段遇到转换错误。
- MISSING_DELIMITER
- 找不到定界符。
- MISSING_RECORDEND
- 找不到记录结尾。
- NOT NULL
- 在 field-name 中找到 NULL 值。
- ROW_TOO_LONG
- 输入记录超过 32 千字节。
虚拟处理器
GBase 8s
外部表使用 FIFO 虚拟处理器。当初始化服务器时,创建一个
FIFO 虚拟处理器。可使用
onmode -p 命令添加其它 FIFO 虚拟处理器。例如,使用以下语句添加三个 FIFO
虚拟处理器:
onmode -p +3 fifo
无法删除 FIFO 虚拟处理器。
FIFO 虚拟处理器用来处理与使用 PIPE 子句定义的管道相关的 I/O 。
有关使用 FIFO 虚拟处理器的更多信息,请参阅 GBase 8s 管理员指南。