Table of Contents maxLevel 2
개요
...
저장 프로시저 내용을 확인하는 방법에 대해 안내합니다.
버전
...
ALTIBASE HDB 모든 버전
방법
...
저장 프로시저 내용을 확인하는 방법은 두 가지가 있습니다.
- 메타 테이블 이용
- aexport 유틸리티 이용
메타 테이블 이용
...
메타 테이블 SYSTEM_.SYS_PROCEDURES_, SYSTEM_.SYS_PROC_PARSE_ 를 이용한 사용자 정의 프로시저 생성 후 이를 사용하여 저장 프로시저 내용을 확인할 수 있습니다.
사용자 정의 프로시저 생성 방법
저장 프로시저 및 사용자 정의 함수 출력을 위한 저장 프로시저
Code Block title 저장 프로시저 및 사용자 정의 함수 이름 조회 language sql -- 저장 프로시저 및 사용자 정의 함수 이름을 화면에 출력합니다. -- EXEC showProcedures; CREATE OR REPLACE PROCEDURE showProcedures AS CURSOR C1 IS SELECT U.USER_NAME, PROC.PROC_NAME, DECODE(PROC.OBJECT_TYPE, 0, 'PROCEDURE', 1, 'FUNCTION') FROM SYSTEM_.SYS_PROCEDURES_ PROC, SYSTEM_.SYS_USERS_ U WHERE PROC.USER_ID = U.USER_ID; V1 CHAR(40); V2 CHAR(40); V3 CHAR(20); BEGIN SYSTEM_.PRINTLN('----------------------------------------------------------------------------------------------------'); SYSTEM_.PRINT(' USER_NAME PROC_NAME'); SYSTEM_.PRINTLN(' PROCEDURE/FUNCTION'); SYSTEM_.PRINTLN('----------------------------------------------------------------------------------------------------'); OPEN C1; LOOP FETCH C1 INTO V1, V2, V3; EXIT WHEN C1%NOTFOUND; SYSTEM_.PRINT(' '); SYSTEM_.PRINT(V1); SYSTEM_.PRINT(V2); SYSTEM_.PRINTLN(V3); END LOOP; SYSTEM_.PRINTLN('----------------------------------------------------------------------------------------------------'); CLOSE C1; END; /
저장 프로시저 내용을 확인하기 위한 저장 프로시저
Code Block title 저장 프로시저 내용 확인하기 위한 사용자 프로시저 language sql -- 지정한 저장 프로시저의 내용을 화면으로 출력한다. -- EXEC showProcBody('USER_NAME', 'PROCEDURE_NAME'); CREATE OR REPLACE PROCEDURE showProcBody(p1 IN VARCHAR(40), p2 IN VARCHAR(40)) AS CURSOR C1 IS SELECT SYSTEM_.SYS_PROC_PARSE_.PARSE FROM SYSTEM_.SYS_PROC_PARSE_ WHERE SYSTEM_.SYS_PROC_PARSE_.PROC_OID = (SELECT P.PROC_OID FROM SYSTEM_.SYS_PROCEDURES_ P, SYSTEM_.SYS_USERS_ U WHERE U.USER_ID = P.USER_ID AND P.PROC_NAME = p2 AND U.USER_NAME = p1) ORDER BY SYSTEM_.SYS_PROC_PARSE_.SEQ_NO; V1 VARCHAR(4000); BEGIN OPEN C1; SYSTEM_.PRINTLN('---------------------------------'); SYSTEM_.PRINT(P1); SYSTEM_.PRINTLN(' PROCEDURE'); SYSTEM_.PRINTLN('---------------------------------'); SYSTEM_.PRINTLN(''); LOOP FETCH C1 INTO V1; EXIT WHEN C1%NOTFOUND; SYSTEM_.PRINTLN(V1); END LOOP; CLOSE C1; SYSTEM_.PRINTLN(''); SYSTEM_.PRINTLN('---------------------------------'); END; /
사용자 정의 저장 프로시저 실행 방법
저장 프로시저 및 사용자 정의 함수 목록 확인
Code Block language sql iSQL> exec showProcedures;
저장 프로시저 내용 확인
Panel bgColor white borderStyle dashed borderColor grey iSQL> exec showProcBody('USER_NAME', 'PROC_NAME');
aexport 유틸리티 이용
...
aexport는 데이터베이스 객체 생성 구문을 파일에 저장해주는 유틸리티입니다. aexport 수행 후 생성된 파일에서 저장 프로시저 내용을 확인할 수 있습니다.
aexport 수행 - 모든 객체
aexport 수행 후 생성된 파일 중 ALL_CRT_PROC.sql 에서 모든 저장 프로시저의 생성 구문을 확인할 수 있습니다.
Code Block title 수행 방법 language bash $ aexport
Code Block title 수행 예 language bash $ aexport ----------------------------------------------------------------- Altibase Export Script Utility. Release Version 4.3.9.223 Copyright 2000, ALTIBASE Corporation or its subsidiaries. All Rights Reserved. ----------------------------------------------------------------- Write Server Name (default:127.0.0.1) : # 알티베이스 서버 아이피 입력 Write UserID : sys # sys 입력 Write Password : # sys 유저의 패스워드 입력 ##### TBS ##### ##### User ##### ** input user USER1's password (default - same with USER_NAME): # 사용자 패스워드 입력. ** input user EHEE's password (default - same with USER_NAME): ** input user ALTITEST's password (default - same with USER_NAME): ##### Synonym ##### ##### Table ##### ** ALTITEST.ORDERS ** SYS.DEMO_EX2 ** SYS.DEPARTMENT ** SYS.EMPLOYEE ** SYS.T1 ** USER1.T1 ##### QUEUE ##### ##### Sequence ##### ##### Procedure & Function ##### ##### View ##### ##### Replication ##### ##### TRIGGER ##### ------------------------------------------------------- ##### Follow script files are Generated. ##### 1. run_il_out.sh : [ iloader formout, data-out script ] 2. run_is.sh : [ isql table-schema script ] 3. run_il_in.sh : [ iloader data-in script ] 4. run_is_index.sh : [ isql table-index script ] 5. run_is_fk.sh : [ isql table-foreign key script ] 6. run_is_repl.sh : [ isql replication script ] -------------------------------------------------------
유저 별 aexport 수행
- aexport 의 -u 옵션에 데이터베이스 사용자 이름을 입력하고 -p 옵션에 해당 사용자의 패스워드를 입력 후 aexport를 수행하면 해당 사용자 소유의 객체 스키마만 추출합니다.
저장 프로시저 내용은 ALL_CRT_PROC.sql 파일을 참고하세요.
수행 방법
Code Block title 수행 방법 language bash $ aexport -u user_name -p user_password -s 알티베이스_서버_아이피 또는 $ aexport Write Server Name (default:127.0.0.1) : # 알티베이스 서버 아이피 입력 Write UserID : # 객체 소유자 또는 sys 유저를 입력합니다. 무엇을 입력하든지 결과는 동일합니다. Write Password : # 위에서 입력한 사용자의 패스워드
객체 별 aexport 수행
- object 옵션을 사용하면 특정 객체 스키마만 추출할 수 있습니다. 이 옵션은 ALTIBASE HDB 5.5.1 부터 사용할 수 있습니다.
- 저장 프로시저의 경우 -object 유저명.프로시저명 형식으로 값을 줄 수 있습니다.
- 결과는 유저명_프로시저명_CRT.sql 형식의 이름을 가진 파일이 생성됩니다.
수행 방법
Code Block title 수행 방법 language bash $ aexport -s 알티베이스_서버_아이피 -u user_name -p user_password -object user_name.procedure_name 또는 $ aexport -object user_name.procedure_name Write Server Name (default:127.0.0.1) : # 알티베이스 서버 아이피 입력 Write UserID : # 객체 소유자 또는 sys 유저를 입력합니다. 무엇을 입력하든지 결과는 동일합니다. Write Password : # 위에서 입력한 사용자의 패스워드
...