We are in a PeopleSoft EPM 9.0 environment (Solaris, Oracle 10g, DataStage Server 7.5.2).
Source and target databases have the same character set settings:
Code: Select all
select value from nls_database_parameters where parameter = 'NLS_NCHAR_CHARACTERSET';--AL16UTF16
select value from nls_database_parameters where parameter = 'NLS_CHARACTERSET';--WE8ISO8859P15
I checked the character sets installed on our DataStage development server to make sure that it had the database's one:
Code: Select all
#List UNIX server locale
> locale
LANG=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
#List all UNIX server locales installed
> locale -a
C
POSIX
en_CA
en_CA.ISO8859-1
en_CA.UTF-8
en_US
en_US.ISO8859-1
en_US.ISO8859-15
en_US.ISO8859-15@euro
es
es_MX
es_MX.ISO8859-1
fr
fr_CA
fr_CA.ISO8859-1
iso_8859_1
Code: Select all
NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P15";export NLS_LANG
LANG="en_US.ISO8859-15";export LANG
LC_ALL="en_US.ISO8859-15";export LC_ALL
I did not have to re-install DataStage with NLS turned on and I did not have to specify any NLS parameters in projects or jobs.
I performed the same change in the production environment and the accented characters were passed to the target.
At the same time one of the jobs in our nightly run that is backing up a hashed file to a sequential one got the following abort:
Code: Select all
'couldn't set locale correctly'
Code: Select all
> locale
LANG=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
> locale -a
C
POSIX
iso_8859_1
Thanks