Объекты, которые принадлежат вашему «аккаунту» - как вы его называете; это «схема» в базе данных Oracle, то есть «пользователь» со всеми его объектами - может быть получен из user_objects
. Примерно так:
Я подключен как пользователь scott
:
SQL> show user
USER is "SCOTT"
Что у меня есть?
SQL> desc user_objects
Name Null? Type
----------------------------------------- -------- ----------------------------
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
NAMESPACE NUMBER
EDITION_NAME VARCHAR2(30)
SQL> select object_type, count(*)
2 from user_objects
3 group by object_type
4 order by object_type;
OBJECT_TYPE COUNT(*)
------------------- ----------
FUNCTION 3
INDEX 6
PROCEDURE 4
SEQUENCE 1
TABLE 14
TRIGGER 2
TYPE 2
VIEW 2
8 rows selected.
Как перечислить все эти объекты?
SQL> select object_name, object_type
2 from user_objects
3 order by object_type, object_name;
OBJECT_NAME OBJECT_TYPE
-------------------- -------------------
EMPLOYEE_FUNCTION FUNCTION
F_SAL FUNCTION
F_TEST FUNCTION
PKA INDEX
PKB INDEX
PK_DEPT INDEX
SYS_C0077379 INDEX
SYS_C0077382 INDEX
SYS_C0077385 INDEX
CHALLAN_TEST PROCEDURE
P_CRV PROCEDURE
P_MAIL PROCEDURE
PRINT_TABLE PROCEDURE
SEQA SEQUENCE
A TABLE
ALLOCATION TABLE
B TABLE
BONUS TABLE
DEPT TABLE
EMP TABLE
EMPLOYEES TABLE
HSTT_SR_MST TABLE
MASTER_TABLE TABLE
NURSE TABLE
ROOM TABLE
SALGRADE TABLE
TEST TABLE
TEST_DEFVAL TABLE
TRG_BI_DEF TRIGGER
TRG_BI_TEST TRIGGER
EMP_OBJ_TYPE TYPE
EMP_TBL_TYPE TYPE
VIEW_EXEC_DATA VIEW
V_MASTER_TABLE VIEW
34 rows selected.
SQL>
Полагаю, это отвечает на ваш вопрос.
В качестве альтернативы, если бы вам пришлось отображать все объекты, к которым у вас есть доступ, вы бы запросили all_objects
. Тогда результат будет совсем другим:
SQL> select object_type, count(*)
2 from all_objects
3 group by object_type
4 order by object_type;
OBJECT_TYPE COUNT(*)
------------------- ----------
CONSUMER GROUP 2
DESTINATION 2
DIRECTORY 1
EDITION 1
EVALUATION CONTEXT 1
FUNCTION 217
INDEX 6
INDEXTYPE 9
JAVA CLASS 28751
JAVA RESOURCE 938
JOB CLASS 2
OPERATOR 55
PACKAGE 553
PROCEDURE 74
PROGRAM 11
SCHEDULE 3
SCHEDULER GROUP 4
SEQUENCE 18
SYNONYM 33399
TABLE 119
TRIGGER 2
TYPE 1569
VIEW 2257
WINDOW 9
XML SCHEMA 53
25 rows selected.
SQL>
Я думаю, вы не хотите перечислять все эти десятки тысяч объектов; это было бы бесполезно. Кроме того, это представление (all_objects
) содержит дополнительное имя столбца: owner
, который показывает, кому принадлежат эти объекты. Некоторые из них принадлежат вам (и вы уже видели их в user_objects
), в то время как большинство из них этого не делают. Включите его в запрос для получения дополнительной информации.
Кроме того, если бы вы были администратором баз данных (или имели соответствующие привилегии), вы бы запросили dba_objects
, которые содержат объекты во всей базе данных. Он также содержит столбец owner
.