소리소문 없이... 사랑도 명예도 이름도 남김 없이...
DexCore.net

DataBase/Oracle 116

UNION,GROUP BY : M:M 및 양쪽 Outer join을 자연스럽게 해결

출처 : http://blog.naver.com/orapybubu?Redirect=Log&logNo=40025300615 # UNION,GROUP BY : M:M 및 양쪽 Outer join을 자연스럽게 해결 create table IN_TAB (CODE varchar2(4), IN_DATE varchar2(8), AMOUNT number); insert into IN_TAB values(1000, '20030101', 1000); insert into IN_TAB values(1000, '20030101', 6000); insert into IN_TAB values(1000, '20030103', 2000); insert into IN_TAB values(1000, '20030104', 7000); c..

DataBase/Oracle 2012.05.31

NOT IN과 NOT EXISTS의 차이점

이번달 퀴즈는 두가지 부정형 조인 NOT IN, NOT EXISTS 의 차이점을 설명하는것입니다.문제를 명확히 하기 위해서 아래와 같은 상황을 고려하겠습니다.테이블 : TEST1 NOName1Lee2Kim3 ParkJang 테이블 : TEST2NO Name 1Lee2Kim3 ParkJang* 은 데이터가 NULL값인 경우입니다. 테스트 쿼리1) NOT IN 의 경우SELECT * FROM TEST1 A WHERE A.NO NOT IN (SELECT NO FROM TEST2)2) NOT EXISTS 의 경우SELECT * FROM TEST1 A WHERE NOT EXISTS (SELECT 1 FROM TEST2 B WHERE A.NO = B.NO)위와 같은 상황에서 두 개의 테스트 쿼리를 실행하여 그 결과..

DataBase/Oracle 2012.05.31

세 가지 테마로 거듭난 Oracle 11g R2의 신기능(SQL)

세 가지 테마로 거듭난Oracle 11g R2의 신기능(SQL) Oracle 11g가 발표된 지 약 2년만인 지난 9월, 공식적으로 Oracle 11g Release 2(이하 R2)가 발표되었다. 이번 릴리즈의 테마는 Consolidate(통합), Compress(압축), Control(컨트롤)로, 이 단어에 이번 릴리즈의 모든 기능들이 함축적으로 반영되어 있다. 필자가 일단 11g R2를 설치하고 new feature 문서를 살펴본 결과, 위의 테마에 담긴 뜻이 하나씩 떠오르기 시작했다. 지금부터 필자가 이해한 의미를 바탕으로 11g R2의 기능을 설명한다. 11g R2에서는 지난해 ‘오라클 오픈 월드(Oracle Open World)’에서 발표했던 DW전용 머신인 Exadata Storage 서버에 ..

DataBase/Oracle 2012.05.31

PK (primary key) 와 unique index 차이점

아주 설명이 잘되있는 걸 찾아서 부연설명해서 올립니다.참고로 퍼온곳은 www.dbguide.net 이라는 곳인데, 질문답변란에 올리면엔코아나, 기타 좀 이름있는 DB컨설팅 회사 사람들이 답변을 해줍니다.메일링 가입하시면 좋은 정보 많이 얻으실겁니다. 유니크인덱스와 PK의 차이점? 조회: 413 2004-03-26 김윤선(covey02) PK와 유니크 인덱스의 차이점은 뭔가요? 테이블에서 FK를 사용하지 않는다면 유닉스 인덱스 만으로도 가능한데.. 굳이 PK를 잡는 이유는 뭔지 알고 싶습니다. 테이블을 대표하는 것을 나타내기위해 PK를 쓴다는 말이 있는데... 이건 유닉스 인덱스로 대치 할 수 없는건가요? PK와 유니크 인덱스 중 유니크인덱스로만 구성했을때 퍼포먼스가 더 빠르다고 하던데 맞는 말인지 알고 ..

DataBase/Oracle 2012.05.31

계층쿼리 Connect by VS ANSI SQL

필자는 예전에 Recursive SQL이라는 글을 통하여 IBM DB2나 Microsoft의 SQL Serve에서 사용하는 Recursive With문을 소개한적이 있다. 시간이 흘러 이제는 Oracle11gR2에서 Recursive With문을 사용할 수 있게 되었다. 오라클에서도 DB2나 SQL Serve처럼ANSI SQL을 사용할 수 있게 된 것이다.타 DBMS에 능숙한 사람들에게는 환영할만한 일이나 오라클을 사용한 사람들은 별로 달가워하지 않는 것 같다. 왜냐하면 기존의 오라클 사용자들은 Connect By의 기능이 워낙 막강하였으므로 굳이 ANSI SQL을 사용할 필요가 없다고 생각하기 때문이다.하지만 과연 그럴까? 모든 기능은 용도가 있다.이 글을 보고 알 수 있는 사항은 다음과 같다.1. C..

DataBase/Oracle 2012.05.31

오라클 SQL 레코드를 XML로 변환해주는 FUNCTION (오라클 xml 사용법 등)

MS-SQL의 SELECT ..... FOR XML AUTO 에 상응하는 오라클의 기능을 알아보도록하죠.이게 무슨기능이냐구요? 바로 SQL 쿼리에 의해 반환된 레코드 집합을 XML로 표현하는겁니다. 요즘 프레임워크 설정부터 , 어플리케이션 인프라 Configuration , 웹서비스는 물론, Ajax,flex 등의 web rich client 등등..XML의 사용빈도는 점점 증가 하고 있습니다.이 시점에서 오라클에서 제공하는 XML 지원 패키지에 대해 알아보는 시간을 갖도록하죠.  시작)SELECT 절에 의해 생성된 레코드를 Java 나 pro* c , .net 등의 미들 tier 에서 별도의 XML파싱 작업을 하지않고, 오라클에서 제공하는 패키지를 이용하여 손쉽게 XML으로 표현할수 있다. 9i와 10..

DataBase/Oracle 2012.05.31

Table Function

업무를 수행하다 보면 Result Set 전체를 인자 값으로 받아서 결과를 Return하고자 하는 경우가 종종 있다. 이때 Oracle Table Function을 사용하면 이를 간단히 해결할 수 있다. Oracle Table Function은 Result Set(Multi column + Multi Row)의 형태를 인자 값으로 받아들여 값을 Return할 수 있는 PL/SQL Function이고, Pipelined Table Function은 Oracle Table Function과 마찬가지로 Result Set의 형태로 인자 값을 제공하거나 전체 집합을 한번에 처리하지 않고 Row 단위로 한 건씩 처리하는 Function으로 PL/SQL의 부분범위 처리를 가능하게 해주는 Function이다. 그럼 ..

DataBase/Oracle 2012.05.22

임시테이블

임시 테이블을 생성하되 duration은 transaction단위로 한다는 것을 기억해야 합니다. 아래의 순서를 따라 하시면 임시 테이블을 만드실 수 있습니다. [출처] [Oracle] 임시테이블 사용하기|작성자 구미지엔 1. 임시 테이블생성 SQL> create global temporary table temp_tab (col1 number, col2 char(15)) on commit delete rows ; --> on commit delete rows 를 잘 기억해 두세요. [Commit 을 하면 삭제작업을 하는것으로 설정한다는 말입니다.] 2. 임시 테이블에 인덱스 만들기 SQL> create index temp_tab_n1 on temp_tab(col1); 3. 임시 테이블에 데이터 인서트 S..

DataBase/Oracle 2012.05.22

Oracel With 구문...

오라클에서 제공하는 기능중 하나인 WITH 문법을 아시나요? 정말이지 이런 문법을 알게 되고 나서의 오라클 SQL 작업시 너무 편하더군요. ^^ 한번 이용해 보세요. http://psoug.org/reference/with.html 이 사이트에 가시면 사용법을 잘 설명을 해 놓았습니다. 단독 또는 복수로 작업을 할수 있어서 편리합니다. 간단히 사용 문법을 정리를 하면.. - 단독사용시 WITH TMP AS ( SELECT 1 AS NO, '홍길동' AS NAME FROM DUAL UNION ALL SELECT 2 AS NO, '김말순' AS NAME FROM DUAL ) SELECT * FROM TMP - 복수 사용시 WITH TMP_A AS ( SELECT 1 AS NO, '홍길동' AS NAME FR..

DataBase/Oracle 2012.05.22
728x90
반응형