今天在寫一個報表過程中,需要另外一個數據庫中的一個表來操作(table_name),但是在操作過程中此表中有一個大字段(clob)字段。用select * from table_name@dblink查詢不出。總是報錯誤。之後在網上找了些數據說materialized view這個不錯。最終於把問題解決
第一步:在對方的庫上建立語句如下(前提條件是必須用sys登陸對方的系統)
grant create materialized view to database;
第二部:以這個table_name表的命令發出命令
create materialized view log on table_name with primary key;
第三部:在我們自有的庫中建立連接(如下命令)
create materialized view table_name
refresh fast start with sysdate next sysdate + 1/48
as select * from table_name@dblink
最後我們看到我們這邊的庫中已經存在一個表table_name的表。此表也就是我們需要遠程連接的表。其中的 sysdate + 1/48代表每半個小時刷新一次
sysdate + 1/1440標識每一份鍾刷新一次。
如果是sysdate+1就是1天刷新一次;
sysdate + 1/24 表示每小時刷新一次
sysdate + 1/48 表示每半時刷新一次
sysdate + 2 表示每兩天刷新一次