我做出了一个视图,该视图经常使用动态SQL更改其列。我使用枢轴将行变成列。我在交互式网格中显示视图。执行的SQL查询:
select * from <DB>.<VIEWNAME>.
刷新后,它会更新网格中的行,而不会更新列。如果我通过添加空格(或查询中的任何其他内容)并随后将页面保存在页面设计器中来更改SQL查询,则select *不考虑列更改,但是同步到视图。 有人知道我的问题很好的解决方案吗?在哪里可以找到执行此刷新的过程?如果我知道它在哪里,可以在插入列(或删除/更新)后使用它。有小费吗?警告,我是oracle apex和sql developer的新手。
谢谢!
答案 0 :(得分:1)
这是错误的解决方法。在Apex和Oracle中,通常在分析查询时确定列。如果更改基础结构,则必须重新解析查询,然后列才会更改。
考虑一下。如果结果集中的第一列是DATE
,并且您将Apex列属性设置为格式化并显示该数据,则查询更改为NUMBER
,尚不清楚会发生什么。
您可能想做的是基于一个返回SQL查询为VARCHAR2
的函数创建您的区域。 (我认为您可以在18.x中执行此操作;我仍然主要使用5.2。)当显示区域时,将解析您的函数。如果名称是动态的,甚至可以使用另一个函数返回以冒号分隔的列标题列表。