web-dev-qa-db-ja.com

外部テーブルを選択すると、ORA-29913およびORA-30653エラーが発生する

私は.tblファイルを使用して外部テーブルを作成し、次を使用してそのテーブルからすべての行を選択しようとしています。

select * from users_load;

しかし、私はこのエラーを受け取ります:

ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached 

このエラーが発生している理由を知っていますか?このテーブルには数百万の行があります。これが原因であるかどうかはわかりません...

4
johy

エラーをスローする前に拒否できる行数を指定するか、UNLIMITEDを指定できます。数値を指定したようですが、.tblファイルには、データベースが定義に基づいて適切に解析できない行が含まれています。

enter image description here

不正な形式の行をすべて無視する場合は、制限を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
4
Balazs Papp