일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 리눅스
- codingtest
- 스프링 부트
- 시큐리티 로그인
- 시큐리티 로그아웃
- security
- java
- Linux
- input태그
- 코딩테스트
- 시큐리티로그인
- sql
- StyleSheet
- Spring boot
- 싱글톤
- 시큐리티
- 프로그래머스
- JAVA11
- 2차원배열
- 반복문
- gradle
- 로그인
- springboot
- css
- 목록
- html
- springSecurity
- javascript
- programmers
- 소스트리
Archives
- Today
- Total
JAVAIARY
사용자 정의 함수 본문
1. 사용자 정의 함수
- 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하며, 종료 시 처리 결과를 단일값으로 반환하는 절차형 SQL
- 데이터베이스에 저장되어 SELECT, INSERT, DELETE, UPDATE 등 DML문의 호출에 의해 실행됨
- 예약어 RETURN을 통해 값을 반환하기 때문에 출력 파라미터가 없음
- INSERT, DELETE, UPDATE를 통한 테이블 조작은 불가하며
SELEC를 통한 조회만 가능 - 프로시저를 호출하여 사용할 수 없음
- 사용자 정의 함수는 SUM(), AVG()등의 내장 함수처럼 DML문에서 반환값을 활용하기 위한 용도로 사용됨
2. 사용자 정의 함수의 구성
- 프로시저와 유사함
- *값은 필수
DECLARE*
BEGIN*
CONTROL
SQL
EXCEPTION
RETURN*
END*
- DECLARE: 사용자 정의함수의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부
- BEGIN/END : 사용자 정의 함수의 시작과 종료를 의미
- CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리
- SQL: SELECT 문이 삽입되어 데이터 조회 작업 수행
- EXCEPTION : BEGIN~END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법 정의
- RETURN : 호출 프로그램에 반환값 OR 변수 정의
3. 사용자 정의 함수 생성
CREATE (OR REPLACE) FUNCTION 사용자 정의 함수명(파라미터)
(지역변수 선언)
BEGIN
사용자 정의 함수 BODY;
RETURN 반환값;
END;
- (OR REPLACE) : 동일한 이름의 함수가 존재할 때 기존의 사용자 정의 함수를 대체
- 파라미터
- IN : 호출 프로그램이 사용자 정의 함수에게 값을 전달할 때 지정
- 매개변수명 : 호출 프로그램으로부터 전달받은 값을 저장할 변수의 이름 지정
- 자료형 : 변수의 자료형 지정
- 사용자 정의 함수 BODY : BEGIN~END 사이에 적어도 하나의 SQL문이 존재해야 함
- RETURN 반환값 : 반환할 값이나 반환할 값이 저장된 변수를 호출 프로그램으로 돌려줌
4. 예제
'i_성별코드'를 입력받아 1이면 '남자', 2면 '여자'를 반환하는 사용자 정의 함수를 'Get_S_성별' 이라는 이름으로 정의 하시오.
CREATE FUNCTION Get_S_성별 (i_성별코드 IN INT)
RETURN VARCHAR2
IS
BEGIN
IF i_성별코드 == 1 THEN
RETURN '남자';
ELSE IF i_성별코드 == 2 THEN
RETURN '여자';
END IF;
END;
5. 사용자 정의 함수 실행
- DML에서 속성명이나 값이 놓일 자리를 대체하여 사용
SELECT 사용자 정의 함수명 FROM 테이블명;
INSERT INTO 테이블명(속성명) VALUES(사용자 정의 함수명);
DELETE FROM 테이블명 WHERE 속성명 = 사용자 정의 함수명;
UPDATE 테이블명 SET 속성명 = 사용자 정의 함수명;
6. 사용자 정의 함수 제거
DROP FUNCTION 사용자 정의 함수명;
'lectureNote > SQL' 카테고리의 다른 글
PL/SQL) ORACLE 유저 생성/권한/삭제 (0) | 2024.01.30 |
---|---|
커서(Cursor)란? (0) | 2023.07.12 |
트리거 (TRIGGER) (0) | 2023.07.05 |
프로시저 (PROCEDURE) 생성, 실행 , 삭제 (0) | 2023.07.05 |
Oracle) NVL, UNION, OUTERJOIN표현식 (1) | 2023.06.04 |