행위

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

DB CAFE

(새 문서: = 프로시져 = == 프로시져 소스 조회 == <source lang=sql> SELECT * FROM DBA_SOURCE WHERE TYPE='PROCEDURE' AND TEXT LIKE '%PROD_ID%'; </source>)
 
 
(사용자 2명의 중간 판 18개는 보이지 않습니다)
1번째 줄: 1번째 줄:
= 프로시져 =  
+
 
== 프로시져 소스 조회 ==  
+
== 프로시져 ==
<source lang=sql>
+
 
 +
=== 프로시져 재 컴파일 ===
 +
<source lang="sql">
 +
ALTER PROCEDURE [PROCEDURE NAME] COMPILE;
 +
</source>
 +
<source lang="sql">
 +
SELECT 'ALTER PROCEDURE '||OBJECT_NAME||' COMPILE;' DSQL
 +
  FROM USER_PROCEDURES
 +
WHERE OBJECT_TYPE = 'PROCEDURE'
 +
ORDER BY OBJECT_NAME
 +
;
 +
</source>
 +
 
 +
 
 +
 
 +
=== 프로시져 소스 조회 ===
 +
 
 +
<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%';
 +
</source>
 +
 
 +
== 패키지에서 주석처리 되지 않은 항목 조회 ==
 +
 
 +
오라클 사용자가 사용하는 패키지의 BODY 소스를 검색하여
 +
주석이 없거나 패턴이 맞지 않는 항목을 조회 한다.
 +
 
 +
 
 +
<source lang="sql">
 +
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%');
 +
 
 
</source>
 
</source>
 +
[[Category:oracle]]

2024년 1월 11일 (목) 00:46 기준 최신판

thumb_up 추천메뉴 바로가기


1 프로시져[편집]

1.1 프로시져 재 컴파일[편집]

ALTER PROCEDURE [PROCEDURE NAME] COMPILE;
SELECT 'ALTER PROCEDURE '||OBJECT_NAME||' COMPILE;' DSQL
  FROM USER_PROCEDURES
 WHERE OBJECT_TYPE = 'PROCEDURE'
 ORDER BY OBJECT_NAME
;


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

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

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%');