首页 > 解决方案 > 通过 Oracle 外部表读取 CSV 文件时跳过标题

问题描述

使用外部表,我们正在读取包含标题的 CSV 文件。我使用 SKIP 1 作为命令来跳过标题。当我们有一个文件时,它工作正常并且能够使用外部表进行归档。

但是在读取多个文件时出现错误“ORA-30653:达到拒绝限制”。因为 skip 1 只会跳过第一个文件头,而不是其他文件。

如何在读取多个文件时跳过所有文件头

标签: sqloracleplsql

解决方案


读取多个文件时出现“ORA-30653:达到拒绝限制”

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

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

alter table users_load reject limit unlimited;

创建表示例:

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

可以在此处阅读有关如何创建外部表的完整详尽示例


推荐阅读