SQL*Loader-282: Unable to locate character set handle for character set ID
I am trying to use Solaris x86 8.1.7 sqlldr to bulk-load some data into a remote 9.2.0.1.0 database on Solaris Sparc.
I get the following error:
$ sqlldr control=customer_orders.ctl skip=1 userid=username@database
Password:
SQL*Loader: Release 8.1.7.0.0 - Production on Mon Jul 7 11:47:00 2003
(c) Copyright 2000 Oracle Corporation. All rights reserved.
SQL*Loader-282: Unable to locate character set handle for character set ID (2000).
The table I'm loading in to is:
CREATE TABLE customer_orders_load (
ACCOUNT_NAME nvarchar2(100),
CUSTOMER_ID nvarchar2(100),
SERVICE_ID nvarchar2(100),
STATUS nvarchar2(100),
COMMENTS nvarchar2(500),
ACCOUNT_MANAGER nvarchar2(100)
);
The sqlldr control file "customer_orders.ctl" is:
load data
infile 'customer_orders.dat'
badfile 'customer_orders.bad'
discardfile 'customer_orders.dis'
into table customer_orders_load replace
fields terminated by '|'
trailing nullcols
(
ACCOUNT_NAME char,
STATUS char,
CUSTOMER_ID char,
SERVICE_ID char,
COMMENTS char,
ACCOUNT_MANAGER char
)
The data file customer_orders.dat is ordinary ASCII text.
I tried setting NLS_LANG to all sorts of different combinations including:
'AMERICAN_AMERICA.WE8ISO8859P1' (the database setting as per V$NLS_PARAMETERS)
'ENGLISH_UNITED KINGDOM.WE8ISO8859P1',
'AMERICAN_AMERICA.UTF8' and
'ENGLISH_UNITED KINGDOM.UTF8'
All produce the same error. I can load the data fine if I remotely log in to the remote sparc machine and use the 9i sqlldr there, without any NLS_LANG settings.
I tried copying the $ORACLE_HOME/ocommon/nls/admin/data directory from 9i to a directory on 8.1.7 and set ORA_NLS33 to point to it, but then got a different error:
SQL*Loader-128: unable to begin a session
ORA-12705: invalid or unknown NLS parameter value specified
Any ideas how to get this to work?!
Thanks
Ed