I,
我在一个服务器上有一个由DB链接创建的物化视图。 Mview上有一个作业正在运行。(早先使用dbms_refresh.make)。
现在我在原始表格中创建了3个新字段。
在Mview上运行了作业,我通过DBMS_refresh.destroy放弃了这份工作。 然后删掉了Mview(我忘了删除索引)
现在,当我尝试用之前提取的SQL创建Mview时, 它给出了错误: -
在命令的第1行开始出错:
CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT
TABLESPACE "TTSTAT_DATA"
LOGGING
PCTFREE 10
PCTUSED 40
INITRANS 1
MAXTRANS 255
STORAGE
(
INITIAL 5M
NEXT 5M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
NOCACHE NOPARALLEL BUILD IMMEDIATE
USING INDEX
REFRESH ON DEMAND FAST
WITH ROWID
DISABLE QUERY REWRITE AS
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917,
C536870918,C536870919,C536870920,C536870921,C536870922,C536870927,
C536870928,C536870929,C536870930,C536870931,C536870932,C536870933,
C536870937,C536870939,C536870940,C536870941,C536870942,C536870945,
C536870951,C536870952,C536870953,C536870954,C536870955,C536870956,
C536870957,C536870959,C536870961,C536870962,C536870965,C536871100
FROM T288@STAT2TTM.WORLD
命令行出错:1列:0 错误报告:
SQL Error: ORA-00600: internal error code, arguments: [17113], [0x000000000],
[], [], [], [], [], []
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s],
[%s], [%s], [%s], [%s]"
*Cause: This is the generic internal error number for Oracle program
exceptions. This indicates that a process has encountered an
exceptional condition.
*Action: Report as a bug - the first argument is the internal error number
从命令行第26行开始出错:
CREATE UNIQUE INDEX I_SNAP$_TTMU_LAVORAZIONE_T
ON TTMU_LAVORAZIONE_TT (M_ROW$$ ASC)
TABLESPACE "TTSTAT_DATA"
LOGGING
PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE
(
INITIAL 5M
NEXT 5M
MINEXTENTS 1
MAXEXTENTS 2147483645
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
)
命令行错误:26列:0 错误报告: SQL错误:已关闭连接
答案 0 :(得分:3)
行动非常明确:
*操作:报告错误 - 第一个参数是内部错误号
这是一个内部错误。按照Oracle support site上的注释[ID 153788.1] 使用错误查找工具排除ORA-600或ORA-7445错误的说明进行操作。
答案 1 :(得分:0)
你必须: - 删除快照/ mview - 删除主表上的快照日志 - 在主表上创建新的快照日志 - 重新创建mview并将create语句简化为以下内容:
CREATE MATERIALIZED VIEW TTMU_LAVORAZIONE_TT
TABLESPACE "TTSTAT_DATA"
REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 5/1440
WITH ROWID
AS
SELECT T288.C1,C2,C3,C4,C5,C6,C7,C8,C536870915,C536870916,C536870917,
C536870918,C536870919,C536870920,C536870921,C536870922,C536870927,
C536870928,C536870929,C536870930,C536870931,C536870932,C536870933,
C536870937,C536870939,C536870940,C536870941,C536870942,C536870945,
C536870951,C536870952,C536870953,C536870954,C536870955,C536870956,
C536870957,C536870959,C536870961,C536870962,C536870965,C536871100
FROM T288@STAT2TTM.WORLD;
上面将添加刷新dbms_job,每隔5分钟使表更新一次。您可以更改它以满足您的要求。
创建后,您必须运行:
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'C');
exec dbms_snapshot.refresh("TTMU_LAVORAZIONE_TT",'F');
应该照顾它。如果表格很大,您将需要使用替代方法。我不知道大小,所以我假设不是太大。
答案 2 :(得分:0)
检查数据库的警报日志,以获取有关数据库中可能发生的情况的线索。这可能会指向一个或多个跟踪文件,其中可以找到有关该问题的更多信息。有时你可以自己解决问题。