oracle_fdw 元件的版本變更

babyyellow發表於2015-07-03

寫這篇帖子時: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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章