목록오라클 (6)
여행을 개발하다
오라클의 계층형 쿼리와 대표적인 계층형 쿼리 구문인 START~WITH 구문에 대해 이야기해보고자 한다. 먼저 계층형 쿼리가 무엇인지에 대해 알아본다. 계층형 쿼리? - 한 테이블에 담겨 있는 여러 레코드들이 서로 상하 관계(부모, 자식) 관계를 이루며 존재할 때, 이 관계에 따라 레코드를 hierarchical(상하위) 한 구조로 가져올 때 사용되는 SQL을 의미한다. 역시 단어 그 자체로만 설명하려니 어려운데, 쉽게 생각하면 조직도, 메일함, 문서함 등을 예로 들 수 있다. 위 회사 조직도는 최상위에 A 회사를 중심으로 경영지원부, 영업본부로 나뉜다. 그리고 경영지원부는 다시 회계팀, 인사팀, 재무팀, 영업본부는 국내영업팀, 해외영업팀 등으로 나뉜다. 이때, 회계팀, 인사팀, 재무팀의 부모 부서는 경..
이번 포스팅에서는 오라클의 XMLELEMENT, XMLAGG 함수에 대해 이야기하고자 한다. 하지만 각 함수의 고유한 기능보다는, 두 개의 함수를 조합한 '활용'에 더 초점을 맞추려고 한다. * Oracle 10g 버전 이상부터XMLAGG, WM_CONCAT 함수를 조합하면 보다 간단하게 사용 가능하다. 먼저 두 함수의 정의에 대해 알아본다. 1. XMLELEMENT - 정의 : 반환되는 레코드를 XML 요소로 바꾸어준다. - 함수 인수 :XMLELEMENT([태그명], 레코드명) 함수의 이름 자체가 멀리서 보면 가독성이 떨어진다. 하지만 자세히 보면'XML + ELEMENT = XMLELEMENT'이다. 첫 번째 인수에는 XML의 요소로 사용할 태그를 지정하고, 그 뒤에는 SELECT할 필드명을 적어준..
오늘은 Oracle Data Dictionary에 대해 포스팅하고자 한다. 처음 Data Dictionary에 대해 들었을 때는 프로시저나 함수, 트리거와 같이 무엇인가 아주 복잡한 개념으로만 생각했다. 그런데 말 그대로 백과사전이라는 뜻이었고, 오라클 데이터베이스에 대한 수많은 정보를 제공하는 역할을 하고 있었다. '데이터 사전'이라 불리는만큼, 다수의 테이블이 포함되어 있는 데이터베이스를 핸들링 할 때 꽤나 유용하게 사용하고 있다. 1. Data Dictionary란? - 데이터 사전(Data Dictionary)이란 대부분 읽기전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 한다. - 오라클 데이터베이스는 명령이 실행 될 때 마다 데이터 사전을 Access 한다. ..
이번 포스팅에서는 오라클 PL/SQL의 Function(함수)에 다루고자 한다. 프로시저(Procedure)가 일련의 정해진 작업들을 순차적으로 처리하는데 사용된다면, 함수(Function)는 작업식을 계산하여 특정 값을 리턴받고자 할 때 사용된다. 그럼 Function의 정의, 선언 방법, 문법 및 실행방법에 대해 알아본다. 함수(Function)란? - 보통 값을 계산하고 결과값을 반환하기 위해서 함수를 많이 사용한다. - 대부분 구성이 프로시저와 유사 하지만IN 파라미터만 사용할 수 있다. - 반드시 반환 될 값의 데이터 타입을RETURN문에 선언해야 한다. - 또한 PL/SQL블록 내에서RETURN문을 통해서 반드시 값을 반환해야 한다. 출처 :http://www.gurubee.net/lectur..
지난 PL/SQL 입문 포스팅에 이어 Procedure(프로시저)에 대해 알아보고자 한다. Oracle PL/SQL의 Block 종류에는 크게 3가지로, Anonymous Block(익명 블록), Procedure(프로시저), Function(함수)로 나뉜다. 그 중 Procedure의 사전적인 의미는 '순서'인데, PL/SQL에서도 그 의미를 크게 벗어나지는 않는다. 프로시저란 '일정한 순서에 따라 작업을 진행하는 Block'을의미한다. 각각의 프로시저는 고유한 명칭을 가지는데, 이런 점에서도 '익명 블록'의 특징과 구분된다. 그렇다면 프로시저가 무엇인지 자세히 알아보도록 한다. 프로시저(Procedure)란? - 특정 작업을 수행하는,이름이 있는 PL/SQL BLOCK이다. - 매개 변수를 받을 수 ..
이제 막 시작한 오라클 PL/SQL에 대한 공부 내용을 공유해보고자 한다. 데이터베이스의 레코드를 정확하게 CRUD(SELECT, INSERT, UPDATE, DELETE) 하는 것은, 데이터 정합성 등을 유지하기 위해서 매우 중요하다. 하지만 데이터베이스 상에서도 위와 같은 CRUD 작업을 단순 반복 한다던가, 명확한 RULE을 가지고 절차에 따라 실행되어야 하는 일련의 작업들이 있다면 이를 프로그램화 시키는 것이 보다 효율적일 수 있다. 물론, JAVA 같은 프로그래밍 언어의 for문이나 while문을 이용하는 것도 하나의 방법이다. 그러나 SQL 문법과 상호 연동할 수 있는 '어떤' 것이 있다면, 그것은 강력한 툴이 될 수 있다. 이러한 니즈에서 시작한 것이 PL/SQL이라고 생각한다. PL/SQL..