oracle - 在 Oracle Database 11g XE 中,如何从已删除工作区的应用程序构建器中删除应用程序?
问题描述
我刚开始使用 Oracle Database 11g XE 学习 SQL 和数据库。我注意到在应用程序生成器部分下总是有一个示例应用程序,第一个工作区的 application_ID 为 100。当我创建一个新工作区时,这个示例应用程序在新工作区中的 ID 会相应增加,所以对于我的第二个工作区,它是 101,以此类推。但是,如果我删除一个工作区,而不先删除它的应用程序,新应用程序的 id 仍然会增加,这让我认为即使我删除了工作区并删除了用户,该应用程序仍然存在于某个地方......他们没有显示在任何地方,甚至不在管理视图中...如何找到并删除这些不再属于任何工作区的示例应用程序?谢谢
注意:如果我在删除工作区之前删除了示例应用程序,那么下一个新工作区将具有与示例应用程序相同的 ID,这就是为什么我相信当我在删除之前不删除应用程序时这些应用程序仍然存在未删除的地方工作区。
解决方案
据我所知,一旦您删除了工作区,它的所有应用程序(以及其他所有内容 - 共享组件等)都会随之删除。示例应用程序 ID 不断增加的事实 - 在我看来 - 取决于一些使用某种“智能计数器”/“序列”的内部机制,即如果你删除一个应用程序它会减少,但是 - 如果你删除一个工作区,它不是。请注意,这只是我的意见,我不知道它是如何工作的。
无论如何:要检查您当前拥有的应用程序,请以特权用户(例如 SYS)身份连接。首先,检查您拥有哪些 Apex 用户:
SQL> select * From all_users where username like 'APEX%' order by username;
USERNAME USER_ID CREATED
------------------------------ ---------- --------
APEX_INSTANCE_ADMIN_USER 156 01.06.17
APEX_LISTENER 173 05.03.19
APEX_PUBLIC_USER 86 10.10.16
APEX_REST_PUBLIC_USER 174 05.03.19
APEX_050000 87 10.10.16
APEX_050100 154 01.06.17
APEX_180200 178 08.03.19
7 rows selected.
SQL>
然后在某个 Apex 用户中查找应用程序;因为您使用的是 11g XE,并且如果您没有升级 Apex,我相信您已经升级了APEX_040000
(它内置在 11g XE 中)。我没有,但我有其他版本,所以:
SQL> select workspace, application_id, application_name, owner
2 from apex_050100.apex_applications
3 order by application_id;
WORKSPACE APPLICATION_ID APPLICATION_NAME OWNER
--------------- -------------- ------------------------------ ---------------
RNAL 100 Sample Database Application RNAL
WEB 101 Sample Database Application WEB
RNAL 129 Warehouse RNAL
MBUN 130 web_service MBUN
ORAGIS 131 GIS ORAGIS
<snip>