ORA-29913 和 ORA-30653 错误选择外部表

joh*_*ohy 5 oracle database-design oracle-sql-developer

我使用 .tbl 文件创建了一个外部表,现在我尝试从该表中选择所有行,使用:

select * from users_load;
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached 
Run Code Online (Sandbox Code Playgroud)

你知道为什么会发生这个错误吗?这个表有数百万行,我不知道是否可以因为这个......

Bal*_*app 5

您可以指定在抛出错误之前允许拒绝的行数,也可以指定UNLIMITED. 我猜您指定了一个数字,但是您的.tbl文件包含数据库无法根据您的定义正确解析的行。

在此处输入图片说明

如果要忽略所有格式错误的行,只需将限制更改为UNLIMITED

alter table users_load reject limit unlimited;
Run Code Online (Sandbox Code Playgroud)

创建表示例:

CREATE TABLE foo_load (
    employee_number CHAR(5)
) ORGANIZATION EXTERNAL (
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY ext_tab_dir
    ACCESS PARAMETERS (
        ...
    )
    LOCATION ('foo.txt')
)
REJECT LIMIT UNLIMITED; --Use limit, not limited
Run Code Online (Sandbox Code Playgroud)