web-dev-qa-db-fra.com

Erreur ORA-29913 et ORA-30653 lors de la sélection d'une table externe

J'ai créé une table externe en utilisant un fichier .tbl et maintenant j'essaie de sélectionner toutes les lignes de cette table, en utilisant:

select * from users_load;

Mais je reçois cette erreur:

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

Savez-vous pourquoi cette erreur se produit? Cette table a des millions de lignes, je ne sais pas si cela peut être à cause de cela ...

4
johy

Vous pouvez spécifier le nombre de lignes pouvant être rejetées avant de lancer une erreur, ou vous pouvez spécifier UNLIMITED. Je suppose que vous avez spécifié un nombre, mais votre .tbl le fichier contient des lignes que la base de données ne peut pas analyser correctement en fonction de votre définition.

enter image description here

Si vous souhaitez ignorer toutes les lignes mal formées, vous pouvez simplement changer la limite en UNLIMITED:

alter table users_load reject limit unlimited;

créer un exemple de table:

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