본문 바로가기

DataBase

Oracle Regular Expression(정규표현식) Oracle Regular Expression(정규표현식)Oracle Database 10g에 추가된 새로운 기능을 이용하여 문자 데이터의 검색, 처리 능력을 극적으로 개선할 수 있습니다. 정규 표현식(regular expression)이라 불리는 이 기능은, 텍스트 패턴을 기술하기 위한 일종의 표기법으로, 이미 오래 전부터 다양한 프로그래밍 언어와 UNIX 유틸리티를 통해 지원되어 왔습니다.정규표현식이란?정규 표현식은 하나 또는 그 이상의 문자열과 메타문자(metacharacter)로 구성됩니다. 가장 단순한 형태의 정규 표현식은 cat과 같은 단 하나의 문자열로만 구성될 수 있습니다. 이 정규 표현식은 문자 c와 문자 a, 문자 t의 순서를 갖는 패턴 매치 문자열로 cat, location, cata.. 더보기
유용한 Oracle 스크립트 ------------------------------------------------------------------------------------- ※ ORACLE SID 확인 SELECT INSTANCE FROM V$THREAD; ------------------------------------------------------------------------------------- ※ ORACLE DB_NAME 확인 SELECT NAME FROM V$DATABASE; ------------------------------------------------------------------------------------- ※ ORACLE VERSION 확인 SELECT * FROM V$VERSION;.. 더보기
SID와 Service_name의 차이 SID : 하나의 DB 인스턴스 이름 Service Name : 하나 이상의 인스턴스를 그룹으로 묶어서 구성하였을 때, 그 그룹의 이름 예를 들어서, 한 시스템에 Oracle을 설치하고 2개의 인스턴스를 각각 ora1, ora2 란 이름으로 생성하였다고 하면, 각각의 인스턴스는 ora1, ora2 라는 SID를 갖게 된다. 그리고 이 인스턴스들을 한데 묶어서 그 그룹에 oragp 라는 이름을 부여하였다면, 그 이름이 바로 Service Name이 된다. 앞에서 언급했듯, 하나의 DB에 한 개의 인스턴스만 사용하는 경우가 많아서 SID와 Service Name을 특별한 구분없이 사용하는데, 만일 인스턴스가 여러 개라면 더 신중하게 사용해야 할 것이다. 더보기
[tnsnames.ora] file for connection load balancing setting === Oracle DB 커넥션 로드 밸런스 설정 시 tnsnames.ora 를 설정하는 예제 === Load Balancing ??부하 분산이라고 부르며 주로 1곳의 DB나 서버로 사용자 접속이 폭주하여 부하가 발생하는 것을 방지하고자 동일한 환경의 DB나 서버를 여러 대 두어 접속이 한 곳에 일방적으로 몰리지 않도록 분산시켜주는 기술을 일컫는다.(KT의 스타워즈 빠름빠름 광고를 생각하면 됨)또한, 한 곳의 DB나 서버에 장애가 발생할 경우 다른 DB나 서버로 접속되기 때문에 운영 측면에서도 효과적이다. 예를 들어 3개의 접근 가능한 DB가 있다고 가정하고... "DB이름"= (DESCRIPTION= (LOAD_BALANCE=OFF) (ADDRESS=(PROTOCOL=TCP) (HOST="첫 번째 DB.. 더보기
오라클 힌트와 사용법 * 오라클 hint 모음 * ALL_ROWS /*+ ALL_ROWS */- 최소한의 자원을 사용하여 결과값의 전체를 추출하게 합니다. AND_EQUAL /*+ AND_EQUAL (table index index [index] [index] [index] ) */- 복수의 단일 컬럼을 스캔하여 머지 방식으로 처리하게 합니다. APPEND_HINT /*+ APPEND */- 직렬 모드 데이터베이스에서 Direct INSERT를 실행하게 합니다.- Enterprise Edition 이 아닌 데이터베이스의 기본 모드는 직렬 모드입니다. 이러한 직렬 모드 데이터 베이스에서의 INSERT 작업은 Conventional를 기본값으로 하고 병렬 처리 시에는 Direct INSERT를 기본값으로 합니다. CACHE_HI.. 더보기
ROWNUM이란 뭣인가? ROWNUM의 활용 ROWNUM이란 어떤 테이블 내에 물리적으로 저장되어 있는 컬럼이 아니라 SYSDATE나 USER 등과 같이 모든 SQL에 그대로 삽입해서 사용할 수 있는 가상(Pseudo)의 컬럼이다. SQL이 실행되는 과정에서 발생하는 일련번호이므로 각 SQL수행시마다 같은 로우라 하더라도 서로 다른 ROWNUM을 가질 수 있다. 그러므로 이러한 내부적인 값을 조건절에 사용하여 우리가 원하는 만큼만 처리가 수행되도록 할 수 있다. 이 방법 역시 전체를 처리하지 않고 일부만 처리하도록 유도하는 방법이므로 하나의 부분범위처리라고 말할 수 있다. SQL 실행과정의 어느 특정 부분에서 ROWNUM이 결정되어지므로 정확히 알지 못하고 사용하면 우리가 원하지 않는 결과가 추출될 수도 있다. ROWNUM이 결.. 더보기
계층 쿼리 사용법을 배워보자! 계층 쿼리의 사용법 계급적이고 수직적인 데이터를 표현하는 방법으로 ORACLE에서는 CONNECT BY 구문을 제공하고 있다. 하지만 많은 개발자들은 사용이 어렵다는 점과 성능상의 이유로 해당 구문의 사용을 기피하고 있다. 이러한 이유로 CONNECT BY 구문의 다양한 사용법과 해당 구문으로 최적의 성능을 보장받을 수 있는 방법에 대해 알아볼 필요가 있다 첫 번째로 START WITH, CONNECT BY 기본 사용문법 및 각 구문의 특징에 대해 알아보자. SELECT column_list FROM table_joins | tables [WHERE join_conditions and/or filtering_conditions] [START WITH conditions] CONNECT BY [NOCYCL.. 더보기
CentOS에 mongoDB 설치하기 1. 몽고DB 패키지로 설치 http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages * 10gen 에서 x86 과 x86_64 플랫폼에 대한 yum 설치가능 rpm 패키지를 제공하고 있음. * 릴리즈 된 패키지들의 이름은 mongo-10gen 과 mongo-10gen-server임. * 안정화되지 않은 개발 버젼은 mongo-10gen-unstable 과 mongo-10gen-unstable-server임. 이제 /etc/yum.repos.d/ 에 repository 를 설정하도록 해야함. 64비트 플랫폼일 경우 [10gen] name=10gen Repository baseurl=http://downloads-distro.mongodb.org/re.. 더보기
윈도우에서 mongoDB 설치하기 MongoDB 설치를 정리합니다. 1. OS에 맞는 버전을 다운로드 합니다. http://www.mongodb.org/downloads 2. 다운로드 한 파일을 압축을 풉니다. 이 압축을 푼 곳이 실행파일이 있는 곳이니 폴더 명을 원하는 대로 변경합니다. - bin 폴더에 실행 파일들이 있습니다. - 압축을 푸는 것으로 설치는 사실상 끝입니다. ^^ 3. DB 파일을 저장할 곳의 디랙토리를 만듭니다. - 해당 디렉토리는 쓰기 권한이 존재해야 합니다. - 저는 D:\MongoDB\DATA\DB 폴더를 만들고 관리자 권한에 쓰기 권한을 줍니다. 서비스가 실행되는 계정에 줘야겠지요!! 4. 몽고 DB 서비스를 시작해 봅니다. - 어디서든 실행될 수 있게 컴퓨터 환경 변수에 압축을 푼 경로의 bin 폴더를 PA.. 더보기
오라클 단일 행 함수 ------------------------------------------------------------------------------------ - 단일 행 함수 - -------------------------------------------------------------------------------------* initcap - 첫번째 영문자만 대문자로 바꾸어준다.select ename, initcap(ename) from emp; --> 결과값 : KEVIN --> Kevin-------------------------------------------------------------------------------------* concat - 문자열 합치기. ||와 같으나 최대 2개만 .. 더보기