Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle External File and UTF-8 Query

824229Dec 15 2010 — edited Dec 16 2010
Hi All,

We are looking for ideas as to why we are encountering an issue with an Oracle external table.

We get the following error when we load a particular file in this table:

ORA-12801: error signaled in parallel query server P000
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-30653: reject limit reached
ORA-06512: at "SYS.ORACLE_LOADER", line 52

We have narrowed this down to a text field in the file that contains the following text (text obfuscated):
XXXXXXXX ł XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

This is nominally 40 characters long, which matches the maximum field size, but it is being rejected because it appears the 'ł' character is causing Oracle to interpret the length as 41 characters instead.

The file is encoded in UTF-8 without the BOM. If I remove a X then the file loads without issue.


We tried this in a new schema we created where we added the same table and used the same file. There was no problem at all.


The oracle database has the following settings:

NLS_CHARACTERSET UTF8
NLS_NCHAR_CHARACTERSET UTF8
NLS_LENGTH_SEMANTICS BYTE
NLS_LANGUAGE AMERICAN


The table is defined as follows:
CREATE TABLE XXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXX_INTERFACE
(
XXXXXXXXXXXXXXXXXXXX VARCHAR2(40 CHAR),
XXXXXXXXXX VARCHAR2(40 CHAR),
XXXXXXXXXXXXXXXXX VARCHAR2(40 CHAR),
XXXXXXXXXXXXX VARCHAR2(40 CHAR),
XXXXXXXXXXXXXXXXXXXXX NUMBER(13),
XXXXXXXXXXXX VARCHAR2(40 CHAR)
)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY XXXXXXXXXXXXXXXX_L
ACCESS PARAMETERS
( RECORDS DELIMITED BY NEWLINE
BADFILE XXXXXXXXXXXXXXXX_L:'customer.bad'
NOLOGFILE
FIELDS TERMINATED BY"\t" LRTRIM MISSING FIELD VALUES ARE NULL
)
LOCATION (XXXXXXXXXXXXXXXX_L:'external.dat')
)
REJECT LIMIT 0
PARALLEL ( DEGREE 4 INSTANCES 1 )
NOMONITORING;

We tried adding the following attributes but they did not seem to make any difference:
CHARACTERSET UTF8
STRING SIZES ARE IN CHARACTERS

Any assistance would be much appreciated.

Thanks,
Michael
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 13 2011
Added on Dec 15 2010
5 comments
1,331 views