li
  当前位置:主页 > 性能优化 > 文章内容
li
在包含LONG类型的表上建立物化视图
来源: http://yangtingkun.itpub.net/  作者: yangtingkun    时间:2008-01-26   阅读:4  

对于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 过程已成功完成。

www.ixdba.net


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




  上一篇: 物化视图注册信息的清除   下一篇: 物化视图是否根据字段进行刷新(...
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·物化视图注册信息的清除
·建立物化视图所需权限(四)
·建立物化视图所需权限(三)
·建立物化视图所需权限(二)
·建立物化视图所需权限(一)
·两个导致物化视图无法快速刷新的...
·建立包含ROLLUP或CUBE的物化视图
·物化视图导出导入可能导致物化视...
·物化视图的PCT特性(二)
·物化视图的PCT特性(一)
·物化视图是否根据字段进行刷新(...
·物化视图是否根据字段进行刷新(...
·物化视图是否根据字段进行刷新(...
·物化视图复制快速刷新的限制(二...
·GLOBAL_NAME相同的数据库中物化视...
·GLOBAL_NAME相同的数据库中物化视...
·ORA-600(999)错误(二)
·物化视图刷新过程中出现的约束冲...
·ORA-600(999)错误(三)
·建立物化视图导致数据库实例崩溃
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接