写这篇帖子时:oracle_fdw-1.0.0 正式版是最新的版本
我们系统目前部署使用的版本为 oracle_fdw-0.9.5。 oracle_fdw-0.9.9 (beta ) 开始支持pg9.3 oracle_fdw-0.9.10 (beta) 支持对外部表的 Insert ,delete ,update ,当前只对postgresql9.3 版本有效 增加表操作项 readonly (当值设置为 true|on|yes 表示不可以做增删改操作) 默认值false 对于postgresql9.2 这些选项虽然没有起到作用,但是建议将值设置为 (true|on|yes) 增加列操作项key ( 当需要对外部表进行delete,update 时 ,对表的主键所含的所有列 需要设置 key 值为 yes|on|true) 默认值false CREATE FOREIGN TABLE oratab ( id integer OPTIONS (key 'true') NOT NULL, text character varying(30), floating double precision NOT NULL ) SERVER oradb OPTIONS (schema 'ORAUSER', table 'ORATAB' , readonly 'yes'); oracle_fdw-1.0.0 添加函数oracle_diag(name) 用于打印一些版本信息 select * from oracle_diag('ora_cyp') "oracle_fdw 1.0.0, PostgreSQL 9.3.4, Oracle client 11.2.0.1.0, Oracle server 10.2.0.4.0" select * from oracle_diag() "oracle_fdw 1.0.0, PostgreSQL 9.3.4, Oracle client 11.2.0.1.0, ORACLE_HOME=/data/oracle/product/11.2.0/client" 当从旧版本升级到新版本的ora_fdw 时,请使用 alter extension oracle_fdw update ; 进行更新 对postgresql9.4 版本支持在trigger 中使用 外部表。 注意点: 在 oracle_fdw-0.9.5 时 ,建外部表 table 选项 表的名字可以用小写,在新版本中,表名必须用大写,否则会报如下错误 ERROR: Oracle table "pdl_ad" for foreign table "ora_pdl_ad" does not exist or does not allow read access DETAIL: ORA-00942: table or view does not exist HINT: Oracle table names are case sensitive (normally all uppercase). 当oracle 版本是11gr2 以上版本 ,如果使用oracle_fdw 往新表插入第一笔数据时会引发serialization error错误 这个是由于11.2 版本的一个新特性 deferred segment creation ,当建表时只在数据字典中记录,只有当该表生成记录时才分配空间 SQL> show parameter deferred_segment_creation; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ deferred_segment_creation boolean TRUE 为避免这种情况发生,可以在oracle 建表时指定 create table 。。。 SEGMENT CREATION IMMEDIATE |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-1721329/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/133735/viewspace-1721329/