为何Oracle数据库没有all_functions表?已有all_tables等相关表
ALL_FUNCTIONS View in Oracle Great question! Let me break down the reasoning behind this Oracle data dictionary quirk:
Oracle lumps functions and procedures into the same category
In Oracle's metadata architecture, functions and stored procedures are both treated as program units. Instead of splitting them into separate views, Oracle combines them inALL_PROCEDURES. You can easily distinguish between them using theOBJECT_TYPEcolumn: it will showFUNCTIONfor functions andPROCEDUREfor stored procedures.How to get function-specific data
If you need to query only the functions you have access to, just filter theALL_PROCEDURESview with a simple condition:SELECT owner, object_name, procedure_name FROM all_procedures WHERE object_type = 'FUNCTION';This gives you exactly the dataset you'd expect from a hypothetical
ALL_FUNCTIONSview.Historical design logic
Oracle's data dictionary has evolved over decades, and this grouping aligns with how the database internally manages these objects. Since functions and procedures share core attributes (like owner, name, accessibility), maintaining a single view avoids redundancy and keeps the data dictionary streamlined.
内容的提问来源于stack exchange,提问作者Sourav Deb

