开发者社区> 问答> 正文

ORACLE_FDW DATE类型数据提取出问题

请教一个oracle_fdw的问题:
在oracle中有表
SQL> desc pgtest1;
Name Null? Type

ID NUMBER(38)
DTIME DATE
ELEC_ADDR VARCHAR2(256 CHAR)

SQL> select * from pgtest1;

ID DTIME               ELEC_ADDR
 1 2016-05-20 10:12:12 ss
 2 2012-02-02 12:12:12 ss

通过fdw到postgresql这边查询结果是
postgres=# d pgtest1;
Foreign table "public.pgtest1"

Column Type Modifiers FDW Options
id integer
dtime timestamp without time zone
elec_addr character varying(256)

Server: oracle_svr
FDW Options: (schema 'TEST', "table" 'PGTEST1')

postgres=# select * from pgtest1;
ERROR: error executing query: OCIStmtExecute failed to execute remote query
DETAIL: ORA-01406: 提取的列值被截断

把dtime字段写成date类型也是同样的错误
postgres=# d pgtest5;
Foreign table "public.pgtest5"

Column Type Modifiers FDW Options
id integer
dtime date
elec_addr character varying(256)

Server: oracle_svr
FDW Options: (schema 'TEST', "table" 'PGTEST1')

postgres=# select * from pgtest5;
ERROR: error executing query: OCIStmtExecute failed to execute remote query
DETAIL: ORA-01406: 提取的列值被截断

在oracle中把数据TRUNCATE掉之后
SQL> TRUNCATE TABLE PGTEST1;

Table truncated.

SQL> select * from pgtest1;

no rows selected

在postgresql中查询
postgres=# select * from pgtest1;

(0 rows)

说明oracle_fdw是通信是OK的,
请问这是什么原因?oracle的date类型在postgresql外部表中我应该写成什么类型?
求各位大牛帮忙解答 ,
oracle版本10.2.0.4 postgresql版本 9.5.1 fdw版本1.3.0

展开
收起
llhai@pg 2016-07-11 11:25:28 4309 0
1 条回答
写回答
取消 提交回答
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.

    screenshot

    2019-07-17 19:54:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关实验场景

更多

相关镜像