투케이2K
96. (Oracle/오라클) 함수 (Function) - 테이블 데이터를 전체 조회하면서 국가 멸망 판단 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Toad
개발 언어 : Oracle
/* =========================== */
/* =========================== */
[소스 코드]
CREATE OR REPLACE FUNCTION GET_DEPT_DATE (I_NAME IN VARCHAR,
I_DEPT IN VARCHAR
)
/***************************************************************
설명 - 국가 멸망 판단 반환 [백제, 후백제 생존]
---------------------------------------------------------------
생성 - edit 창에서 F9를 눌러서 쿼리 실행 시 자동 생성된다
---------------------------------------------------------------
IN - I_NAME : 사용자 이름
I_DEPT : 사용자 부서
---------------------------------------------------------------
함수 호출 - SELECT T_NAME, T_DEPT, GET_DEPT_DATE(T_NAME, T_DEPT)
FROM TEST_USER;
---------------------------------------------------------------
함수 결과 - 생존 / 멸망
---------------------------------------------------------------
함수 삭제 - DROP FUNCTION GET_DEPT_DATE;
***************************************************************/
/********** Function 호출 시 반환되는 데이터 (VARCHAR2) ***********/
RETURN VARCHAR
IS
/********************** 전역 변수 선언 부분 **********************/
M_DATA VARCHAR2(100);
M_COUNT NUMBER;
/* *************** [메인부분 시작 및 커서생성] **************** */
BEGIN
M_COUNT := 1; -- 초기 카운트 변수값 대입
-- 전역변수로 생성한 테이블을 FOR문을 수행하면서 데이터 삽입 실시
FOR M_LIST IN (
/*[주요 설명]
*1. M_LIST에 SELECT 쿼리를 실행한 테이블 데이터를 저장한다
*2. WHERE 조건에 인풋으로 들어온 데이터와 같은 데이터를 지정해야 한행씩 정상 출력됨
*/
SELECT T_NAME, T_DEPT
FROM TEST_USER
WHERE T_NAME = I_NAME
AND T_DEPT = I_DEPT
)
LOOP
M_DATA := CASE M_LIST.T_DEPT
WHEN '백제' THEN M_LIST.T_DEPT||' 생존'
WHEN '후백제' THEN M_LIST.T_DEPT||' 생존'
ELSE M_LIST.T_DEPT||' 멸망'
END;
DBMS_OUTPUT.PUT_LINE('=============================');
DBMS_OUTPUT.PUT_LINE('M_COUNT : ' || M_COUNT);
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
DBMS_OUTPUT.PUT_LINE('=============================');
M_COUNT := (M_COUNT+1); --카운트값 증가
END LOOP;
RETURN M_DATA;
/* **************** [사용함수 종료 완료 부분] ***************** */
END;
/
/* **************** [사용함수 종료 완료 부분] ***************** */
/* =========================== */
[결과 출력]
/* =========================== */
/* =========================== */
[요약 설명]
설명 - 국가 멸망 판단 반환 [백제, 후백제 생존]
---------------------------------------------------------------
생성 - edit 창에서 F9를 눌러서 쿼리 실행 시 자동 생성된다
---------------------------------------------------------------
IN - I_NAME : 사용자 이름
I_DEPT : 사용자 부서
---------------------------------------------------------------
함수 호출 - SELECT T_NAME, T_DEPT, GET_DEPT_DATE(T_NAME, T_DEPT)
FROM TEST_USER;
---------------------------------------------------------------
함수 결과 - 생존 / 멸망
---------------------------------------------------------------
함수 삭제 - DROP FUNCTION GET_DEPT_DATE;
/* =========================== */
'OracleDB' 카테고리의 다른 글
98. (Oracle/오라클) in 사용해 소그룹 조건을 만족하는 데이터 출력 실시 (0) | 2021.01.29 |
---|---|
97. (Oracle/오라클) 인덱스 (index) - 테이블에 인덱스를 적용해서 조회속도 향상 실시 (0) | 2021.01.29 |
95. (Oracle/오라클) 뷰 (view) - 기본 뷰 생성 및 조회 실시 (자주 사용하는 쿼리문 저장 및 실행) (0) | 2021.01.29 |
94. (Oracle/오라클) translate 사용해 특정 문자값 개별 확인 후 다른 문자로 치환(변경) 실시 (0) | 2021.01.29 |
93. (Oracle/오라클) 함수 (Function) - 이름, 나이를 입력받아서 json 형태로 데이터 포맷 후 반환 실시 (0) | 2021.01.29 |