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)
你知道为什么会发生这个错误吗?这个表有数百万行,我不知道是否可以因为这个......
您可以指定在抛出错误之前允许拒绝的行数,也可以指定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)