From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> |
---|---|
To: | Carlos Muñoz Juste <cmunoz(at)es(dot)lladro(dot)com> |
Cc: | pgsql-odbc(at)postgresql(dot)org |
Subject: | Re: Issue with Oracle Database Gateway for ODBC and Unicode |
Date: | 2013-05-13 10:31:10 |
Message-ID: | 5190C0EE.6090103@vmware.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
On 13.05.2013 12:21, Carlos Muñoz Juste wrote:
> We have noticed that this only happens when the column in the where clause
> is of type character varying, due to the fact that the Oracle Database
> Gateway for ODBC returns all character varying columns in Postgres as type
> NVARCHAR2. If we issue the query like this, then the where clause is
> passed to Postgres:
>
> select * from "dps_user"@pg where "id" = cast('32422' as nvarchar2(40))
>
> This behavior does not happen when we used the psqlodbc ANSI driver, but
> unfortunately the Unicode driver is a must because both databases contain
> Japanese, Russian and Chinese characters. It does not happen either when
> we access the Postgres database through the psqlodbc Unicode driver from,
> for example, Microsoft Query, so it has something to do with the Oracle
> Database Gateway.
>
> However, I thought I would post my problem here, just in case you ran into
> this problem or heard of someone who did. Having to use the cast as
> nvarchar2 works, but it is very cumbersome. I wonder if there would be a
> way to configure the psqlodbc driver so that a varchar2 column is returned
> instead.
To be precise, the driver returns the column type to be the ODBC type
SQL_WVARCHAR. Oracle Database Gateway must be translating that into
NVARCHAR2. And you would like the column type to be returned as
SQL_VARCHAR instead, which the Gateway will hopefully translate into
VARCHAR2.
As a matter of fact, there is a setting to do that. It's a bit hidden
away, it's the "Extra Opts" value 0x4. See
http://psqlodbc.projects.pgfoundry.org/docs/config.html. I think it's
set in the connection string or ini file as "AB=0x4". There should also
be a field for it somewhere in the configuration GUI
> I am going to open a service request with Oracle to see if they can help
> me on the gateway end.
Yeah, seems like a bug or at least a missing feature in the Gateway.
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Jan-Peter Seifert | 2013-05-13 13:15:49 | psqlODBC 09.01.0100 Unicode version still crashes on long server messages? |
Previous Message | Carlos Muñoz Juste | 2013-05-13 09:21:47 | Issue with Oracle Database Gateway for ODBC and Unicode |