Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-29913:errore nell'esecuzione del callout ODCIEXTTABLEOPEN

Hai diversi problemi qui. Quello immediato che causa il tuo problema è che hai le clausole nell'ordine sbagliato , ma hai anche MISSING FIELDS invece di MISSING FIELD :

...
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  MISSING FIELD VALUES ARE NULL
  REJECT ROWS WITH ALL NULL FIELDS
  (
...

Quindi il tuo contenuto elenco campi hanno tipi di dati per quella parte della dichiarazione; puoi semplicemente ometterlo del tutto in questo caso poiché corrispondono alla definizione della colonna della tabella.

Quindi puoi semplificarlo in:

create table strecords (
st_id number(4),
st_name varchar(10),
schl_name varchar(5),
st_city varchar(15),
st_year number(4)
)
ORGANIZATION EXTERNAL
(TYPE oracle_loader
 DEFAULT DIRECTORY ex_tab
 ACCESS PARAMETERS
 (
  RECORDS DELIMITED BY newline
  FIELDS TERMINATED BY ',' 
  MISSING FIELD VALUES ARE NULL
  REJECT ROWS WITH ALL NULL FIELDS
 )
 LOCATION ('strecords.txt')
);