본문 바로가기

Database

(37)
[oracle] ora-00054 리소스가 사용중이거나 NOWAIT가 지정되었거나 시간초과가 만료된 상태로 획득합니다 팀원이랑 같은 테이블을 사용하면서 commit 중이라 생긴 오류 락걸린 줄 알았는데 아니었음 ^^; 1. rollback 또는 commit 2. 조회하기 해결..
[oracle] 테이블 n개만 뽑기 SELECT * FROM TABLE WHERE ROWNUM
[oracle] PIVOT, UNPIVOT pivot은 행 > 열으로 바꾸는 것이고, unpivot은 열 > 행으로 바꾸는 것이다. 대리님이 그래서 pivot이 뭐냐고 해서 잘 대답했는데 뜻만 알면 뭐하냐고 적용을 못하는데 ㅠ 반나절동안 고민하다가 아래 참고 글을 보고 드디어 이해했다. 예제 WITH 성적 AS ( SELECT '마농' 이름, 80 국어, 90 영어, 90 수학 FROM dual UNION ALL SELECT '마뇽', 90, 80, 70 FROM dual UNION ALL SELECT '만옹', 80, 80, 80 FROM dual UNION ALL SELECT '만용', 60, 60, 60 FROM dual ) SELECT * FROM 성적 UNPIVOT (점수 FOR 과목 IN (국어, 영어, 수학)) PIVOT (MIN(점..
[oracle] EXISTS, NOT EXISTS 실제로 사용해본 것은 IN 뿐이었는데 EXISTS 라는 함수도 있다는 것을 알게 되었다. 사용법은 비슷한 것 같은데 뭐가 다른지 궁금해서 정리해봄. EXISTS 는 서브쿼리만 사용 가능하며, IN은 서브쿼리 + 단순 값도 사용가능하다. 1. NOT IN, NOT EXISTS 효과적인 튜닝방법 -데이터 제한 조건은 인덱스 사용 -데이터 불러오는 양 적게 -사용자 ORACLE FUNCTION은 자제 -NOT EXISTS보다는 EXISTS 사용 권장 2. EXISTS 실행조건 SELECT COLUMNS FROM TABLE WHERE EXISTS (subquery); SELECT * FROM TEST A WHERE EXISTS (SELECT * FROM TEST2 B WHERE A.id = B.id) 서브쿼리에..