Oracle APEX自动列在区域中的添加/删除

时间:2019-03-01 14:55:50

标签: oracle oracle-apex

我做出了一个视图,该视图经常使用动态SQL更改其列。我使用枢轴将行变成列。我在交互式网格中显示视图。执行的SQL查询:

select * from <DB>.<VIEWNAME>. 

刷新后,它会更新网格中的,而不会更新。如果我通过添加空格(或查询中的任何其他内容)并随后将页面保存在页面设计器中来更改SQL查询,则select *不考虑列更改,但是同步到视图。 有人知道我的问题很好的解决方案吗?在哪里可以找到执行此刷新的过程?如果我知道它在哪里,可以在插入列(或删除/更新)后使用它。有小费吗?警告,我是oracle apex和sql developer的新手。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是错误的解决方法。在Apex和Oracle中,通常在分析查询时确定列。如果更改基础结构,则必须重新解析查询,然后列才会更改。

考虑一下。如果结果集中的第一列是DATE,并且您将Apex列属性设置为格式化并显示该数据,则查询更改为NUMBER,尚不清楚会发生什么。

您可能想做的是基于一个返回SQL查询为VARCHAR2的函数创建您的区域。 (我认为您可以在18.x中执行此操作;我仍然主要使用5.2。)当显示区域时,将解析您的函数。如果名称是动态的,甚至可以使用另一个函数返回以冒号分隔的列标题列表。