11.2. ALL_OBJECTS View

The main objective of PLVobj is to provide a programmatic interface to the ALL_OBJECTS view. This data dictionary view has the following columns:

Name             Null?    Type
 ---------------- -------- ----
 OWNER            NOT NULL VARCHAR2(30)
 OBJECT_NAME      NOT NULL VARCHAR2(30)
 OBJECT_ID        NOT NULL NUMBER
 OBJECT_TYPE               VARCHAR2(12)
 CREATED          NOT NULL DATE
 LAST_DDL_TIME    NOT NULL DATE
 TIMESTAMP                 VARCHAR2(75)
 STATUS                    VARCHAR2(7)

It contains a row for every stored code object to which you have execute access (the USER_OBJECTS view contains a row for each stored code object you created). The OWNER is the schema that owns the program unit.

object_name

The name of the object.

object_type

The type of the object, which is one of the following: package, package body, procedure, function, or synonym.

object_id

An internal pointer used to quickly obtain related information about the object in other data dictionary views.

last_ddl_time

Stores the date and timestamp when this object was last compiled into the database.

Status column

Either VALID or INVALID. This column is set by the Oracle Server as it maintains dependencies and performs compiles.

Without a package like PLVobj, every time you wanted to read from this view, you would need to write a SELECT statement in SQL*Plus or, in PL/SQL, define a cursor, and then do the "cursor thing." You would need to understand the complexities of the ALL_OBJECTS view (for example, all names are uppercased unless you created the object with double quotes ...

Get Advanced Oracle PL/SQL Programming with Packages now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.