본문 바로가기

connect by2

Oracle 원하는 기간의 날짜 데이터 만들기 일자별로 일정을 저장하는 테이블을 가정해봅시다. 일정이 있는 날의 데이터만 저장되어 있습니다. 이제 이 데이터를 달력이나 일주일씩 화면에 표시하는 방법을 생각해 보겠습니다. 두 가지 방법이 있을 수 있겠습니다. 첫 번째는 데이터베이스에서 원하는 월 또는 주 기간의 데이터를 조회합니다. 프로그램으로 기간 동안의 날짜 데이터 리스트를 만듭니다. 리스트를 루핑하면서 그 날짜에 데이터베이스에서 조회한 데이터가 있는지 다시 루핑하면 체크하여 데이터가 있으면 출력합니다. 두 번째는 데이터베이스에서 데이터를 만들때 원하는 기간의 날짜를 모두 만든 다음에 일정 테이블에 조인하여 결과를 만드는 것입니다. 일정이 있는날과 일정이 없는날 모두 데이터가 만들어지고 프로그램에서는 루핑하면서 출력하면 됩니다. 두 번째 방법을 사.. 2018. 7. 14.
오라클 계층 쿼리(Hierarchical Query)의 사용법 업무를 데이터베이스로 구현을 하다보면 한 테이블 내의 데이터가 계층적 관계를 가지는 경우가 많이 있습니다. 예를 들어보면 코드정보, 부서정보, 사이트의 메뉴 정보 등이 되겠습니다. 계층의 단계가 고정 되어 있고, 두 계층 정도라면 테이블을 분리할 수도 있지만, 임의의 단계를 표현해야 한다면 한 테이블에 상위 데이터로의 연결고리를 가지도록 구현을 하게 됩니다. 제품의 BOM(Bill of Material - 부품의 계층 정보) 정보 같은 것이 되겠습니다. 이러한 자기참조 구조는 이해하기도 편하고, 깔끔하게 구현이 됩니다. 하지만 한가지 중대한 단점이 있습니다. 관계 데이터베이스는 한 행내의 데이터들 간의 연산은 아주 간단히 처리되지만, 다른 행과 관계되는 연산은 쿼리가 상당히 복잡해 집니다. 복잡한 서브쿼.. 2018. 4. 9.