问题描述
嗨
我将创建一个表,然后在其顶部创建一个物化视图日志,在其中我将使用sequence关键字专门对某些列进行排序。
请注意,我用 “序列 (col3,col2,col1)” 创建mviewlog
现在,当我检查这个对象的DDL,我得到这个:
注意,排序是错误的 (似乎排序总是按字母顺序):
除此之外,这些视图中不应该也有一些订购信息 (例如column_id等):
问候
劳尔·考比
我将创建一个表,然后在其顶部创建一个物化视图日志,在其中我将使用sequence关键字专门对某些列进行排序。
请注意,我用 “序列 (col3,col2,col1)” 创建mviewlog
SQL> create table raulkaubi.mvlog_test1(id number PRIMARY KEY, col1 date, col2 number, col3 number); create materialized view log on raulkaubi.mvlog_test1 with rowid, sequence (col3, col2, col1) including new values;复制
现在,当我检查这个对象的DDL,我得到这个:
set pagesize 0 set lines 200 set long 90000 set feedback off set echo off select dbms_metadata.get_ddl('MATERIALIZED_VIEW_LOG','MLOG$_MVLOG_TEST1','RAULKAUBI') from dual; CREATE MATERIALIZED VIEW LOG ON "RAULKAUBI"."MVLOG_TEST1" PCTFREE 10 PCTUSED 30 INITRANS 1 MAXTRANS 255 LOGGING TABLESPACE "USERS" WITH ROWID, SEQUENCE ( "COL1", "COL2", "COL3" ) INCLUDING NEW VALUES复制
注意,排序是错误的 (似乎排序总是按字母顺序):
SEQUENCE ( "COL1", "COL2", "COL3" )复制
除此之外,这些视图中不应该也有一些订购信息 (例如column_id等):
DBA_MVIEW_LOG_FILTER_COLS ALL_MVIEW_LOG_FILTER_COLS复制
问候
劳尔·考比
专家解答
你想在这里做什么?
sequence子句与列顺序无关。从文档中:
SEQUENCE
Specify SEQUENCE to indicate that a sequence value providing additional ordering information should be recorded in the materialized view log. Sequence numbers are necessary to support fast refresh after some update scenarios.
列列表说明要存储在实体化视图日志中的值。你可以独立使用这些。使用序列对过滤器列没有影响:
请注意,MV日志第一次包括序列 $ $; 第二次它省略了这一点,而是包括列C2,C1。
也就是说,我可以看到get_ddl以字母顺序返回这些列:
如果您需要此功能,请与支持人员交谈以提出错误。同样,如果您希望在字典视图中提供此信息,则会提出增强请求。
sequence子句与列顺序无关。从文档中:
SEQUENCE
Specify SEQUENCE to indicate that a sequence value providing additional ordering information should be recorded in the materialized view log. Sequence numbers are necessary to support fast refresh after some update scenarios.
列列表说明要存储在实体化视图日志中的值。你可以独立使用这些。使用序列对过滤器列没有影响:
create table t ( id int primary key, c1 int, c2 int ); create materialized view log on t with rowid, sequence; desc mlog$_t; Name Null? Type M_ROW$$ VARCHAR2(255) SEQUENCE$$ NUMBER SNAPTIME$$ DATE DMLTYPE$$ VARCHAR2(1) OLD_NEW$$ VARCHAR2(1) CHANGE_VECTOR$$ RAW(255 BYTE) XID$$ NUMBER drop materialized view log on t; create materialized view log on t with rowid, ( c2, c1 ); desc mlog$_t; Name Null? Type ID NUMBER C2 NUMBER C1 NUMBER M_ROW$$ VARCHAR2(255) SNAPTIME$$ DATE DMLTYPE$$ VARCHAR2(1) OLD_NEW$$ VARCHAR2(1) CHANGE_VECTOR$$ RAW(255 BYTE) XID$$ NUMBER复制
请注意,MV日志第一次包括序列 $ $; 第二次它省略了这一点,而是包括列C2,C1。
也就是说,我可以看到get_ddl以字母顺序返回这些列:
select dbms_metadata.get_ddl ( 'MATERIALIZED_VIEW_LOG', 'MLOG$_T', user ) from dual; CREATE MATERIALIZED VIEW LOG ON "CHRIS"."T" PCTFREE 10 PCTUSED 30 INITRANS 1 MAXTRANS 255 LOGGING TABLESPACE "USERS" WITH PRIMARY KEY, ROWID ( "C1", "C2" ) EXCLUDING NEW VALUES复制
如果您需要此功能,请与支持人员交谈以提出错误。同样,如果您希望在字典视图中提供此信息,则会提出增强请求。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
606次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
605次阅读
2025-04-15 17:24:06
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
499次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
483次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
465次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
441次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
438次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
432次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
373次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
362次阅读
2025-04-15 14:48:05