* RTRIM( text, ',' ) : 오른쪽의 ',' 문자를 잘라냄
* XMLAGG() : 복수행의 데이터를 한 행으로 붙여서 출력
* XMLELEMENT( 태그값, 값, 연결값 ) : <태그값>값</태그값>
* EXTRACT('//text()') : 태그사이의 text 값 추출
CREATE OR REPLACE FUNCTION POSWIS.GET_OBJAUTH_VALUES (
ccompany IN VARCHAR2 --입력되는 인자값1
, cobj_id IN VARCHAR2 --입력되는 인자값2
)RETURN VARCHAR2 IS
v_return VARCHAR2(50);
BEGIN
SELECT
RTRIM(
XMLAGG(
XMLELEMENT(x,NVL(OBJ_VALUE_SET,'F'),',')
ORDER BY LV_CODE
).EXTRACT('//text()'),','
) OBJ_VALUE_SET
INTO v_return
FROM
(
SELECT * FROM TB_S07_020OBJAUTH020
WHERE COMPANY = ccompany
AND OBJ_ID = cobj_id
) B
RIGHT OUTER JOIN TB_S07_020COMPLV010 C
ON B.AUTH_GROUP_CODE = C.LV_CODE
WHERE C.COMPANY = ccompany;
RETURN v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RETURN '';
WHEN OTHERS THEN
RETURN '';
END GET_OBJAUTH_VALUES;
'Dev. 데이터베이스 > SQL 예제' 카테고리의 다른 글
[오라클 예제] Oracle 11g 이상 pivot 실 사용 예제 (1) | 2015.07.16 |
---|---|
[Oracle] 분석함수에서의 first last 사용 예제 (0) | 2014.10.08 |
[오라클 sql] oracle 정규식 실 사용 예제 - 업무내용 입력시 불필요 서식 삭제 (0) | 2014.02.12 |
oracle merge 실사용 예제(데이터가 존재하면 Update, 존재하지 않으면 Insert 실행) (0) | 2013.07.09 |
[SQL 문제] 함수(FUNCTION) 통합 테스트 (0) | 2012.08.22 |