Reputation: 95
I want to crate external table based on datafile, but I got error. I use whitespace to delimit my record but this doesn't work . Yes I created directory and gave read and write permissions than I created my external table . However when I selected it I got an error:
ORA-29913: error in executing ODCIEXTTABLEOPEN callout
ORA-29400: data cartridge error
My external table is :
create table nflteams_ext (
ACR varchar2(4),
NAME varchar2(20))
organization external
(
type oracle_loader
default directory ext_tab_data
access parameters (
records delimited by newline CHARACTERSET US7ASCII
fields terminated by whitespace
missing field values are null
(ACR varchar2(4),
NAME varchar2(20))
)
LOCATION ('NFL_Teams.dat')
)
REJECT LIMIT UNLIMITED NOPARALLEL;
data file:
NO New Orleans Saints
PIT Pittsburgh Steelers
IND Indianapolis Colts
Upvotes: 0
Views: 164
Reputation: 95
The problem is solved . I used char instead of varchar2 in the lower section of my external tablecreation also I delimeted by '/n'.
CREATE TABLE nflteams_ext
(acr VARCHAR2( 4),
name VARCHAR2(20))
ORGANIZATION EXTERNAL
(TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_data
ACCESS PARAMETERS
(RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
FIELDS TERMINATED BY WHITESPACE
MISSING FIELD VALUES ARE NULL
(acr CHAR( 4),
name CHAR(20) TERMINATED BY '/n'))
LOCATION ('NFL_Teams.dat'))
REJECT LIMIT UNLIMITED
NOPARALLEL /
SELECT * FROM nflteams_ext
2 /
ACR NAME
NO New Orleans Saints PIT Pittsburgh Steelers IND Indianapolis Colts
3 rows selected.
Upvotes: 0