2. My database NLS parameter is set to AMERICAN, WE8ISO8859P1 ...
If you notice the turkish characters İ and Ş are getting converted to ISO 8859-1 character set. However, all the settings(NLS paramaters in db and unix) are same at both end- ISO8859-1(Western European)The characters capital/small letter I with dot above, S with cedilla and G with breve, which are typical for turkish alphabet, does not exist in the character repertoire of 8859-1.
select column, dump(column, 1016) from table where suitable_condition ... ;
With some study, I can understand - Turkish machines can display turkish data by doing conversion in real-time(DB NLS settings are overridden by local NLS settings).Very likely, what you see is a "side effect" of the pass-through configuration (aka garbage in, garbage out).
The problem is- Exract never conains any turkish character. Every turkish character is getting converted into Western European Characterset and goes like this to the external system which is treated as a case of data conversion/loss and my business is really unhappy.Your shell script connects to database, how? I'm guessing the client part of NLS_LANG for shell environment is either set/defaults to US7ASCII or is set to WE8ISO8859P9
Could anyone tell me - How could I retain all the turkish characters?Quick "fix": continue with pass-through setup, ignoring character set definition.