拒绝文件

装入期间具有转换错误的行将写入执行转换的服务器上的拒绝文件中。

CREATE EXTERNAL TABLE 语句中的 REJECTFILE 关键字用于确定指定给拒绝文件的名称。

可不使用拒绝文件,而是使用 CREATE EXTERNAL TABLE 语句中的 MAXERRORS 关键字来指定数据库服务器停止装入数据之前允许的错误数。(如果不设置 MAXERRORS 关键字,数据库将无视错误数,处理所有数据。)

数据库服务器将在开始执行装入时除去拒绝文件(如果有)。仅当装入期间发生错误时,才会重新创建和写入拒绝文件。

拒绝文件条目是包含以逗号分隔的以下字段的单行:
file name, record, reason-code, field-name: bad-line
file name
输入文件的名称
record
输入文件中的记录号,在该文件中检测到错误
reason-code
错误的描述
field-name
外部字段名称(行中的第一个错误即在此处出现)或 <none>(如果拒绝不特别针对特定列)
bad-line
坏行本身(仅对于定界或固定 ASCII 文件)

装入操作以 ASCII 格式写入 file namerecordfield-namereason-code

bad-line 信息由输入文件的类型决定:
以下类型的错误可能导致行被拒绝。
CONSTRAINT constraint name
违反了该约束。
CONVERT_ERR
有字段遇到转换错误。
MISSING_DELIMITER
找不到定界符。
MISSING_RECORDEND
找不到记录结尾。
NOT NULL
field-name 中找到了空值。
ROW_TOO_LONG
输入记录长度超过了 64 KB。
输入记录长度超过了 2 GB。