Oracle Procedure소스를 파일로 백업받기(오라클 프로시져별로), 오라클백업교육
프러시져 이름을 읽어 루프 돌면서 소스를 SELECT후 SPOOL 파일로 만드는 겁니다.
현재 디렉토리 아래
procedures 라는 디렉토리를 만든 후 export_procedure.sql을 실행하시면
Procedure이름.PRC 파일이
procedures 폴더에 만들어 집니다...
참고하세요~~~
[export_procedure.sql]
SET SERVEROUTPUT ON SIZE 1000000
SET ECHO OFF VERIFY OFF FEEDBACK
OFF TRIMSPOOL ON PAGES 0 LINES 512
SET TERMOUT OFF
/*
-------------------------------------
--
-- SCRIPT:
export_procedure.sql
--
-- AUTHOR: Jong-Chul, Lee
-------------------------------------
*/
SET TERMOUT ON
PROMPT
PROMPT PROCEDURES export utility
PROMPT
PROMPT This
utilty exports all of the current schema's procedures code into
PROMPT a
subdirectory called procedures.
PROMPT
SET TERMOUT OFF
SPOOL
temp_procedure_extract.sql
PROMPT SET ECHO OFF VERIFY OFF FEEDBACK OFF
TRIMSPOOL ON TERMOUT OFF PAGES 0
LINES 512
DECLARE
/*
|| This cursor extracts each procedure from user_procedures table
*/
CURSOR cur_procedure_code
IS
SELECT distinct
up.object_name,
up.object_name || '.PRC' spool_file
FROM user_procedures up
ORDER BY up.object_name;
BEGIN
FOR cur_procedure_code_row IN cur_procedure_code
LOOP
dbms_output.put_line('spool procedures/' || user || '_' ||
cur_procedure_code_row.spool_file);
dbms_output.put_line('@extract_procedure ' ||
cur_procedure_code_row.object_name );
dbms_output.put_line('spool
off');
END LOOP;
END;
/
SPOOL OFF
@temp_procedure_extract
----------------------------------
[extract_procedure.sql]
----------------------------------
--
Procedure 명을 인자로 받아 소스를 SELECT 합니다.
SET HEAD OFF VERIFY OFF
SET LONG
1000000
/*
---------------------------------------
--
--
SCRIPT: extract_procedure.sql
--
-- AUTHOR: Jong-Chul,
Lee
---------------------------------------
*/
SELECT
b.text
FROM user_procedures a,user_source b
WHERE
a.object_name = '&1'
AND a.object_name = b.name;
PROMPT /
PROMPT
[윤창호]
좋은 방법이네요...
좀 더 간단한 방법이 있어서 소개 드립니다.
이건 프로시져 뿐 아니라 모든 OBJECT의 소스를 받아
볼 수 있구요.
소스를 받아내는 SQL을 만들어 주는 SQL입니다.
SELECT OWNER,'SELECT
DBMS_METADATA.GET_DDL('||''''||OBJECT_TYPE||''''||','||''''||OBJECT_NAME||''''||')'||'||'||''''||';'||''''||'
FROM DUAL ;'
FROM DBA_OBJECTS
WHERE OWNER = 'USER_NAME'
[출처] 오라클자바커뮤니티 -
http://www.oraclejavanew.kr/bbs/board.php?bo_table=oracleTip&wr_id=666
[오프라인 개강예정강좌, 오프라인교육장에 오시면 보다 자세히 배울 수
있습니다.]
오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주간]
[12/02]안드로이드개발자과정
[12/02]iPhone 하이브리드 앱 개발 실무과정
[12/09][기업100%환급]Spring
Framework,MyBatis,Hibernate실무프로젝트과정
[12/16][기업100%환급]PL/SQL,ORACLE HINT,TUNING
[12/23][기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
[12/23][기업100%환급]SQL기초에서 Schema
Object까지
[평일야간]
[12/03]웹퍼블리싱 마스터
[12/03]iPhone하이브리드앱개발실무과정
[12/04]SQL초보에서실전전문가까지
[12/05]Spring3.X, MyBatis, Hibernate실무과정
[12/09]C#,ASP.NET마스터
[12/09]JAVA&WEB프레임워크실무과정
[12/12]자바초보에서안드로이드까지
[주말]
[11/30]SQL초보에서전문가까지
[11/30]C#,ASP.NET마스터
[12/07]Spring3.X,MyBatis,Hibernate실무과정
[12/14]자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
[12/14]자바초보에서안드로이드까지
[12/14]웹퍼블리싱 마스터
댓글 없음:
댓글 쓰기