Oracle varchar and nvarchar?

Any one have any pointers on how DI handles:

varchar2(20 char) vs
varchar2(20) i.e. bytes vs
nvarchar(20)

As I can only see varchar as an option in the DI query transforms, so is it dependant on the different code page settings for each datastore?

Also my (inherited) job keeps on 'Initializing transcoder for datastore ', what sort of overhead does this build into a job?

Thanks!


Darth Services :uk: (BOB member since 2007-11-20)

Bump! :shock:


Darth Services :uk: (BOB member since 2007-11-20)

The length semantic DS does not know about, so for us a varchar2(20 char) and varchar2(20 byte) is both 20 chars long. That might be correct for single byte database codepage but not if the database does use UTF-8 as the database codepage. And a varchar2(20) can be either thing as the database has a default for the length semantic as well which can be changed.

A nvarchar(20) is always with char length semantic in Oracle, so we are safe there.

BTW, what we do often is to store additional metadata in the attributes of the imported table or column. Like in this case we show varchar datatype only but by looking at the columns’ class attributes you can find out more. Note: I am not particularly sure we save nvarchar/varchar2 but other examples I know of.


Werner Daehn :de: (BOB member since 2004-12-17)

Under the Options tab for template tables, the flag for "Use NVARCHAR for VARCHAR columns in supported databases is set to “No” by default.

Is there any where to set this default to “Yes” for all new template tables?

Edit: I found this, but do not think it has it on my version…


Darth Services :uk: (BOB member since 2007-11-20)