日期:2014-05-16  浏览次数:20409 次

dblink建物化视图解决lob大字段问题

今天在写一个报表过程中,需要另外一个数据库中的一个表来操作(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 表示每两天刷新一次