오라클의 테이블 수
MySQL에 "SHOW TABLES"가 있는 것처럼 Oracle DB에서 테이블 수를 어떻게 계산합니까?약간의 연구를 통해 저는 다음과 같은 질문을 받았습니다.
select owner, count(*) from dba_tables
MySQL에 표준 명령이 있는 것처럼 Oracle에도 표준 명령이 있습니까?
시도:
SELECT COUNT(*) FROM USER_TABLES;
글쎄요, 저는 제 컴퓨터에 오라클이 없습니다. 저는 mysql을 실행합니다(OP 코멘트).
작성 당시 이 사이트는 다양한 데이터베이스 유형에서 테스트하기에 적합했습니다.
네, 당신의 질문은 확실히 작동할 것입니다. 조금만 수정하면 됩니다.참조는 여기를 참조하십시오. http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
실행:
SELECT TABLE_NAME FROM DBA_TABLES;
테이블 목록을 가져옵니다.
실행:
SELECT Count(*) FROM DBA_TABLES;
테이블 개수를 확인합니다.
count 선택((*) all_count_from(여기서 owner='count_name')
다음 문서에서는 데이터 사전 보기에 대해 설명합니다.
all_filename: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4473.htm#REFRN26286
user_filename: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2105.htm#i1592091
dba_message: http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_4155.htm#i1627762
이러한 보기에 대한 쿼리를 실행하여 필요한 항목을 계산할 수 있습니다.
@Anurag Thakre의 답변에 무언가를 더 추가하려면:
소유자에 대한 실제 카운트 수를 제공하는 이 쿼리를 사용합니다.
SELECT COUNT(*),tablespace_name FROM USER_TABLES group by tablespace_name;
또는 테이블 소유자별:
SELECT COUNT(*), owner FROM ALL_TABLES group by owner;
테이블스페이스 자체는 고유한 객체 소유자를 식별하지 않습니다.여러 사용자가 동일한 테이블스페이스에 개체를 생성할 수 있으며 단일 사용자가 다양한 테이블스페이스에 개체를 생성할 수 있습니다.테이블과 인덱스를 서로 다른 테이블스페이스로 구분하는 것이 일반적입니다.
제가 사용하는 것 중 가장 간단한 것은 아래와 같습니다.
select owner, count(*) from dba_tables group by owner;
소유자 목록과 소유자당 테이블 수를 보려면 다음을 시도하십시오.
SELECT distinct owner, count(table_name) FROM dba_tables GROUP BY owner;
특정 스키마/사용자에 속하는 테이블의 수를 알고 싶다면 다음과 유사한 SQL도 사용할 수 있습니다.
SELECT Count(*) FROM DBA_TABLES where OWNER like 'PART_OF_NAME%';
REM setting current_schema is required as the 2nd query depends on the current user referred in the session
ALTER SESSION SET CURRENT_SCHEMA=TABLE_OWNER;
SELECT table_name,
TO_NUMBER (
EXTRACTVALUE (
xmltype (
DBMS_XMLGEN.getxml ('select count(*) c from ' || table_name)),
'/ROWSET/ROW/C'))
COUNT
FROM dba_tables
WHERE owner = 'TABLE_OWNER'
ORDER BY COUNT DESC;
테이블 소유자와 관련된 실제 카운트 수를 제공하는 이 쿼리를 사용
SELECT COUNT(*),tablespace_name FROM USER_TABLES group by tablespace_name;
select COUNT(*) from ALL_ALL_TABLES where OWNER='<Database-name>';
.....
이 쿼리는 특정 스키마에서 카운트되는 모든 개체를 찾습니다.
select owner, object_type, count(*) from dba_objects where owner='owner_name' group by owner, object_type order by 3 desc;
언급URL : https://stackoverflow.com/questions/5062809/count-number-of-tables-in-oracle
'programing' 카테고리의 다른 글
Windows에서 strptime()과 동등합니까? (0) | 2023.06.09 |
---|---|
HttpRequest 대 HttpRequestMessage 대 HttpRequestBase (0) | 2023.06.09 |
기능을 병렬로 실행하는 방법은 무엇입니까? (0) | 2023.06.09 |
IE의 호환성 모드를 서버 측에서 강제로 해제하는 방법은 무엇입니까? (0) | 2023.06.09 |
목표-C 클래스에서 C 함수 혼합 (0) | 2023.06.09 |