文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>about materialized view and long(turn)

about materialized view and long(turn)

时间:2010-10-22  来源:xlfsy

对于LONG类型的限制很多,不过对于高级复制来说,很多的LONG类型相关的问题都是可以解决的。

对于多主复制,包含LONG类型相对比较麻烦,需要首先修改表结构,将LONG类型转变为LOB类型。对于物化视图,就相对简单很多,不需要修改基表的数据类型。

首先,如果不需要同步LONG类型的字段,那么不需要进行任何的修改,只有在物化视图的创建过程中不包括LONG字段就可以了。

如果需要包含LONG字段,那么只需要在创建物化视图的时候对LONG类型执行TO_LOB操作,这样就可以顺利创建物化视图。

当然,建立的物化视图包含的是LOB字段。

具体例子如下:

SQL> CREATE TABLE TEST_LONG (ID NUMBER PRIMARY KEY, LONG_COL LONG);

表已创建。

SQL> CREATE MATERIALIZED VIEW LOG ON TEST_LONG;

实体化视图日志已创建。

SQL> CREATE MATERIALIZED VIEW MV_TEST_LONG REFRESH FAST AS SELECT * FROM TEST_LONG;
CREATE MATERIALIZED VIEW MV_TEST_LONG REFRESH FAST AS SELECT * FROM TEST_LONG
*第 1 行出现错误:
ORA-00997: 非法使用 LONG 数据类型


SQL> CREATE MATERIALIZED VIEW MV_TEST_LONG REFRESH FAST AS SELECT ID FROM TEST_LONG;

实体化视图已创建。

SQL> DROP MATERIALIZED VIEW MV_TEST_LONG;

实体化视图已删除。

SQL> CREATE MATERIALIZED VIEW MV_TEST_LONG REFRESH FAST AS SELECT ID, TO_LOB(LONG_COL) LONG_COL
2 FROM TEST_LONG;

实体化视图已创建。

SQL> INSERT INTO TEST_LONG VALUES (1, 'ABCDEFG');

已创建 1 行。

SQL> SELECT * FROM TEST_LONG;

ID LONG_COL
---------- ------------------------------------------------------------
1 ABCDEFG

SQL> COMMIT;

提交完成。

SQL> EXEC DBMS_MVIEW.REFRESH('MV_TEST_LONG')

PL/SQL 过程已成功完成。

SQL> SELECT * FROM MV_TEST_LONG;

ID LONG_COL
---------- ------------------------------------------------------------
1 ABCDEFG

SQL> UPDATE TEST_LONG SET LONG_COL = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' WHERE ID = 1;

已更新 1 行。

SQL> COMMIT;

提交完成。

SQL> EXEC DBMS_MVIEW.REFRESH('MV_TEST_LONG');

PL/SQL 过程已成功完成。

SQL> SELECT * FROM MV_TEST_LONG;

ID LONG_COL
---------- ------------------------------------------------------------
1 ABCDEFGHIJKLMNOPQRSTUVWXYZ

turn from http://yangtingkun.itpub.net/post/468/139790


相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载