2009-06-05 4 views

답변

23

DBA_OBJECTS보기가 나열됩니다 절차 (뿐만 아니라 거의 모든 다른 물체) :

SELECT owner, object_name 
FROM dba_objects 
WHERE object_type = 'PROCEDURE' 

DBA_SOURCE보기는 해당 절차에 대한 소스 코드의 라인을 나열합니다 :

SELECT line, text 
FROM dba_source 
WHERE owner = ? 
    AND name = ? 
    AND type = 'PROCEDURE' 
ORDER BY line 

:이 권한에 따라, 당신은 DBA_OBJECTSDBA_SOURCE 뷰를 쿼리 할 수 ​​없습니다. 이 경우 대신 ALL_OBJECTSALL_SOURCE을 사용할 수 있습니다. DBA_보기에는 데이터베이스에 모두 개체가 포함되어 있으며 ALL_보기에는 액세스 할 수있는 개체 만 포함되어 있습니다.

+1

('PROCEDURE', 'FUNCTION', 'PACKAGE')에 object_type을 사용하여 가능한 모든 소스 코드를 얻으 려합니다. –

+0

죄송합니다. 여기에 오라클 놈이 있습니다. 그보기/표를 볼 수 없습니다. 그것은 내가 잘못된 사용자로 로그인하고 있다는 것을 의미합니까? –

+0

이러한 뷰를 쿼리하는 데 필요한 권한이 없을 수 있습니다. 대신 ALL_OBJECTS 및 ALL_SOURCE를 시도 할 수 있습니다. –

0

당신이 (등 매개 변수) 저장 프로 시저를 성찰하는 모든 통화를 얻고 싶은 경우에, 당신이 오픈 소스 패키지 밖으로 당겨 수 있습니다

http://code.google.com/p/orapig

OraPIG 오라클 파이썬 인터페이스 생성기입니다. 그것은 oracle 패키지를 내성적으로 검사하여 파이썬 래퍼를 생성합니다. 내가 DBA_OBJECTS에서 열거하는 생각

0

는 절차의 많은 손실이 발생했을 : (나는 오라클 12C 오전 SYS로 로그인) 정말 전체 Oracle 데이터베이스는 (202)를 가질 수 없다 보았다

select count(*) from dba_objects where object_type = 'PROCEDURE'; 
     202 

절차. SYS에 속하는

ANONYMOUS 저장 프로 시저에 대한 쿼리 (http://www.praetoriate.com/t_high_perform_calling_procedures.htm) :

그리고 DBA_PROCEDURES에서 쿼리 :

select owner||'-'||object_name || '-'||procedure_name from 
dba_procedures WHERE PROCEDURE_NAME IS NOT NULL; 

26539 rows selected. 

이제 (나의 고유하지 않음) 모든 데이터베이스에 대한 기본을 제공 SYS 스키마에 집중 :

select owner||'-'||object_name || '-'||procedure_name from dba_procedures WHERE PROCEDURE_NAME IS NULL and owner = 'SYS'; 
994 rows selected. 

그리고 SYS의 익명이 아닌 저장 프로 시저 15K 있습니다

,536,
select owner||'-'||object_name || '-'||procedure_name from dba_procedures WHERE PROCEDURE_NAME IS NOT NULL and owner = 'SYS'; 
15408 rows 
관련 문제