列出数据库中所有用户的自定义包?
Posted
技术标签:
【中文标题】列出数据库中所有用户的自定义包?【英文标题】:LIst out the custom packages from all users in database? 【发布时间】:2015-07-10 09:19:28 【问题描述】:我需要数据库中所有用户想要自定义包的过程,我正在逐步解释,我需要查询或一些关于如何显示和选择特定用户的线索。
1.列出数据库中已有的用户。
2.我们必须通过输入法选择一个特定的用户示例Ranjith。
3.选择用户后应显示所选用户的自定义包。
4.下一步应该显示您已经选择用户的所有自定义包的源代码。
1.SELECT USERNAME FROM DBA_USERS(它将显示数据库中的所有用户,之后我需要选择特定用户来显示自定义包)
谢谢。
【问题讨论】:
首先,需求不明确。你想在哪里显示你的数据,在一个摇摆应用程序中,在控制台中?您如何尝试访问数据库?什么是数据库结构?这不够具体,您需要展示您尝试过的内容,没有人会为您编写完整的解决方案。 其实这是我的任务,所以我只需要在本地机器上显示用户,所以我理论上给出了 如果你想显示来自 db 的用户意味着我们将使用 SELECT USERNAME FROM DBA_USERS 在显示像 10 个用户之后,我如何选择特定用户并显示自定义包 我完全需要如下输出: 1. DB 的所有用户名 2.它应该提示我任何我想要详细信息的用户 3.对于特定用户选择显示所有包 4.显示源代码对于特定包所有这些语句我都需要它在一个 PL/SQL 程序中。提前感谢 solutn 【参考方案1】:select object_name from dba_OBJECTs where owner = 'schema' and object_type in ('FUNCTION','PACKAGE','PROCEDURE'); -- get user function,pkg, procedure.
select * from dba_source where owner = 'schema' and name = 'object_name' order by type,line asc; -- view source of objects.
如果要提取对象的 ddl,请使用 dbms_metadata。
select name,text from dba_source where owner = 'user' and type in ('PACKAGE' ,'PACKAGE BODY','FUNCTION','PROCEDURE')
order by name,type,line asc; -- return all source code for specifed user
【讨论】:
我需要你的更多 Arkadiusz Łukasiewicz。我的要求是显示所有用户,然后它应该提示选择所有用户中的任何用户。然后让特定用户显示所有包。一旦该用户下列出的包我们需要所有包的源代码。 但是你有什么问题 我完全需要如下输出: 首先查询指定用户的所有包、函数和过程的返回列表。第二个查询可以逐行返回指定用户和object_name(例如包名)的源代码。 我完全需要如下输出: 1. DB 的所有用户名 2.它应该提示我任何我想要详细信息的用户 3.对于特定用户选择显示所有包 4.显示源代码对于特定包所有这些语句我都需要它在一个 PL/SQL 程序中。提前感谢 solutn以上是关于列出数据库中所有用户的自定义包?的主要内容,如果未能解决你的问题,请参考以下文章