Oracle APEX 交互式网格在底层物化视图更改时不会更改

Oracle APEX interactive grid does not change when underlying materialized view changes

我有一个基于物化视图的交互式网格。查询很简单SELECT * FROM MY_MATERIALIZED_VIEW。我在物化视图中添加了几列并刷新了它。然后我刷新了 APEX 页面,但没有显示新列。是我做错了什么,还是我需要手动将这些列添加到 APEX 端的网格中,并且 select 源作为数据库列?

据我所知,这是你提到的第二个选项。 Apex 使用页面的 "old" 物化视图定义并且不知道您所做的任何更改。它显示旧布局。但是,如果您添加了 NOT NULL 列并尝试将新添加的行保存到当前网格,它 中断。

所以,是的 - 您必须手动添加这些列。或者,如果交互式网格足够简单(即您没有做太多更改),也许删除此区域并使用向导创建一个新区域会更简单。


正如帕特里克评论的那样(最好将其保留在此处而不是在评论中),最新(18.x 及更高版本)Apex 版本提供了一个不错的选择:同步列,右键单击交互式网格的节点时,在上下文菜单中可用。它会将新添加的列添加到交互式网格中,因此您不必重新创建区域。