[freetds] character set issue between sql server and oracle

Frediano Ziglio freddy77 at gmail.com
Tue Apr 14 08:44:19 EDT 2015


Il 13/Apr/2015 19:41, "Turk, Scott A" <SATurk at missouristate.edu> ha scritto:
>
>
> We've set up freetds as a gateway between Sql server and Oracle.  When
running a query on Oracle across a link to a Sql Server database, we get
extra null characters between each real character in the output.  This
occurs on columns set up as nchar on the Sql Server side.  Can anyone
please provide assistance?
>
> Here is the output from the dump command on the query (executed on Oracle
across the link), the real output should be "administrator".
>
> Typ=1 Len=52:
0,97,0,0,0,100,0,0,0,109,0,0,0,105,0,0,0,110,0,0,0,105,0,0,0,115,0,0,0,116,0,0,0,114,0,0,0,97,0,0,0,116,0,0,0,111,0,0,0,114,0,0
>
> Thanks!
>
> Scott Turk
> Missouri State University
>

Hi,
  Looks quite strange. Would be useful to understand the kind of binding
Oracle is doing. Looks like the output is using 4 bytes for each character
but it quite strange. In the wire server send a character as two bytes.
Could be that Oracle is using a driver manager with 4 bytes as wide
character. However the encoding is quite strange as in nor little nor big
endian. A ODBC trace would be really helpful.

Frediano


More information about the FreeTDS mailing list