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

Posted

技术标签:

【中文标题】Oracle APEX 自动在区域中添加/删除列【英文标题】:Oracle APEX automatic column add/remove in region 【发布时间】:2019-03-01 14:55:50 【问题描述】:

我创建了一个视图,可以使用动态 SQL 频繁更改其列。我使用枢轴将行变成列。我在交互式网格中显示视图。执行的 SQL 查询:

select * from <DB>.<VIEWNAME>. 

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

提前致谢!

【问题讨论】:

【参考方案1】:

这是错误的做法。在 Apex 和一般的 Oracle 中,列是在解析查询时确定的。如果更改底层结构,则必须重新解析查询,然后才会更改列。

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

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

【讨论】:

以上是关于Oracle APEX 自动在区域中添加/删除列的主要内容,如果未能解决你的问题,请参考以下文章

在交互式报告中动态隐藏/显示区域(Oracle APEX 5.1)

Oracle APEX 修改工作区域用户名后程序无法使用

oracle apex 只刷新一个区域而不是整个页面

使用卡片区域下载 BLOB 文件 - Oracle Apex v21.1

如何以编程方式将用户添加到 Oracle APEX 4.x 中的访问控制列表?

webadi删除列删不掉