-
PL/SQL DECLARE프로그래밍/Oracle 2019. 9. 6. 16:20반응형
** [ 프로시저(PL)의 기본 구조 ] **
- 선언부(Declare) : 모든 변수나 상수를 선언하는 부분
- 실행부(Executable) : BEGIN ~ END // 실재 로직이 수행되는 부분
ex) 제어문, 반복문, 함수정의 등의 로직을 기술하는 부분...
- 예외처리부(Exception) : 실행도중에 에러 발생시 해결하기위한 명령들을 기술하는 부분
(생략가능)
** Declare, begin, exception 키워드들은 ';' 을 붙이지 않는다. **
** 나머지 문장들은 ';'으로 처리하여 영역의 끝을 표시한다.
- 익명 블록(Anonymous PL/SQL)
: 주로 일회성으로 사용할 경우 많이 사용된다.
- 저장 블록(Stored PL/SQL)
: 서버에 저장해 놓고 주기적으로 반복해서 사용할 경우 사용된다.
/*
[ PL/SQL(Procedural Language/SQL) ]
: 오라클에서 제공하는 프로그래밍 언어
: 일반 프로그래밍 언어적인 요소를 다 가지고 있고,
데이터베이스 업무를 처리하기 위한 최적화된 언어
** [ 프로시저(PL)의 기본 구조 ] **
- 선언부(Declare) : 모든 변수나 상수를 선언하는 부분
- 실행부(Executable) :BEGIN ~END // 실재 로직이 수행되는 부분
ex) 제어문, 반복문, 함수정의 등의 로직을 기술하는 부분...
- 예외처리부(Exception) : 실행도중에 에러 발생시 해결하기위한 명령들을 기술하는 부분
(생략가능)
**Declare,begin, exception 키워드들은';' 을 붙이지 않는다. **
** 나머지 문장들은';'으로 처리하여 영역의 긑을 표시한다.
- 익명 블록(Anonymous PL/SQL)
: 주로 일회성으로 사용할 경우 많이 사용된다.
- 저장 블록(Stored PL/SQL)
: 서버에 저장해 놓고 주기적으로 반복해서 사용할 경우 사용된다.
*/
-- EX)
set SERVEROUTPUTOFF;
set SERVEROUTPUTON;-- dbms_output.put_line메서드를 이용해 출력을 가능케해주는 세팅
-- 익명 블럭(Anonymous PL/SQL) EX
DECLARE --선언부
cntinteger;
BEGIN --실행부
cnt := cnt+1; /* 할당'=' 이 아니라':=' */
-- null과 연산하면 결과는 null
if cntis null then
dbms_output.put_line('결과 : cnt는 NULL입니다.');-- 괄호 안 내용을 화면에 출력하는 메서드
end if;
END;
/-- 작성한 프로시저 실행
/*
PL/SQL 문장 안에 SQL 문장이 포함될 수 있는데 이 SQL 문장은 SQL 실행자에 의해 실행된다.
PL/SQL 문장은 프로시저 실행자가 처리->(PL/SQL엔진)이 수행한다.
SQL실행자가 SQL문을 실행해 프로시저 실행자에게 넘겨준다.(돌려준다)
그러면 그걸 PL/SQL엔진이 처리하게 된다.
*/
DECLARE
empNo number(20);
empName varchar2(10);
BEGIN
select employee_id, first_nameinto empNo, empName-- empNo와 empName에 각 결과 필드값을 넣겠단 의미(into)
from Employees
where employee_id = 124;
DBMS_OUTPUT.put_line(empNo||' '||empName);-- 각 변수 값을 화면에 출력
END;
/
출처: https://rongscodinghistory.tistory.com/96 [악덕고용주의 개발 일기]
출처: https://rongscodinghistory.tistory.com/96 [악덕고용주의 개발 일기]반응형'프로그래밍 > Oracle' 카테고리의 다른 글
ORACLE/PL,SQL 프로시저(Procedure) 만들기 (0) 2019.09.16