How can I list all user-owned functions?
-
16-10-2019 - |
Question
Is there a way to quickly list all the current user-owned functions in Oracle?
Something along the same lines as this, which lists the current user's tables
select * from user_tables;
Solution
The answer you are probably looking for is
select * from user_objects where object_type = 'FUNCTION';
However this won't return a list of packaged functions. I'm not aware of anyway of returning these other than by querying user_objects for objects of type 'PACKAGE' and then describing each in turn. Someone with a developer hat on might be able to answer the packaged function part of the question.
OTHER TIPS
You can list any user owned objects by querying the user_objects table.
To do this for functions:
select object_name from user_objects where object_type = 'FUNCTION';
This table can also show other objects, like procedures and packages.
The user_objects table is supplemented by the table all_objects, which contains all the objects the current user has access to (i.e. grants to tables in other schemas etc).
The object_types this can be queried for on both tables is as follows:
select distinct object_type from all_objects;
OBJECT_TYPE
-------------------
JOB CLASS
INDEXTYPE
PROCEDURE
JAVA CLASS
SCHEDULE
WINDOW
WINDOW GROUP
JAVA RESOURCE
TABLE
TYPE
VIEW
FUNCTION
PROGRAM
SYNONYM
CONSUMER GROUP
EVALUATION CONTEXT
OPERATOR
PACKAGE
SEQUENCE
XML SCHEMA