Oracle에서 저장 프로시저를 포함한 개체를 검색하는 SQL
Oracle 데이터베이스의 모든 개체를 쿼리할 수 있는 SQL을 작성해야 합니다.유감스럽게도 우리가 사용할 수 있는 도구에는 이것이 내장되어 있지 않습니다.기본적으로 모든 테이블, 절차, 트리거, 뷰 등을 검색해야 합니다.
개체 이름을 검색하는 방법을 알고 있습니다.단, 오브젝트의 내용을 검색해야 합니다.예를 들어 SELECT * FROM DBA_OBJETES WHERE object_name = '%search string%';
고마워 글렌
질문을 잘 이해했는지 모르겠지만 특정 검색 문자열을 데이터베이스에서 검색하려면 다음을 시도해 보십시오.
SELECT owner, name, type, line, text
FROM dba_source
WHERE instr(UPPER(text), UPPER(:srch_str)) > 0;
여기서 더 필요한 정보가 있으면 오브젝트/라인 번호를 조회할 수 있습니다.
뷰의 경우 다음을 사용할 수 있습니다.
SELECT *
FROM dba_views
WHERE instr(UPPER(text_vc), UPPER(:srch_str)) > 0
제가 당신을 이해했는지 잘 모르겠습니다만, "user_source" 테이블에서 시도할 수 있는 트리거, 프로시저, 패키지 및 함수의 소스 코드를 조회합니다.
select * from user_source
DBA_를 사용합니다.SOURCE(액세스 권한이 있는 경우) 필요한 개체가 로그인한 스키마에 의해 소유되지 않으면 표시되지 않기 때문입니다.
패키지 내의 기능과 Proc를 알고 싶다면 다음과 같이 시도해 보십시오.
select * from all_source
where type = 'PACKAGE'
and (upper(text) like '%FUNCTION%' or upper(text) like '%PROCEDURE%')
and owner != 'SYS';
마지막 행은 모든 sys stuff(DBMS_et al)가 반환되지 않도록 합니다.사용자 고유의 스키마만 필요한 경우 user_source에서 사용할 수 있습니다.
특정 테이블을 사용하는 모든 절차를 찾다가 이 질문에 도달했습니다.
Oracle SQL Developer는 이 기능을 제공합니다.https://www.thatjeffsmith.com/archive/2012/09/search-and-browse-database-objects-with-oracle-sql-developer/
[View] 메뉴에서 [Find DB Object]를 선택합니다.DB 연결을 선택합니다.테이블의 이름을 입력합니다.개체 유형에는 함수, 절차 및 패키지만 보관합니다.코드 섹션에서 모든 소스 라인을 선택합니다.
ALL_SOURCE는 현재 사용자가 액세스할 수 있는 저장된 개체의 텍스트 소스를 나타냅니다.
여기 해결책 중 하나가 있습니다.
select * from ALL_SOURCE where text like '%some string%';
Oracle 11g에서는 데이터베이스 전체 또는 아래의 절차에서 텍스트를 검색하려면 다음 쿼리를 사용할 수 있습니다.
user_source WHERE UPER(텍스트)에서 '%YOUR SEGE%'와 같은 *를 선택합니다.
언급URL : https://stackoverflow.com/questions/853547/sql-to-search-objects-including-stored-procedures-in-oracle
'programing' 카테고리의 다른 글
@RequestParam()에서 기본값을 정수로 지정하는 방법 (0) | 2023.03.09 |
---|---|
게시 유형 이름과 다른 아카이브 슬러그를 사용하여 사용자 지정 게시 유형을 만드는 방법 (0) | 2023.03.09 |
Wordpress의 스택 오버플로 형식 (0) | 2023.03.09 |
Oracle에서 Enum을 사용하는 방법 (0) | 2023.03.09 |
스프링 부트에서 applicationContext.xml을 자동으로 Import합니까? (0) | 2023.03.09 |