Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle Database Gateway を使用した異機種間連携について

991317Feb 15 2013 — edited Feb 20 2013
お世話になっております。
OracleからPostgreSQLのデータを参照する必要あり、Oracle Database Gateway を使用して
下記のような構成で連携させようと思っています。
Oracle11g - Oracle GW - unixODBC(2.3.0) - PostgreSQL ODBC - PostgreSQL(9.2.1)
(リリース2) (psqlodbc 09.01.0200)
OSはRedhat Enterprise Linux 6.3です。

DB Linkまでは作成でき、OracleからPostgreSQLのデータを参照できるようになったのですが、
VARCHAR2を期待していた列が一部LONGになってしまい、WHERE句に指定できない状態とな
っています。PostgreSQL側では、character varying(2048) で定義していた列が全てLONG型
となってしまっているようです。character varying(2048)以下で定義している列を見ると、全て
9倍の長さになっており、4000バイトを越えるためLONG型にマッピングされてしまっているようで
す。

PostgreSQLの定義
Column | Type | Modifiers
-------------------------------------------------------------------
aaaa | character varying(16) | not null
bbbb | character varying(2048) |
cccc | character varying(2048) |
dddd | character(1) | not null
eeee | character(1) | not null


Oracleでdescした結果
名前 NULL? 型
----------------------------------------- -------- ----------------------------
aaaa NOT NULL VARCHAR2(144)
bbbb LONG
cccc LONG
dddd NOT NULL VARCHAR2(9)
eeee NOT NULL VARCHAR2(9)

恐らく、文字セマンティクスとバイトセマンティクスの変換のためだと思いますが、
LOGN型にマッピングされてしまっている列をVARCHAR2として参照する方法は
ありませんでしょうか。よろしくお願いいたします。
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 20 2013
Added on Feb 15 2013
8 comments
3,338 views