Page 1 of 1

Oracle table definitions got multiplied by 3

Posted: Tue Feb 17, 2009 6:37 am
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

Posted: Tue Feb 17, 2009 7:35 am
by Sainath.Srinivasan
Guessing....

Do you have NLS enabled ?

Posted: Tue Feb 17, 2009 8:30 am
by chulett
39 characters or 39 bytes?

Posted: Tue Feb 17, 2009 9:23 am
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.

Posted: Tue Feb 17, 2009 2:31 pm
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.

Posted: Thu Feb 26, 2009 7:38 am
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!!