我们创建了一些物化视图,可以对照实际应用数据的副本 . 该应用程序不会监控自己的数据 . 从那时起,一些用户可能在他们的数据输入中粗心或有创意 . Mview现在窒息死亡 . 错误消息表明我们从一个或多个函数返回多行 .
我们一直在尝试使用EXCEPTIONS - 在第一行object_id的DBMS_Output上取得了一些成功,导致(其中一个)函数失败 . 最好能够完成MView的运行,并记录导致每个函数出现问题的object_ids . 我们没有成功将异常数据插入表中 .
平台是Oracle 10g2 . 我一直试图将DML错误记录塞进我的脑海 . 我知道这应该适用于BULK数据,我假设创建物化视图符合条件 . 这对MViews有用吗?这是最好的方法吗?
1 回答
如果您只是尝试刷新物化视图,我不知道如何使用DML错误日志记录来捕获所有问题行 . 另一方面,您可以创建一个表并在填充表时使用DML错误日志记录来捕获刷新实例化视图时遇到的所有错误 .
可能您可以手动填充此表,然后create a materialized view on this prebuilt table . 这可能会产生问题,具体取决于物化视图的确切使用方式以及启用了哪种查询重写,因为您构建的表将丢失基础表中的一些数据(写入错误日志的行) .
创建表和错误日志
尝试插入10行 . 3将失败,因为
LEVEL
将是3的倍数,并且函数返回的字符串不能转换为数字现在,使用此预构建表来创建物化视图