행위

"ORACLE 프로시져"의 두 판 사이의 차이

DB CAFE

(프로시져)
3번째 줄: 3번째 줄:
 
== 프로시져 소스 조회 ==
 
== 프로시져 소스 조회 ==
  
<syntaxhighlight lang="sql">
+
<source lang="sql">
 
SELECT *
 
SELECT *
 
   FROM DBA_SOURCE
 
   FROM DBA_SOURCE
 
  WHERE TYPE='PROCEDURE'
 
  WHERE TYPE='PROCEDURE'
 
   AND TEXT LIKE '%PROD_ID%';
 
   AND TEXT LIKE '%PROD_ID%';
</syntaxhighlight>
+
</source>
  
  
18번째 줄: 18번째 줄:
 
*/
 
*/
  
<syntaxhighlight lang="sql">  
+
<source lang="sql">  
 
SELECT * FROM DBA_OBJECTS B  
 
SELECT * FROM DBA_OBJECTS B  
 
  WHERE B.OWNER =:IN_OWNER  
 
  WHERE B.OWNER =:IN_OWNER  
31번째 줄: 31번째 줄:
 
                       AND A.TEXT LIKE '%NAME%');
 
                       AND A.TEXT LIKE '%NAME%');
  
</syntaxhighlight>
+
</source>

2018년 8월 22일 (수) 16:02 판

thumb_up 추천메뉴 바로가기


1 프로시져[편집]

1.1 프로시져 소스 조회[편집]

SELECT *
  FROM DBA_SOURCE
 WHERE TYPE='PROCEDURE'
   AND TEXT LIKE '%PROD_ID%';


1.2 패키지에서 주석처리 되지 않은 항목 조회[편집]

/*

오라클 사용자가 사용하는 패키지의 BODY 소스를 검색하여

  주식이 없거나 패턴이 맞지 않는 항목을 조회 한다.
  • /
SELECT * FROM DBA_OBJECTS B 
 WHERE B.OWNER =:IN_OWNER 
   AND B.OBJECT_TYPE = 'PACKAGE BODY' 
   AND B.STATUS <> 'INVALID' -- VALID 상태만 조회, 만약 INVALID 된다고 해도 패키지를 수행하는 순간 컴파일 됨. 
   AND NOT EXISTS (SELECT 1
                     FROM DBA_SOURCE A
                    WHERE A.OWNER = B.OWNER
                      AND A.TYPE = B.OBJECT_TYPE
                      AND A.NAME = B.OBJECT_NAME
                      AND A.LINE <= 5
                      AND A.TEXT LIKE '%NAME%');