Você tem vários problemas aqui. A causa imediata do problema é que você tem as cláusulas na ordem errada , mas você também tem
MISSING FIELDS
em vez de MISSING FIELD
:...
ACCESS PARAMETERS
(
RECORDS DELIMITED BY newline
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
REJECT ROWS WITH ALL NULL FIELDS
(
...
Em seguida, seu conteúdo da lista de campos tem tipos de dados para essa parte da declaração; você pode simplesmente omitir isso inteiramente neste caso, pois eles correspondem à definição da coluna da tabela.
Então você pode simplificar para:
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')
);