从存储过程刷新物化视图时出错(不是有效月份)

Posted

技术标签:

【中文标题】从存储过程刷新物化视图时出错(不是有效月份)【英文标题】:Error refreshing materialized view from a stored procedure (not a valid month) 【发布时间】:2017-08-28 19:10:34 【问题描述】:

我正在尝试从存储过程刷新物化视图,我命令从 csharp 调用该过程,但是刷新视图时它向我发送错误:ORA-12008:物化视图刷新路径中的错误,然后是:ORA -01843: 不是一个有效的月份,我用另一个视图尝试过,是的,它令人耳目一新,对这个细节有帮助吗?

附上图片

这是我的代码:

我没有传递参数和日期,我只是想从 C# Visual Studio 刷新视图

  string oradb = "Data Source=DATA; User Id=DATA; Password=DATA;";
            OracleConnection conn = new OracleConnection(oradb);
            conn.Open();
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.CommandText = "ACTUALIZA_VISTAS_VRE";
            //cmd.CommandText = "exec REFRESH_RECUPERADO";
            cmd.ExecuteNonQuery();
            conn.Close();

【问题讨论】:

你是如何传递日期的..?你能告诉我们..吗?数据库中 Oracle 日期的预期格式是什么..?您是通过 mm/dd/yyyy` 还是 DD-MON-YYYY 传递它,请尽可能多地显示与您当前的问题和/或问题相关的代码.. @DanyMartinez_ 请在格式化块中使用此代码更新问题。另外,我没有在那里看到约会。日期到底是从哪里来的? 我编辑并添加了代码。 我没有将日期作为参数传递,我只是尝试使用存储过程更新视图。 MV 中的 SQL 必须尝试进行日期转换。源数据中的某些值不是预期的格式。 【参考方案1】:

存储过程或物化视图是提供无效月份的代码所在的位置。 ACTUALIZA_VISTAS_VRE 是否在调用 REFRESH_RECUPERADO?

【讨论】:

以上是关于从存储过程刷新物化视图时出错(不是有效月份)的主要内容,如果未能解决你的问题,请参考以下文章

oracle如何刷新物化视图

SQL Server 2005 视图与物化视图与存储过程

物化视图在NEEDS_COMPILE状态下刷新

刷新物化视图时,索引是不是也会自动刷新?

oracle物化视图不会自动更新是怎么回事

Oracle查询库中已有存储过程创建定时刷新视图角色权限传递创建序列触发器