게시일: Nov 30, 2011 11:18:52 PM
: 크게 DBMS와 UTL 접두어로 구분
- DBMS 패키지
: 아래의 SQL을 실행해서 DBMS 패키지의 종류를 살펴볼 수 있다.
select *
from dba_objects
where object_name like 'DBMS%'
and object_type = 'PACKAGE';
- DBMS_OUTPUT 패키지
: SQL*PLUS 등의 툴에서 메세지를 출력한다.
: SET SERVEROUTPUT ON; 명령어를 실행해야 사용 가능하다. -> 세션 명령어
▷ PUT 프로시저
: 파라미터 값을 출력버퍼의 현재 행에 추가. NEW_LINE 프로시저를 함께 사용해야 화면상에 출력됨.
DBMS_OUTPUT.PUT('M.Jay가 ');
DBMS_OUTPUT.PUT('에러 발생');
DBMS_OUTPUT.NEW_LINE();
--> M.Jay가 에러 발생
▷ PUT_LINE 프로시저
: PUT 프로시저와 같은 기능이나 END_OF_LINE 값을 포함해 버퍼에 추가. 따라서 NEW_LINE 프로시저가 없어도 화면상에 출력됨.
DBMS_OUTPUT.PUT_LINE('M.Jay가 ');
DBMS_OUTPUT.PUT_LINE('에러 발생');
--> M.Jay가
에러 발생
▷ NEW_LINE 프로시저
: 출력버퍼에 END_OF_LINE 값을 추가
- DBMS_JOB 패키지
: 유닉스의 CRON과 같은 스케줄링 기능 (특정 시간에 특정 작업 수행하도록 설정)
▷ SUBMIT 프로시저
: 일정 시간에 실행될 job을 등록한다. 이 프로시저를 수행하면 Job Queue에 등록이 되어 지정된 시간에 job이 수행된다.
▷ RUN 프로시저
: 스케줄에 상관없이 특정 job을 실행시킨다.
▷ REMOVE 프로시저
: Job Queue에 등록된 job을 제거한다.
아래의 SQL을 실행하여 현재 실행중인 job 내역을 조회할 수 있다.
select *
from user_jobs;
▷ INTERVAL 프로시저
: job이 수행되는 시간 간격을 조정한다.
- DBMS_SCHEDULER 패키지
: 보통 DBMS_JOB 패키지 보다는서버의 CRON 기능을 선호함.
: 그래서 10g 에서는 기존의 DBMS_JOB 패키지보다 월등히 향상된 기능을 가진 DBMS_SCHEDULER 패키지를 제공
- UTL_FILE 패키지
: 오라클이 설치되어 있는 서버에 있는 파일들을 조작할 수 있는 패키지
▷ FOPEN 함수
: 파일을 조작할 목적으로 파일을 오픈시키는 함수
▷ FCLOSE 프로시저
: 오픈된 파일을 닫는다. 파라미터로는 FOPEN이나 FOPEN_NCHAR 함수에 의해 오픈된 파일의 핸들값이 온다.
▷ PUT_LINE 프로시저
: 오픈된 파일에 텍스트 문자열을 쓰는 함수. END_OF_LINE 값을 포함하고 있다.
- UTL_TCP 패키지
: TCP/IP를 사용하여 TCP/IP 기반의 외부 웹서버와 통신할 수 있는 기능을 제공한다.
▷ CONNECTION 타입
: TCP/IP 커넥션을 나타내는데 사용되는 PL/SQL 레코드 타입
▷ OPEN_CONNECTION 함수
: 원격 호스트와 커넥션을 맺는다.
▷ CLOSE_CONNECTION 함수
: 연결된 커넥션을 끊는다.
▷ GET_LINE 함수
: 커넥션이 연결된 상태에서 원격 호스트에서 읽은 데이터를 반환한다.
▷ WRITE_LINE 함수
: 연결된 커넥션으로 정보를 전송한다.