programing

Oracle 데이터베이스의 모든 기능 및 절차 목록 가져오기

subpage 2023. 3. 5. 09:48
반응형

Oracle 데이터베이스의 모든 기능 및 절차 목록 가져오기

3개의 Oracle 스키마를 비교하고 있습니다.

각 데이터베이스에서 사용되는 모든 기능 및 절차 목록을 받고 싶습니다.쿼리를 통해 이것이 가능합니까? (가급적이면 컴파일 여부에 대한 플래그를 포함하는 것이 좋습니다.)

이상적으로는 각 스키마에 함수/프로시저가 있는지 여부를 나타내는 플래그가 포함된 단일 쿼리를 갖는 것이 좋습니다.그러나 각 스키마를 수동으로 검사하는 것보다는 첫 번째 비트만 검사하는 것이 좋습니다.

SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE')

STATUS 열은 개체가 VALID인지 INVALID인지를 나타냅니다.유효하지 않은 경우 재컴파일을 시도해야 합니다. ORACLE은 재컴파일이 실행될지 여부를 알려줄 수 없습니다.

dba_arguments, dba_errors, dba_procedures, dba_objects, dba_source, dba_object_size에 대해 설명합니다.이것들은 각각 순서와 기능을 보기 위한 그림의 일부를 가지고 있다.

또한 패키지의 dba_objects의 object_type은 정의의 경우 'PACKAGE', 본문의 경우 'PACKAGE BODY'입니다.

같은 데이터베이스상의 스키마를 비교하는 경우는, 다음의 조작을 실시해 주세요.

select * from dba_objects 
   where schema_name = 'ASCHEMA' 
     and object_type in ( 'PROCEDURE', 'PACKAGE', 'FUNCTION', 'PACKAGE BODY' )
minus
select * from dba_objects 
where schema_name = 'BSCHEMA' 
  and object_type in ( 'PROCEDURE', 'PACKAGE', 'FUNCTION', 'PACKAGE BODY' )

ASCHEMA와 BSHEMA의 순서를 바꿉니다.

또한 트리거와 스키마 간의 다른 비교가 필요한 경우 스키마 비교에 대한 Ask Tom 관련 기사를 참조하십시오.

 SELECT * FROM all_procedures WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE') 
 and owner = 'Schema_name' order by object_name

여기서 'Schema_name'은 스키마의 이름입니다.예: i는 PMIS라는 이름의 스키마를 가지고 있습니다.예:

SELECT * FROM all_procedures WHERE OBJECT_TYPE IN ('FUNCTION','PROCEDURE','PACKAGE') 
and owner = 'PMIS' order by object_name

여기에 이미지 설명 입력

참고 자료: https://www.plsql.co/list-all-procedures-from-a-schema-of-oracle-database.html

언급URL : https://stackoverflow.com/questions/1819447/get-a-list-of-all-functions-and-procedures-in-an-oracle-database

반응형