今天在写一个报表过程中,需要另外一个数据库中的一个表来操作(table_name),但是在操作过程中此表中有一个大字段(clob)字段。用select * from table_name@dblink查询不出。总是报错误。之后在网上找了些数据说materialized
今天在写一个报表过程中,需要另外一个数据库中的一个表来操作(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 表示每两天刷新一次