oracle hs unicode odbc szoveges mezok eltunnek

Sziasztok,

oracle 10 express-ből próbálok postgresql-hez kapcsolódni odbc-n keresztül. (unicode-os oracle és unicode-os postgres adatbázis) Ehhez az oracle heterogeneous services-t kéne használnom, de bárhogy állítom be, benne marad egy bosszantó hiba a rendszerben.
Kétféle ODBC-s postgres driver létezik: unicode és ansi. Mindkét driverrel létrejön a kapcsolat, de ha az ansi drivert használom, akkor az ékezetes karakterek nem mennek át, és valami egzotikus ORA-xxxx hibával elszállnak az sql utasítások. (Ez végül is logikus.) A unicode driver esetében meg egyszerűen kihagyja a lekérdezések eredményeiből a szöveges mezőket, mintha ott sem lennének.
Nem a postgres odbc driverrel van gond, mert külső odbc nézegetővel látom a kimaradó oszlopokat is.

Miután az odbc kapcsolatot a postgreshez windows alatt létrehoztam (és külső nézegetővel leteszteltem, hogy jól működik-e), a következőeket állítottam be oracle alatt:

$ORACLE_HOME\hs\admin\initPG.ora


HS_FDS_CONNECT_INFO = PG # az odbc kapcsolat neve
#HS_NLS_NCHAR = HUNGARIAN_HUNGARY.AL32UTF8
#HS_LANGUAGE = HUNGARIAN_HUNGARY.AL32UTF8
HS_FDS_TRACE_LEVEL = ON
#HS_FDS_REPORT_REAL_AS_DOUBLE = TRUE

$ORACLE_HOME\NETWORK\ADMIN\listener.ora


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PG)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = hsodbc)
    )
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
#      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = IPC)(KEY = PNPKEY))
      (ADDRESS = (PROTOCOL = TCP)(HOST = freelancer)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

$ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora (részlet)


PG =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = freelancer)(PORT = 1521))
    (CONNECT_DATA =
      (SID = PG)
    )
    (HS = OK)
  )

Ezek után az oracle-ben futtatva:


CREATE PUBLIC DATABASE LINK "PG"
  CONNECT TO "postgresuser" IDENTIFIED BY "postgrespassword" USING 'PG';

...

SELECT * FROM "postgres_test_table"@pg;

Mindezt ez alapján a tutorial alapján.
Tudna valaki segíteni?

Üdv,
kl223