PL/SQL은 화면에 출력하는 기능이 없으며, 오라클에서 화면에 출력하기 위해 dbms_output 패키지를 제공
*dbms_output 패키지
SQL*Plus 또는 SQL*DBA 에서 디버깅 또는 출력 메시지 그리고 reports를 출력 하기 위한 패키지 이다.
*dbms_ouput 패키지 설치
1. sys로 접속 후 dbmsotpt.sql script를 실행
2. 스크립트 실행이 완료 되면 public 속성의 DBMS_OUTPUT 패키지가 생성 됨. (public 권한으로 누구나 실행가능)
*Exception
Error Description
-------------------------------
ORU-10027: Buffer overflow
ORU-10028: Line length overflow
* Rules and Limits
최대 Line Size : 32767 bytes
default buffer Size : 20000 bytes.
최소 Buffer Size : 2000 bytes.
최대 Buffer Size : 무제한
* 패키지에 정의된 프로시저 확인
SQL>DESC dbms_output
PROCEDURE DISABLE
PROCEDURE ENABLE
인수명 유형 기본 내부/외부?
---------------------- ----------------------- --------- --------
BUFFER_SIZE NUMBER(38) IN DEFAULT
PROCEDURE GET_LINE
인수명 유형 기본 내부/외부?
---------------------- ----------------------- --------- --------
LINE VARCHAR2 OUT
STATUS NUMBER(38) OUT
PROCEDURE GET_LINES
인수명 유형 기본 내부/외부?
---------------------- ----------------------- --------- --------
LINES TABLE OF VARCHAR2(32767) OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE GET_LINES
인수명 유형 기본 내부/외부?
---------------------- ----------------------- --------- --------
LINES DBMSOUTPUT_LINESARRAY OUT
NUMLINES NUMBER(38) IN/OUT
PROCEDURE NEW_LINE
PROCEDURE PUT
인수명 유형 기본 내부/외부?
------------------- ----------------------- --------- --------
A VARCHAR2 IN
PROCEDURE PUT_LINE
인수명 유형 기본 내부/외부?
---------------------- ----------------------- --------- --------
A VARCHAR2 IN
* dbms_output 패키지의 출력 프로시저를 사용하기 위해 먼저SERVEROUTPUT 의 값을 설정 (default로 OFF로 지정 되어 있음)
SQL> SET SERVEROUTPUT ON
실습 1) 라인 출력 예제
SQL> BEGIN
2 DBMS_OUTPUT.PUT_LINE('Hello~ PL/SQL');
3 END;
4 /
결과 ==> Hello~ PL/SQL
실습2) 변수 생성 및 값 출력
SQL> DECLARE
2 vempno number(4);
3 vename varchar2(20);
4 BEGIN
5 SELECT empno, ename INTO vempno, vename
6 FROM emp
7 WHERE empno = 7788;
8 dbms_output.put_line('----- Result -----');
9 dbms_output.put_line(TO_CHAR(vempno) || ' ' || vename);
10 END;
11 /
----- Result -----
7788 SCOTT
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> Disables message output Enables message output Retrieves one line from buffer Retrieves an array of lines from buffer Terminates a line created with Places a line in the buffer Places partial line in buffer
이렇게 하면 간단한 출력이 가능한 PL/SQL 예문이 완성됨
** DBMS_OUPUT Package의 프로시저
Subprogram
Description
PUT
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_output.htm
'ORACLE' 카테고리의 다른 글
XP에서 Oracle10g 삭제 (0) | 2010.01.09 |
---|---|
Oracle Book List Link (0) | 2009.12.23 |
PL/SQL의 기초 (0) | 2009.12.22 |
Oracle 샘플 스키마 설치 (0) | 2009.12.21 |
SQL Processing Concepts (0) | 2009.12.09 |