[ Oracle ] Oracle PL/SQL 화면출력 & 간단 예제

2021. 5. 3. 17:04·Archive/Develop
728x90
반응형

 

PL/SQL 이란?

 

오라클에서 제공하는 프로그래밍언어로,

Procedural Language/SQL 의 약자이다.

 

일반 프로그래밍 언어적인 요소를 거의 다 가지고 있기 때문에

실무에서 요구되는 절차적인 데이터 처리를 다 할 수 있다.

 

특히 SQL과 연동되어서 막강한 기능을 구현할 수 있다.

 

 

데이터 트랜잭션 처리능력이나 정보보호, 데이터 대한 보안,

예외처리 기능, 객체지향 등 데이터베이스와 관련된 중요한 모든 기능을 지원하기 때문에

데이터베이스 업무를 처리하기에 최적화된 언어이다.

 

 

 

PL/SQL 기본 구조

 

 

선언부, 실행부, 예외처리부로 구성된다.

 

Anonymous PL/SQL Block과 Stored PL/SQL Block이 있다.

 

 

 

 

 

주의!

 

 

PL/SQL 은 기본적으로 처리된 PL/SQL 문장의 결과를 화면에 출력하지 않는다.

 

 

 

따라서

 

> SET SERVEROUTPUT ON;

 

을 입력해 화면 출력기능을 활성화시켜야한다.

 

 

 

 

 

 

예시 1: 1~10까지의 합 구하기

declare
    v_num int;
    v_sum int:=0;
    
begin
    v_num:=1;
    loop
        v_sum := v_sum+v_num;
        if v_num >= 10 then
            exit;
        end if;
        v_num := v_num+1;
       
    end loop;
    dbms_output.put_line(v_sum);
exception
    when others then
        dbms_output.put_line(sqlcode||sqlerrm);
end;
/
show serveroutput; 
set serveroutput on;

 

 

 

 

예시 2: 1~20까지의 자연수 가운데 3의 배수만 합계를 구하고

출력을 "TOTAL : " 로 합계를, "Last number : " 로 마지막 숫자를 출력하라

 

 

 

declare
    v_num int;
    v_sum int:=0;
    
begin
    v_num:=1;
    loop
        if mod(v_num,3)=0 then
            v_sum:=v_sum+v_num;
        end if;
        if v_num >= 20 then
            exit;
        else
            v_num := v_num+1;
        end if;
    end loop;
    dbms_output.put_line('TOTAL : '|| v_sum || ' Last number : ' || v_num);
exception
    when others then
        dbms_output.put_line(sqlcode||sqlerrm);
end;
/
show serveroutput; 
set serveroutput on;

 

 

 

 

예시 3: deptno로 dname을 출력하는 사용자정의 함수 작성하기

 

 

show serveroutput; 
set serveroutput on;
create or replace function get_dept_name(v_deptno dept.deptno%type)
return dept.dname%type
is
    v_dname dept.dname%type;
begin
    select dname
    into v_dname
    from dept
    where deptno=v_deptno;
    
    return v_dname;
exception
    when others then
        dbms_output.put_line(sqlcode || sqlerrm);
        return 0;
end;
/
select empno, ename, deptno, get_dept_name(deptno) from emp;

 

 

(참고로, 오라클에서 제공하는 기본 scott 스키마를 이용했습니다)

 

 

 

 

 

 

 

 

만든 함수 코드 확인하기

 

 

우리가 만든 함수는 하나의 객체로 들어가있습니다.

 

 

select object_name, object_type from user_objects;

 

 

 

맨 위에 type이 FUNCTION 인 객체를 확인할 수 있습니다.

 

 

 

select line, text from user_source
where name='GET_DEPT_NAME';

 

 

 

 

함수 호출하는 방법 3가지

 

1. select 문 안에서

2. 다른 모듈에서

3. sql*plus 명령

 

 

 

 

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)  (0) 2021.05.10
[ C++ ] 함수 중복(Function Overloading)  (0) 2021.05.04
[ Django ]ORM ( Object-Relational Mapping ) 이란 무엇인가  (0) 2021.04.24
[ GitHub ] Build Docker Image with Private Repo  (0) 2021.04.24
[ LeetCode ] 49번 Group Anagrams  (0) 2021.04.19
'Archive/Develop' 카테고리의 다른 글
  • [ Oracle ] 프로시저와 sql*plus 예제 (프로시저 호출하는 방법)
  • [ C++ ] 함수 중복(Function Overloading)
  • [ Django ]ORM ( Object-Relational Mapping ) 이란 무엇인가
  • [ GitHub ] Build Docker Image with Private Repo
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    파이썬 문제
    백준 문제풀이
    파이썬 알고리즘
    Django
    Codeup
    oracle db
    코드업
    docker
    자바스크립트
    비박스
    백준 풀이
    Python
    파이썬 기초
    C++
    파이썬 기초 문제
    카카오 100일 프로젝트
    파이썬
    백준 파이썬
    코드업 파이썬 기초 100제
    백준
    보안뉴스
    자바스크립트 객체
    Git
    파이썬 백준
    javascript
    오라클
    코드업 기초
    장고
    Oracle
    자바스크립트 API
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ Oracle ] Oracle PL/SQL 화면출력 & 간단 예제
상단으로

티스토리툴바