在某些背景下,我正在学习使用Oracle Apex,目前,我的页面上有两个下拉列表。第一个下拉列表显示可用的数据库。第二个下拉列表链接到第一个下拉列表,因为它将显示与在第一个下拉列表中选择的数据库关联的表。选择数据库后,会在同一页面上生成一个甜甜圈图,显示其每个关联表所使用的空间量。
通过从第二个下拉列表中选择一个表,会在甜甜圈图下方生成一个堆积图,显示在任何特定日期该表使用了多少空间,还有多少可用存储空间。所有这些都在同一页面上。
所以我遇到的问题是,我想向甜甜圈图添加下钻功能,因为当用户选择甜甜圈图的一个段(代表一个表)时,相关的堆栈图应显示在甜甜圈图下方。我曾尝试调整在线解决方案,但没有用。
我用来生成甜甜圈图的SQL是:
SELECT NULL LINK, null, tablespace_name AS label, ROUND(
SUM(on_disk_size_mb ) / 1024 ) AS space_gb FROM
database_tablespaces WHERE ( database_name, tablespace_name,
last_seen )
IN (SELECT database_name, tablespace_name, MAX(last_seen) FROM database_tablespaces
GROUP BY database_name, tablespace_name)
GROUP BY NULL, tablespace_name
UNION ALL
SELECT NULL LINK, null, 'Free' "Database", ROUND(MAX(on_disk_free_mb)/1024) AS "Space
(GB)" FROM database_tablespaces WHERE (database_name,
tablespace_name, last_seen)
IN (SELECT database_name, tablespace_name, MAX(last_seen) FROM database_tablespaces
GROUP BY NULL, database_name, tablespace_name)
这显示了我正在使用多少空间以及多少空闲空间。
我用来生成堆积图的SQL是:
SELECT 'f?p=' || :APP_ID || ':5:' || :APP_SESSION || '::NO:::' LINK,
SUM( ON_DISK_SIZE_MB ), SUM( ON_DISK_FREE_MB ), TO_CHAR(TRUNC( LAST_SEEN), 'DD/MM/YYYY' ) FROM database_tablespaces
WHERE LAST_SEEN > SYSDATE - 180 AND Tablespace_name = 'DATA'
GROUP BY TRUNC(LAST_SEEN)
ORDER BY TRUNC(LAST_SEEN) ASC
在线解决方案规定在select语句中添加f?p = ...,并在两个SQL代码中添加LINK别名。我尝试了所有可以想到的排列方式,以使追溯功能正常运行,但没有成功。
因此,我希望精通Oracle Apex和SQL的人可以实现这一目标?