次の問題があります: サイズ 4000 の文字フィールドを持つ DB2 テーブルがあります。
どういうわけか、このフィールドは、Oracle Gateway 経由で表示すると、oracle で varchar2(0 Char) として解釈されます。
CREATE OR REPLACE FORCE VIEW DB2SCHEMA.TEST_TABLE
(
ID,
TEXT
)
AS
SELECT TRIM ("ID") AS ID,
NULL AS "TEXT
FROM XT.TEST_TABLE@DB2SCHEMA;
誰もこの問題を経験したことがありますか? 何らかの理由で、Oracle はこのフィールドを long として扱います。私はオラクル11gを使用しています。私が望むのは、通常のテキストフィールドとして表示することです(DB2では固定長の文字フィールドです)
いくつかの入力に感謝します。おそらく誰かがこれを通常の Varchar2(4000 Char) として取得する方法を知っています。
DESC XT.TEST_TABLE@DB2SCHEMA;
ORA-00604: error occurred at recursive SQL level 1
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Oracle][ODBC DB2 Wire Protocol driver][UDB DB2 for OS/390 and z/OS]UNAVAILABLE RESOURCE CAUSED FAILED EXEC; 00D70024 TYPE 00000220. XT.DSNDBC.DSNDB06.DSNDLX04.I0001.A001 {HY000,NativeErr = -904}
ORA-02063: preceding 2 lines from QDBC
select * from ビューが 0 文字のフィールドを提供する前と同様に、Oracle パラメータを変更しました。
HS_KEEP_REMOTE_COLUMN_SIZE=ローカル
これにより、 select * from view で正しい結果が得られます。私の信念は、これが解決策であるということです。