在 Oracle Database 11g XE 中,如何从已删除工作区的应用程序构建器中删除应用程序?
In Oracle Database 11g XE, how do I delete applications from the application builder from a deleted workspace?
我刚刚开始使用 Oracle Database 11g XE 学习 SQL 和数据库。我注意到在 Application Builder 部分下总是有一个示例应用程序,application_ID 是第一个工作区的 100。当我创建一个新工作区时,这个示例应用程序在新工作区中的 ID 会相应增加,因此对于我的第二个工作区,它是 101,依此类推。但是如果我删除一个工作区,而不先删除它的应用程序,新应用程序的 ID 仍然会增加,这让我认为即使在我删除工作区并删除用户之后应用程序仍然存在于某个地方......他们不会出现在任何地方,甚至不出现在管理视图中......我如何才能找到并删除这些不再属于任何工作区的示例应用程序?谢谢
注意:如果我在删除工作区之前删除示例应用程序,那么下一个新工作区将具有与示例应用程序相同的 ID,所以这就是为什么我相信这些应用程序在我不删除时仍然存在未删除的某个地方在删除工作区之前删除应用程序。
据我所知,一旦您删除了工作区,它的所有应用程序(以及其他一切 - 共享组件等)也会随之删除。示例应用程序 ID 不断增加的事实 - 在我看来 - 取决于使用某种 "smart counter" / "sequence" 的某种 内部机制 ,即如果您删除一个应用程序它会减少,但是 - 如果你删除一个工作区,它不会。请注意,这只是我的意见,我不知道它到底是如何工作的。
无论如何:要检查您当前拥有的应用程序,请以特权用户(例如 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>
我刚刚开始使用 Oracle Database 11g XE 学习 SQL 和数据库。我注意到在 Application Builder 部分下总是有一个示例应用程序,application_ID 是第一个工作区的 100。当我创建一个新工作区时,这个示例应用程序在新工作区中的 ID 会相应增加,因此对于我的第二个工作区,它是 101,依此类推。但是如果我删除一个工作区,而不先删除它的应用程序,新应用程序的 ID 仍然会增加,这让我认为即使在我删除工作区并删除用户之后应用程序仍然存在于某个地方......他们不会出现在任何地方,甚至不出现在管理视图中......我如何才能找到并删除这些不再属于任何工作区的示例应用程序?谢谢
注意:如果我在删除工作区之前删除示例应用程序,那么下一个新工作区将具有与示例应用程序相同的 ID,所以这就是为什么我相信这些应用程序在我不删除时仍然存在未删除的某个地方在删除工作区之前删除应用程序。
据我所知,一旦您删除了工作区,它的所有应用程序(以及其他一切 - 共享组件等)也会随之删除。示例应用程序 ID 不断增加的事实 - 在我看来 - 取决于使用某种 "smart counter" / "sequence" 的某种 内部机制 ,即如果您删除一个应用程序它会减少,但是 - 如果你删除一个工作区,它不会。请注意,这只是我的意见,我不知道它到底是如何工作的。
无论如何:要检查您当前拥有的应用程序,请以特权用户(例如 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>