일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 리덕스
- 네임드 뷰
- 트리 회전
- 자바
- 오라클
- vue.js
- EBS
- rabbitmq 에러
- Java Reflextion API
- exiting abnormally
- 컴포넌트 주도
- 커스텀 로그인
- $emit()
- 오라클 병렬처리
- forNmae()
- 애그리거트
- paraller
- 리덕스 공식문서
- react
- quert
- 자료구조
- VUE
- redux
- 도커빌드
- .getClass()
- AWS
- 리액트
- ACCESS_REFUSED
- REDIS
- Express
- Today
- Total
개발정리
오라클 PL/SQL 알아보기 본문
PL/SQL은 무엇일까
PL/SQL(Procedual language extension to SQL) 은 SQL을 확장한 절차적 언어입니다.
프로그래밍 언어의 특성을 수용하여 SQL에서는 사용할수 없는 절차적 프로그래밍 기능을 가지고 있어
SQL의 단점을 보완한 것입니다.
반복문과 IF문을 사용할 수 있으며 변수를 선언하는 것도 가능합니다.
또한 예외처리도 할 수 있습니다.
세상에서 가장 간단한 PL/SQL문 실행해 보기
우리가 처음 프로그래밍을 배울때 Hello World 문자열을 출력해 보았듯이 오라클의 PL/SQL문을 사용해서
간단한 Hello World 문자열을 출력해봅시다.
c언어에서는 printf() 라는 함수로 콘솔창에 문자열을 출력합니다.
이와 마찬가지로 오라클에서는 dbms_output.put_line() 을 사용해서 콘솔창에 문자열을 출력할 수 있습니다.
그럼 간단한 PL/SQL 문을 작성해봅시다.
SET serveroutput ON
BEGIN
dbms_output.put_line('Hello World');
END;

위의 문법에서 SET serveroutput ON; 절은 사실 PL/SQL의 문법은 아닙니다.
dbms_output.put_line 함수를 사용하여 콘솔창에 문자열을 띄우기 위한 설정입니다.
저희가 작성한 PL/SQL의 문법을 보면 BEGIN과 END 라는 문법을 보실수 있습니다.
간단히 말해 해당문법의 시작과 끝을 나타냅니다.
여기까지 살펴보았을때 앞서 말씀드렸듯이 절차적 프로그래밍 즉. 우리가 아는 C언어 처럼 SQL을 활용할 수 있습니다.
C언어에는 int num = 10; 처럼 변수를 선언하여 이후 문장에서 해당 변수를 사용할 수 있게 됩니다.
그럼 PL/SQL문에서는 어떻게 변수를 선언할 수 있을까요?
BEGIN과 END문이 아닌 새로운 문법이 필요합니다.
바로 DECLARE문 입니다.
DECLARE문을 사용해 변수를 출력해보자
앞선 예제에서는 Hello Wolrd 문자열을 리터럴로 선언하여 출력을 했습니다.
하지만 이렇게 출력하게 되면 해당 문자열을 재사용 할 수 없게 됩니다.
따라서 이번에는 DECLAER문을 사용해 변수를 선언하고 저장하여 출력해 봅시다.
DECLARE
data varchar(20) := 'Hello World';
BEGIN
dbms_output.put_line(data);
END;

c언어에서는 String data = "Hello World"; (자료형 변수명 = 문자열) 의 순서로 변수를 선언합니다.
하지만 PL/SQL에서는 자료형과 변수명의 순서가 바뀐 (변수명 자료형 := 문자열)의 순서로 변수를 선언합니다.
%ROWTYPE & %TYPE
먼저 %TYPE은 특정 테이블에 포함되어 있는 컬럼의 자료형을 참조하는 데이터 타입입니다.
변수명 테이블.컬럼명%TYPE 형식으로 사용하여 해당 변수의 자료형을 컬럼의 자료형으로 참조합니다.
%ROWTYPE은 테이블의 레코드와 같은 구조의 구조체 변수를 선언합니다.
'CS > SQL' 카테고리의 다른 글
[오라클] dual테이블에 대해서 (0) | 2025.04.16 |
---|---|
오라클 paraller 문 (0) | 2025.03.05 |
SELECT FOR UPDATE문 (0) | 2025.03.04 |
[오라클] MERGE 문 (0) | 2025.03.02 |
OVER와 PARTITION BY 에 대하여 (1) | 2024.12.25 |