DB 함수로 DELETE 테스트(질의 안에 DML 작업을 수행할 수 없습니다.)
2023. 5. 19. 13:41
SQL
CREATE FUNCTION DELETE_TEST(TARGET_MBR_NO INTEGER) RETURN VARCHAR2 IS PRAGMA AUTONOMOUS_TRANSACTION; RESULT_DATA INTEGER; BEGIN DELETE FROM ㄱㄱㄱㄱ WHERE MBR_NO = TARGET_MBR_NO; DELETE FROM ㄴㄴㄴㄴ WHERE MBR_NO = TARGET_MBR_NO; DELETE FROM ㄷㄷㄷㄷ WHERE MBR_NO = TARGET_MBR_NO; DELETE FROM ㄹㄹㄹㄹ WHERE MBR_NO = TARGET_MBR_NO; DELETE FROM ㅁㅁㅁㅁ WHERE MBR_NO = TARGET_MBR_NO; DELETE FROM ㅂㅂㅂㅂ WHERE MBR_NO = TAR..
[Oracle] 다중 결과행을 한줄로 뽑기
2022. 11. 8. 14:54
SQL
부서전화번호를 넣고 해당 전화번호를 가진 사람을 콤마(",") 단위로 한줄에 뽑아야 하는 경우가 생겼음. SELECT LISTAGG(A.EMP_NM,',') WITHIN GROUP(ORDER BY A.EMP_NM) AS RESULT_EMP_NM FROM 직원테이블 A INNER JOIN 전화번호정보 테이블 B ON A.DEPT_NO = B.DEPT_NO AND B.DEPT_TELNO = '02-1234-1234' 하지만, 02-1234-1234 를 가진 사람이 여러명이 존재할 수 있었다. 나는 여러개의 ROW형 결과가 아닌 "일길동,이길동" 이런식의 콤마로 구분 된 1개의 ROW 결과값이 필요 했고 오라클 LTSTAGG 를 사용해서 문제를 해결했다. 오라클 LTSTAGG 사용법 LISTAGG([합칠 컬럼..
[Oracle] , 로 구분 된 값을 검색할 때,
2022. 11. 1. 17:40
SQL
컬럼안에 데이터가 "aaa,bbb,cc" 이런식으로 콤마를 구분자로 적재 되어 있을 때, 사용자 화면서 체크박스 클릭으로 검색을 하는 방법 AND TARGET LIKE '%' || #{item} || '%' 예를들어, TARGET 이라는 컬럼 데이터가 "aaa,bbb,ccc" 이런 식으로 적재되어 있을 때 검색 Vo인 srchTest 를 돌려서 원하는 결과를 얻을 수 있다.
오라클 원하는 ORDER BY(NULL우선, NULL 제일뒤 등등)
2022. 10. 21. 10:40
SQL
NULL FIRST, NULLS LAST 오라클을 사용하면서 정방향 정렬, 역방향 정렬을 하는데 null 일경우 우선, 제일 뒤 등등을 처리할 일이 생겼다. SELECT REG_DT FROM TB_TABLE ORDER BY REG_DT ASC NULLS FIRST ===> TB_TABLE의 REG_DT 컬럼으로 정렬을 하되, NULL 을 제일 우선정렬 SELECT REG_DT FROM TB_TABLE ORDER BY REG_DT DESC NULLS LAST ===> TB_TABLE의 REG_DT 컬럼으로 정렬을 하되, NULL을 제일 후순으로 정렬