Oracle table definitions got multiplied by 3

Post questions here relative to DataStage Server Edition for such areas as Server job design, DS Basic, Routines, Job Sequences, etc.

Moderators: chulett, rschirm, roy

Post Reply
jusami25
Premium Member
Premium Member
Posts: 84
Joined: Tue Oct 26, 2004 12:49 am

Oracle table definitions got multiplied by 3

Post by jusami25 »

Hi all,

we are importing a table definition from an Oracle DB using the Oracle enterprise stage of Datastage 8.1

The weird thing is that in oracle the column if VARCHAR2(13) and in Datastage the column has the size multiplied by 3 = 39. In Datastage the column is CHAR(39).

The same is happening with other fields. Do you have any clue why this is happening??

Regards
Jusami
Sainath.Srinivasan
Participant
Posts: 3337
Joined: Mon Jan 17, 2005 4:49 am
Location: United Kingdom

Post by Sainath.Srinivasan »

Guessing....

Do you have NLS enabled ?
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

39 characters or 39 bytes?
-craig

"You can never have too many knives" -- Logan Nine Fingers
jusami25
Premium Member
Premium Member
Posts: 84
Joined: Tue Oct 26, 2004 12:49 am

Post by jusami25 »

Hi,

Sainath: Yes we have enabled NLS and set the same encoding we have in the oracle database UTF-8

Chulett: On the table definition we have Datatype = Char and Lenght = 39

Thanks for your answers.
ray.wurlod
Participant
Posts: 54607
Joined: Wed Oct 23, 2002 10:52 pm
Location: Sydney, Australia
Contact:

Post by ray.wurlod »

Just accept it. With NLS enabled Oracle reports that it uses three bytes per character (and, indeed, mostly does).

DataStage's NLS map translates that into DataStage's internal UTF mapping (variable number of bytes per character) when reading, and back again when writing.

It all works OK. Don't worry about it.
IBM Software Services Group
Any contribution to this forum is my own opinion and does not necessarily reflect any position that IBM may hold.
jusami25
Premium Member
Premium Member
Posts: 84
Joined: Tue Oct 26, 2004 12:49 am

Post by jusami25 »

Hi,

we have seen a configuration parameter in Oracle Database (nls_length_semantics) which have been set as byte and can have be set as char value. Do you think this can solve the issue?

We have not tried to change the value yet because we cannot update oracle configuration due to another project is using the same database.

Thanks!!
Post Reply