Notice
Recent Posts
Recent Comments
Link
투케이2K
135. (Oracle/오라클) function 함수 생성 및 for in loop 개별 데이터 json 형식으로 반환 실시 본문
OracleDB
135. (Oracle/오라클) function 함수 생성 및 for in loop 개별 데이터 json 형식으로 반환 실시
투케이2K 2021. 7. 20. 17:59[ 개발 환경 설정 ]
개발 툴 : Toad
개발 언어 : Oracle
[함수 호출 방법]
[소스 코드]
CREATE OR REPLACE FUNCTION GET_DEPT_CHECK (
I_NAME IN VARCHAR,
I_DEPT IN VARCHAR
)
/***************************************************************
설명 - 국가 멸망 판단 반환
---------------------------------------------------------------
생성 - edit 창에서 F9를 눌러서 쿼리 실행 시 자동 생성된다
---------------------------------------------------------------
IN - I_NAME : 사용자 이름
I_DEPT : 사용자 부서
---------------------------------------------------------------
함수 호출 - SELECT T_NAME, T_DEPT, GET_DEPT_CHECK(T_NAME, T_DEPT)
FROM TEST_USER
WHERE T_DEPT IN('백제', '고구려', '신라')
ORDER BY T_DEPT DESC;
---------------------------------------------------------------
함수 결과 - 생존 / 멸망
---------------------------------------------------------------
함수 삭제 - DROP FUNCTION GET_DEPT_CHECK;
***************************************************************/
/******** [Function 호출 시 반환되는 데이터 (VARCHAR2)] *********/
RETURN VARCHAR
IS
/******************** [전역 변수 선언 부분] ********************/
M_DATA VARCHAR2(100);
/* *************** [메인부분 시작 및 커서생성] **************** */
BEGIN
-- [전역변수로 생성한 테이블을 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
)
-- [조회된 데이터 반복문을 돌면서 FUNCTION 함수 수행 결과 추가 실시]
LOOP
M_DATA := CASE M_LIST.T_DEPT
WHEN '백제' THEN '{'||'NAME:'||M_LIST.T_NAME||', '||'DEPT:'||'멸망'||'}'
WHEN '고구려' THEN '{'||'NAME:'||M_LIST.T_NAME||', '||'DEPT:'||'멸망'||'}'
WHEN '신라' THEN '{'||'NAME:'||M_LIST.T_NAME||', '||'DEPT:'||'생존'||'}'
ELSE '{'||'NAME:'||M_LIST.T_NAME||','||'DEPT:'||'NOT'||'}'
END;
-- [디버깅 결과 로그 출력]
DBMS_OUTPUT.PUT_LINE('M_DATA : ' || M_DATA);
END LOOP;
RETURN M_DATA;
/* **************** [사용함수 종료 완료 부분] ***************** */
END;
/
/* **************** [사용함수 종료 완료 부분] ***************** */
[결과 출력]
반응형
'OracleDB' 카테고리의 다른 글
137. (Oracle/오라클) insert 문 사용해 데이터 삽입 실시 - 전체 데이터, 컬럼 부분 데이터 (0) | 2021.07.24 |
---|---|
136. (Oracle/오라클) JSON_ARRAY , JSON_OBJECT 사용해 데이터 json 형식으로 출력하기 (0) | 2021.07.21 |
134. (Oracle/오라클) BLOB (블랍) 설명 및 테이블 생성 , 이미지 저장 결과 확인 실시 (0) | 2021.07.15 |
133. (Oracle/오라클) 프로시저 (procedure) 특정 부서 인원 출력 - input, output, cursor (0) | 2021.07.07 |
132. (Oracle/오라클) 오라클 현재 시간에서 곱하기, 나누기, 더하기, 빼기 연산 수행해 시간 계산 실시 (0) | 2021.05.24 |
Comments