본문 바로가기

12c NF

(12cR1 신기능) 오라클 Lateral Inline View, 인라인뷰에서 조인시 ORA-00904 에러 방지 Oracle 12cR1 New Feature 중에 Lateral Inline View 가 있습니다. 골자는 SQL문에서 인라인뷰(Inline View) 사용시, 인라인뷰 내에서 메인쿼리의 테이블과 Join 할 수 있게 해주는 기능입니다. (인라인뷰는 SQL Query 에서 From 절에 테이블대신 SQL을 사용하는 것) 아래와 같이 인라인뷰 내에서 메인쿼리의 EMP 테이블을 참조해서 Join 을 시도하는 경우 ORA-00904 에러가 발생합니다. ORA-00904 에러는 테이블 또는 컬럼을 못 찾을때 발생하는 에러입니다. ( select * from DEPT d ... ) 인라인뷰 SQL 내에서는 e 테이블이 뭔지 알 수 없기 때문에 ORA-904 에러가 발생하고 있습니다. Oracle 12cR1 버전부.. 더보기
(12cR1 신기능) 오라클 Scalar Subquery Unnesting (_optimizer_unnest_scalar_sq) Oracle 12cR1 New Feature 중에서 Scalar Subquery Unnesting 이라는 것이 있습니다. 스칼라 서브쿼리를 Unnest 한다는 얘기인데요. "스칼라 서브쿼리"란 SQL문의 Select 절에 들어있는 또다른 Select 문을 가리킵니다. Unnest 는 "둥지에서 쫒아낸다"는 의미의 단어입니다. 즉, 스칼라서브쿼리 부분을 그 위치에서 쫒아내서 다르게 변환시켜서 수행하겠다는 것입니다. 왜? 그러면, 많이 빨라지는 경우가 있기 때문이죠~ 한번 확인해 볼까요?? 아래와 같이 테스트 테이블 t1, t2 를 만듭니다. 극적인 상황 연출을 위해 t2 테이블은 자기자신을 3번 더 복제해서 좀 크게 만듭니다. -- 테이블 t1 생성 create table t1 as select * fro.. 더보기