오라클 PLSQL 함수,팩토리얼, Factorial,함수실습, DBMS_OUTPUT,PUT_LINE,GET_LINE,ENABLE, DISABLE, SPOOL출력을파일,JAVA학원, ORACLE학원, JAVA교육, ORACLE교육
https://www.youtube.com/watch?v=Qf5u2u9Gt2Q&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=33

실습 : PL/SQL Factorial 구하는 함수 작성
PL/SQL 내부 및 외부에서 실행
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
DBMS_OUTPUT 패키지
이론 / 실습
DBMS_OUTPUT 패키지는 PL/SQL 블록(BEGIN ~ END)이나 프로시저, 함수 등 SUB PROGRAM 및 패키지, 트리거등에서 메시지를 출력할 수 있는 기능을 제공하는데 메시지를 버퍼에 저장하고 버퍼에서 읽어오기 위한 기능을 제공하는 오라클 패키지 입니다.
이 패키지의 PUT 프로시저 및 PUT_LINE 프로시저를 사용하면 다른 트리거, 프로시저 또는 패키지에서 읽을 수 있는 정보를 버퍼에 저장할 수 있고, 별도의 PL/SQL 프로시저 또는 익명 블록에서 GET_LINE 프로시저 및 GET_LINES 프로시저를 호출하여 버퍼링된 정보를 표시할 수 있습니다.
ENABLE 프로시저를 호출하여 버퍼를 할당 하며(기본 20000 바이트), PUT, PUT LINE으로 버퍼에 메시지를 넣습니다. 버퍼 메시지의 각 라인은 라인끝(CARRIAGE RETURN/LINE FEED) 값을 가지고 있으며 CHR(13) || CHR(10)을 DBMS_OUT으로 출력하면 동일한 효과를 얻습니다.
PUT, PUT LINE으로 버퍼에 저장된 메시지는 GET_LINE, GET_LINES 으로 읽어 들일수 있으며 DBMS_OUTPUT.DISABLE 프로시저로 할당된 버퍼를 제거 합니다.
GET_LINES으로 읽을 때 라인을 읽어 들일 변수의 타입으로 DBMS_OUT 패키지에는 CHARARR 타입이 정의되어 있는데 형식은 다음과 같습니다.
- 셀 병합
SQL*Plus의 경우 SQL 문 또는 익명 PL/SQL 호출을 실행한 후 GET_LINES를 호출합니다.
DBMS_OUTPUT.DISABLE; | 메시지 출력을 비활성화 |
DBMS_OUTPUT.ENABLE( buffer_size IN INTEGER DEFAULT 20000 ); | 메시지 출력 활성화, NULL을 입력하면 버퍼 사이즈는 무한 |
DBMS_OUTPUT.GET_LINE ( line OUT VARCHAR2, status OUT INTEGER ); | 버퍼에서 한 라인을 검색 메시지를 성공적으로 읽어 온 경우에는 0을 반환하고 그렇지 못한 경우에는 1을 반환. |
DBMS_OUTPUT.GET_LINES ( lines OUT CHARARR, numlines IN OUT INTEGER ); | 버퍼에서 라인의 배열을 검색 |
DBMS_OUTPUT.NEW_LINE; | 현재라인을 종료 하고 새 라인을 삽입 (라인의 종료를 마킹) |
DBMS_OUTPUT.PUT( item IN VARCHAR2 ); | 문자열을 출력 후 다음라인을 이동하지않고 대기 |
DBMS_OUTPUT.PUT_LINE( item IN VARCHAR2 ); | 최대 32767 바이트로 버퍼에서 새롭게 문자열을 가진 한 라인을 삽입, 문자열을 출력 후 다음라인 이동 |
DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000); ⇒ 메시지 출력 활성화, NULL을 입력하면 buffer size는 무한
set serveroutput on
spool c:\logs\dbms.txt
BEGIN
-- 버퍼를 활성화, 기본버퍼 사이즈는 20000 바이트
dbms_output.enable;
dbms_output.put('굿 데이2!!');
dbms_output.put_line('안녕하세요~');
dbms_output.new_line();
dbms_output.put_line('즐거운 하루 되세요~');
--dbms_output.put('굿 데이!!');
dbms_output.put('굿 데이2!!');
dbms_output.put(CHR(13) || CHR(10));
dbms_output.put_line('안녕하세요2~');
--dbms_output.put('굿 데이2!!');
END;
create or replace procedure DBMS_TEST
is
begin
dbms_output.enable;
DBMS_OUTPUT.PUT_LINE('test1');
DBMS_OUTPUT.PUT_LINE('test2');
DBMS_OUTPUT.PUT_LINE('test3');
end;
declare
lines dbms_output.chararr;
num_lines number := 3;
begin
DBMS_TEST;
-- 아래 GET_LINE이하를 주석으로 막고 실행하면 프로시저에서 출력한 형태로 출력
dbms_output.get_lines(lines, num_lines);
FOR i IN 1..num_lines LOOP
dbms_output.put_line(i || '->' || lines(i));
END LOOP;
end;
declare
message VARCHAR(1024);
status INTEGER;
begin
DBMS_TEST;
DBMS_OUTPUT.GET_LINE(message, status);
DBMS_OUTPUT.PUT_LINE(message);
DBMS_OUTPUT.PUT_LINE(status);
end;
https://www.youtube.com/watch?v=UNWJDGNM-GY&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=35

#오라클, #DBMS_OUTPUT이란, #DBMS_OUTPUT, #PUT_LINE, #GET_LINE, #오라클프로시저, #오라클교육, #SQL교육, #자바교육, #오라클학원, #자바학원, #SQL학원, #오라클동영상, 오라클, DBMS_OUTPUT이란, DBMS_OUTPUT, PUT_LINE, GET_LINE, 오라클프로시저, 오라클교육, SQL교육, 자바교육, 오라클학원, 자바학원, SQL학원, 오라클동영상
#오라클, #PLSQL, #팩토리얼, #Factorial, #오라클함수, #함수실행, #바인드변수, #호스트변수, #오라클교육, #SQL교육, #오라클학원, #SQL학원, #자바교육, #자바학원, 오라클, PLSQL, 팩토리얼, Factorial, 오라클함수, 함수실행, 바인드변수, 호스트변수, 오라클교육, SQL교육, 오라클학원, SQL학원, 자바교육, 자바학원