2010. 6. 29. 14:24

[Oracle] PL/SQL

PL/SQL 이란 ?
    -  PL/SQL 은 Oracle’s Procedural Language extension to SQL. 의 약자 입니다.
    -  SQL문장에서 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR)등을 지원하며, 오라클 자체에      
        내장되어 있는 Procedure Language입니다
    -  DECLARE문을 이용하여 정의되며, 선언문의 사용은 선택 사항입니다.
    -  PL/SQL 문은 블록 구조로 되어 있고 PL/SQL 자신이 컴파일 엔진을 가지고 있습니다
    
PL/SQL의 장점 
    -  PL/SQL 문은 BLOCK 구조로 다수의 SQL 문을 한번에 ORACLE DB 로 보내서 처리하므로 수행속도를
        향상 시킬수 있습니다.
    -  PL/SQL 의 모든 요소는 하나 또는 두개이상의 블록으로 구성하여 모듈화가 가능하다.
    -  보다 강력한 프로그램을 작성하기 위해서 큰 블록안에 소블럭을 위치시킬 수 있습니다.
    -  Variable, Constant, Cursor, Exception을 정의하고, SQL문장과 Procedural 문장에서 사용합니다.
    -  단순, 복잡한 데이터형태의 변수를 선언합니다.
    -  테이블의 데이터 구조와 DataBase의 컬럼럼에 준하여 동적으로 변수를 선언 할 수 있습니다.
    -  Exception 처리 루틴을 이용하여 Oracle Server Error를 처리합니다.
    -  사용자 정의 에러를 선언하고 Exception 처리 루틴으로 처리 가능 합니다.


1. 프로시져
    -  특정 작업을 수행할수 있고, 이름이 있는 PL/SQL 블록으로서. 매개 변수를 받을수 있고, 반복적으로 
       사용할수 있습니다. 보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL블록을 데이터
       베이스에 저장하기 위해 생성합니다. 
    
     * CREATE OR REPLACE 구문을 사용하여 생성합니다. 
     * IS 로 PL/SQL의 블록을 시작합니다. 
     * LOCAL 변수는 IS 와 BEGIN 사이에 선언합니다.     
    

2. 함수(Function)
    -  보통 값을 계산하고 결과값을 반환하기 위해서 함수를 많이 사용 합니다.
    -  대부분 구성이 프로시저와 유사 하지만 IN 파라미터만 사용 할 수 있습니다.
    -  반드시 반환될 값의 데이터 타입을 RETURN문에 선언해야 합니다.
    -  또한 PL/SQL블록 내에서 RETURN문을 통해서 반드시 값을 반환해야 합니다.

3. package
    -  패키지(package)는 오라클 데이터베이스에 저장되어 있는 서로 관련있는 PL/SQL 프로지져와 함수들의
        집합 입니다
    -  패키지는 선언부와 본문 두 부분으로 나누어 집니다.  

4. 트리거
    -  INSERT, UPDATE, DELETE문이 TABLE에 대해 행해질 때 묵시적으로 수행되는 PROCEDURE 입니다.
    -  Trigger는 TABLE과는 별도로 DATABASE에 저장됩니다.
    -  Trigger는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있습니다.

2010. 6. 28. 11:46

[Oracle] 함수 정리

CEIL

:: 소수점 이후의 값은 무조건 올림하는 함수.

 

MOD

:: 두 수를 나눈 나머지 값을 구하는 함수.

 

POWER

:: 승수 값을 구하는 함수.

[예] SQL> select POWER(3, 2), POWER(3, -2) from dual;

[결과] 9          .11111111

 

ROUND

:: 반올림 값을 구하는 함수.

[예] SQL> select ROUND(345.123, 0), ROUND(345.123, 2), round(345.123, -1) from dual;

[결과] 345          345.12          350

 

TRUNC

:: 버림 값을 구하는 함수.

[예] SQL> select TRUNC(345.123, 2), TRUNC(345.123, 0), trunc(345.123, -1) from dual;

[결과] 345.1          345          340

 

SIGN

:: 해당 값이 양수면 1, 음수면 -1, 0이면 0을 돌려준다.

[예] SQL> select SIGN(345.123), SIGN(0), SIGN(-345.123) from dual;

[결과] 1          0          -1

 

CHR, ASCII

:: ASCII은 문자로, 문자는 ASCII 값으로 반환하는 함수.

[예] SQL> select CHR(65), ASCII('A') from dual;

[결과] A          65

 

LOWER, UPPER

:: 문자열을 소문자와 대문자로 반환하는 함수.

[예] SQL> select LOWER('My'), UPPER('My') from dual;

[결과] my          MY

 

LPAD(char1, n, char2)

:: n 자리 만큼의 공간에서 char1을 오른쪽에 붙이고, 나머지 공간을 char2로 채운다.

RPAD(char1, n, char2)

:: n 자리 만큼의 공간에서 char1을 왼쪽에 붙이고, 나머지 공간을 char2로 채운다.

[예] SQL> select LPAD('LDH', 10, '#'), RPAD('LDH', 10, '#') from dual;

[결과] #######LDH          LDH#######

 

LTRIM, RTRIM

:: 각 각 오른쪽(LTRIM)과 왼쪾(RTRIM)의 공백(Space)을 제거한다.

 

REPLACE(char1, char2, char3)

:: char1 문자열에서 char2를 char3으로 치환하는 함수.

[예] SQL> select REPLACE('Orange', 'O', 'A') from dual;

[결과] Arange

 

SUBSTR(char1, n, m)

:: char1 문자열의 n번째부터 시작해서 m번째까지의 문자열을 리턴한다.

[예] SQL> select SUBSTR('오라클 Oracle', 1, 3) from dual;

[결과] '오라클'

[예] SQL> select SUBSTR('오라클 Oracle', 7, 9) from dual;

[결과] 'acl'

[예] SQL> select SUBSTR('오라클 Oracle', 10) from dual;

[결과] 'e'

 

SUBSTRB

:: 바이트 단위로 계산하여 문자열을 치환하는 함수.

[예] SQL> select SUBSTRB('오라클 Oracle', 1, 3) from dual;

[결과] '오'

[예] SQL> select SUBSTRB('오라클 Oracle', 7, 9) from dual;

[결과] ' Or'

[예] SQL> select SUBSTRB('오라클 Oracle', 10) from dual;

[결과] 'acle'

 

LENGTH, LENGTHB

:: 문자열의 길이를 나타낸다.

[예] SQL> select LENGTH(운동(축구)), LENGTH(운동(축구)) from dual;

[결과] 6          10

 

INSTR(char1, char2, n, m)

:: char1에서 char2가 포함된 문자열의 위치가 char1을 기준으로 n번째 위치부터 시작해서 m번째로 char2와 같은 위치를 돌려준다.

 

INSTRB(char1, char2, n, m)

:: 바이트 단위로 내용은 위와 같다.

[예] SQL> INSTR('간장콩장공장장', '장', 1, 2), INSTRB(간장콩장공장장', '장', 1, 2) from dual;

[결과] 4          7

[예] SQL> INSTR('Corporate Floor', 'or', 3, 2), INSTRB('Corporate Floor', 'or', 3, 2) from dual;

[결과] 11          11

[예] SQL> INSTR('오라클 Oracle', 'r', 1, 1), INSTRB('오라클 Oracle', 'r', 1, 1) from dual;

[결과] 6          9

 

SYSDATE

:: 현재의 일자와 시간을 의미하고, 기본값으로 오늘일자를 돌려준다.

[예] SQL> select SYSDATE from dual;

[결과] 04/04/19

[예] SQL> select to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') from dual;

[결과] 2004-04-19 00:44:20

 

LAST_DAY

:: 해당 월의 마지막 날짜를 돌려준다.

[예] SQL> select LAST_DAY(SYSDATE), SYSDATE from dual;

[결과] 04/04/30          04/04/19

 

MONTH_BETWEEN(date1, date2)

:: date1과 date2를 월 단위로 계산하여 그 값을 리턴한다. 만약, date1이 date2보다 크면, 양수의 결과가 나온다.

[예] SQL> select MONTH_BETWEEN('2004-01-19', '2004-04-19') from dual;

[결과] -3

 

ADD_MONTHS(date, n)

:: date의 n개월 후의 값을 리턴한다.

[예] SQL> select ADD_MONTHS(SYSDATE, 2), SYSDATE from dual;

[결과] 04/06/19          04/04/19

 

NEXT_DAY(date, n)

:: date를 기준으로 n요일에 해당하는 다음 날짜를 리턴한다.

[예] SQL> select NEXT_DAY(SYSDATE, 2), NEXT_DAY(SYSDATE, 7), SYSDATE from dual;

[결과] 04/04/20          04/04/25          04/04/19

 

TO_CHAR(n), TO_CHAR(n, format), TO_CHAR(date, format)

:: n을 format 형식의 문자로 바꾸는 함수.

[예] SQL> select TO_CHAR(123.456) from dual;

[결과] 123

[예] SQL> select TO_CHAR(123456.789, '999,999.9999') from dual;

[결과] 123, 456.7890

[예] SQL> select TO_CHAR(SYSDATE, 'YYYY') from dual;

[결과] 2004

 

TO_NUMBER(char), TO_NUMBER(char, format)

:: char를 format 형식의 숫자로 바꾸는 함수.

[예] SQL> select TO_NUMBER('123.12') from dual;

[결과] 123.12

[예] SQL> select TO_NUMBER('123.12', '999.999') from dual;

[결과] 123.120

 

TO_DATE(char), TO_DATE(char, format)

[예] SQL> select TO_DATE('20040419') from dual;

[결과] 2004-04-19 00:00:00

[예] SQL> select TO_DATE('20040419', 'YY/MM/DD') from dual;

[결과] 04/04/19

 

AVG(column_name)

:: 해당 컬럼의 평균값을 리턴한다.

 

MAX(column_name)

:: 해당 컬럼에서 제일 큰 값을 리턴한다.

 

MIN(column_name)

:: 해당 컬럼에서 제일 작은 값을 리턴한다.

 

SUN(column_name)

:: 해당 컬럼의 합계를 리턴한다.

 

COUNT(column_name)

:: 조회건수를 리턴한다.

 

NVL(column_name, 대신할 데이터)

:: 해당 컬럼이 Null일 경우, 대신할 문자나 숫자 등을 대신 사용한다.

 

DECODE

:: 연속된 조거문이라고 할 수 있는데, 가장 자주 쓰이는 함수 중에 하나이다.

[예] SQL> select DECODE(idx, 10, '가', 20, '나', 30, '다', 40, '라') from dual;

[설명] idx가 10이면 '가'이고, 20이면 '나'이고, 30이면 '다'이고, ...

 

USERENV

:: 현재 세션의 환경 정보를 반환한다.

ENTRYID : 사용 가능한 Auditing entry Identifier를 반환.
LABEL : 현재 세션의 Label을 반환.
LANGUAGE : 현재 세션에서 사용중인 언어와 테리토리 값을 반환.
SESSIONID : Auditing(감사) Session ID를 반환.
TERMINAL : 현재 세션 터미널의 OS ID를 반환.

 

GREATEST(n1, n2, n3, ...)

:: 숫자나 문자 아무거나 나열하면 그 중에 가장 큰 값을 반환한다.

 

LEAST(n1, n2, n3, ...)

:: 숫자나 문자 아무거나 나열하면 그 중에 가장 작은 값을 반환한다.

 

UID, USER

:: 사용자 ID와 사용자의 OWNER를 돌려준다.


2010. 5. 31. 18:59

[Oracle] 윈도우7에 Oracle 10g 설치 에러 발생시

* 10204_vista_w2k8_x64_production_db 압축배포판 기준으로 설명하겠습니다.

1.10204_vista_w2k8_x64_production_db\database\install 폴더안에 있는
  oraparam.ini 파일을 열어줍니다

[Certified Versions]
#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
Windows=5.0,5.1,5.2,6.0

를 찾아서 다음과 같이 바꿔줍니다

[Certified Versions]
#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
Windows=5.0,5.1,5.2,6.0,6.1

2. 10204_vista_w2k8_x64_production_db\database\stage\prereq\db폴더 안에 있는
  refhost.xml 파일을 열어줍니다
<CERTIFIED_SYSTEMS>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.0"/>
      <SERVICE_PACK VALUE="1"/>
    </OPERATING_SYSTEM>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.1"/>
      <SERVICE_PACK VALUE="1"/>
    </OPERATING_SYSTEM>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.2"/>
    </OPERATING_SYSTEM>
    <!--Microsoft Windows Vista-->
    <OPERATING_SYSTEM>
      <VERSION VALUE="6.0"/>
    </OPERATING_SYSTEM>
  </CERTIFIED_SYSTEMS>          를 찾아서

<CERTIFIED_SYSTEMS>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.0"/>
      <SERVICE_PACK VALUE="1"/>
    </OPERATING_SYSTEM>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.1"/>
      <SERVICE_PACK VALUE="1"/>
    </OPERATING_SYSTEM>
    <OPERATING_SYSTEM>
      <VERSION VALUE="5.2"/>
    </OPERATING_SYSTEM>
    <!--Microsoft Windows Vista-->
    <OPERATING_SYSTEM>
      <VERSION VALUE="6.0"/>
    </OPERATING_SYSTEM>
    <OPERATING_SYSTEM>
      <VERSION VALUE="6.1"/>
    </OPERATING_SYSTEM>
   
  </CERTIFIED_SYSTEMS>

로 바꿔줍니다

3. 10204_vista_w2k8_x64_production_db\database\stage\prereq\db_prereqs\db 폴더 안에 있는
  refhost.xml 파일을 열어줍니다  (주의 : 2번의 폴더 경로와 다릅니다 확인해주세요.)

파일을 열고 2번과 똑같이 작업해 줍니다. 

이렇게 작업하시고 다시 설치를 진행해보시면 설치 전 검사를 통과할 수 있습니다.

그런데 설치하려고 일반설치를 누르면 설치경로가 잘못됬다고 하면서 어쩌구저쩌구 됩니다.

이건 드라이브경로나 폴더명을 바꿔도 진행이 안되니 아래쪽의 고급설치로 진행하시면 됩니다.

2010. 5. 11. 18:42

[Oracle] SYSDATE를 이용한 날짜 및 시간 조정

SQL> select sysdate, to_char(sysdate, 'HH:MI:SS')       
           from dual

SYSDATE  TO_CHAR(SYSDATE,
-------- ----------------
10/04/03 02:13:02

         select to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') sysdate from dual
           from dual

SYSDAT            
-------------------
2010-12-13 19:28:54

SYSDATE는 시,분,초도 포함되어 있다. 그런데 그냥 출력하면 나오진 않는다.

이때 to_char을 써서 문자로 출력을 해야 한다. 주목해야 할 점은 문자를 날짜로 출력하고 있다는 것이다.

 

-- 오늘부터 100달 뒤의 날짜의 요일을 구하시요.

SQL> select to_char(add_months(sysdate,100),'day')
           from dual;

TO_CHAR(ADD_MONTHS(SYSDA
------------------------
금요일

 

-- 오늘부터 100달뒤 돌아오는 월요일의 날짜를 구하시요.

SQL> select next_day(add_months(sysdate,100),'월')
           from dual;

NEXT_DAY
--------
18/08/06



-- 기타 날짜 및 시간 조정

SELECT  TO_CHAR(SYSDATE - 0.1, 'HH:MI')  '1시간 12분 전', 
             TO_CHAR(SYSDATE + (30/60)/24, 'HH:MI')  '30분 후', 
             TO_CHAR(SYSDATE + 3/24, 'HH:MI')  '3시간 후', 
             TO_CHAR(SYSDATE + 3, 'MM/DD')  '3일 후'
    FROM DUAL;

2010. 3. 16. 20:57

[Oracle] Windows 서버에서 오라클 Thread 죽이기

동시 트랜잭션이 많이 몰려 있는 상태이거나 트랜잭션이 길다면

세션을 kill 해도 말씀하신대로 세션의 상태가 완전히 kill 되지는 않습니다.

 

 Windows는 Thread 개념으로 운영 됩니다.

즉 한개의 oracle process안에 여러개의 thread를 통하여 운영합니다.

Unix 상의 oracle process는 windows의 thread에 해당 됩니다.

1) 해당 session에 대한 THREAD ID를 찾습니다.

아래에서 spid가 thread id가 됩니다.


SELECT SPID, OSUSER, S.PROGRAM
FROM V$PROCESS P, V$SESSION S
WHERE P.ADDR = S.PADDR
and S.SID=<sid number>;


2) orakill utility를 사용하여 Thread 를 kill 합니다.

C:> orakill ORACLE_SID thread

ORACLE_SID = 대상이 되는 오라클 인스턴스
thread = kill하고 싶은 thread id

 

[펌] 데이타베이스 사랑넷

2009. 4. 15. 14:55

[Oracle] 오라클 객체(1) [인덱스(Index)]

인덱스는 테이블이나 클러스트에서 쓰여지는 선택적인 객체로서, 오라클 데이터베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조 입니다.

 

자동 인덱스 : 프라이머리 키 또는 unique 제한 규칙에 의해 자동적으로 생성되는 인덱스 입니다.

 

수동 인덱스 : CREATE INDEX 명령을 실행해서 만드는 인덱스들 입니다.

 

※ Index를 생성하는 것이 좋은 Column

- WHERE절이나 join조건 안에서 자주 사용되는 컬럼

- null값이 많이 포함되어 있는 컬럼

- WHERE절이나 join조건에서 자주 사용되는 두 개이상의 컬럼들

 

※ 다음과 같은 경우에는 index 생성이 불필요 합니다.

- table이 작을 때

- 테이블이 자주 갱신될 때

 

※ 오라클 인덱스는 B-tree(binary search tree)에 대한 원리를 기반으로 하고 있습니다.

 

B-tree인덱스는 컬럼안에 독특한 데이터가 많을 때 가장 좋은 효과를 냅니다.

 

이 알고리즘 원리는

 

- 주어진 값을 리스트이 중간점에 있는 값과 비교합니다.

  만약 그 값이 더 크면 리스트의 아래쪽 반을 버립니다.

  만약 그 값이 더 작다면 위쪽 반을 버립ㄴ디ㅏ.

 

- 하나의 값이 발견될 때 까지 또는 리스트가 끝날 때까지 그와 같은 작업을 다른 반쪽에도 반복합니다.

 

                                                                                                                                  

※ 인덱스는 B-tree 구조를 가지며 크게 다음 네 가지로 분류될 수 있습니다.

 

1) Bitmap 인덱스

 

- 비트맵 인덱스는 각 컬럼에 대해 적은 개수의 독특한 값이 있을 경우에 가장 잘 작동합니다. 그러므로 비트맵 인덱스는 B-tree 인덱스가 사용되지 않을 경우에서 성능을 향상 시킵니다. 테이블이 매우 크거나 수정/변경이 잘 일어나지 않는 경우에 사용할수 있습니다.

 

SQL> CREATE BITMAP INDEX emp_deptno_indx

          ON emp(deptno);

 

 

2) Unique 인덱스

 

- Unique 인덱스는 인덱스를 사용한 컬럼의 중복값들을 포함하지 않고 사용할 수 있는 장점이 있습니다. 프라이머리키와 Unique 제약 조건시 생성되는 인덱스는 Unique 인덱스 입니다.

 

SQL> CREATE UNIQUE INDEX emp_ename_indx

          ON emp(ename);

 

3) Non-Unique 인덱스

 

- Non-Unique 인덱스는 인덱스를 사용한 컬럼에 중복 데이터 값을 가질수 있습니다.

 

SQL> CREATE INDEX dept_dname_indx

          ON dept(dname);

 

4) 결합(Concatenated(=Composite)) 인덱스

 

- 복수개의 컬럼에 생성할 수 있으며 복수키 인덱스가 가질수 있는 최대 컬럼값은 16개 입니다.

 

SQL> CREATE UNIQUE INDEX emp_empno_ename_indx

          ON emp(empno, ename);

 

                                                                                                                                  

** 인덱스의 삭제 **

 

- 인덱스의 구조는 테이블과 독립적이므로 인덱스의 삭제는 테이블의 데이터에는 아무런 영향도 미치지 않습니다.

 

- 인덱스를 삭제하려면 INDEX의 소유자이거나 DROP ANY INDEX권한을 가지고 있어야 합니다.

 

- INDEX는 ALTER를 할 수 없습니다.

 

SQL> DROP INDEX emp_empno_ename_indx;

 

                                                                                                                                  

※ 인덱스에 대한 정보는 USER_INDEXS 뷰 또는 USER_IND_COLUMNS 뷰를 통해 검색할 수 있습니다.

 

SQL> SELECT index_name, index_type

          FROM USER_INDEXS

          WHERE table_name = 'EMP';

 

INDEX_NAME                        INDEX_TYPE
---------------------------     -----------
EMP_DEPTNO_INDX                BITMAP
EMP_PK_EMPNO                    NORMAL

 

                                                                                                                                  

 


  ================================================
    * Oracle Community OracleClub.com
    * http://www.oracleclub.com
    * http://www.oramaster.net
    * 운영자 : 김정식 (oramaster _at_ empal.com)
  ================================================
※ 강좌를 다른 홈페이지에 기재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

2008. 10. 8. 17:14

[Oracle] 오라클이란?

 Oracle Corporation이란 미국의 기업에서 만든 데이터 베이스 관리 시스템  입니다.

Oracle 은 Database 에서 가장 많이 쓰이며, 기능 또한 가장 좋은 것으로 알려진 최고의 Database 입니다.

Oracle 을 잘 다룬다고 하면 Database 에 대해서 전문적인 지식을 가지고 있다고 할 만큼

Database = Oracle 라는 인식이 저변에 확대되어 있는 것이 사실입니다.

Microsoft 사의 MS-SQL 버전이 높아지면서 많은 향상된 기능들과 편리한 기능들 그리고 Microsoft 의 OS와 접목된 최적화된 설계로 Oracle 의 시장을 넘보고 있지만 아직까지  Oracle 은 Database 분야에서 선두의 자리를 고수하고 있습니다.

Database 라는 것이 이제는 몰라서는 안 되는 IT 기술의 하나로 되고,  또한 Database 라는 곳이 쓰이는 곳이 많다 보니, DBA 의 중요성은 날로 높아진다고 할 수 있습니다.

이와 함께 많은 사람들이 관심을 갖게된 Oracle의 자격증이 OCP-DBA 자격증입니다.

Database 와 같은 경우는 처음에 공부하기가 조금은 힘든 분야입니다.

용어도 생소하고, 또한 개념 이해도 힘들기 때문에, 처음에 많은 시간을 투자하셔서 공부를 해야 후에 다른 어떤 Database 를 접하게 되어도 접근이 빠릅니다.

사실, Oracle 은 Database 가 복잡하고 많은 기능들이 있다 보니,

처음에 접근하기 힘든 것이 사실입니다만 Oracle DB 를 이해하고 난 다음에

다른 DB 를 공부하는 것은 그만큼 쉬운 것이 사실입니다.

공부를 하시면서 가장 유의할 점은 이해 위주의 공부를 하시라는 것입니다.  

Oracle(오라클)

미국 오라클사의 관계 데이터베이스 관리 시스템(RDBMS)의 이름으로.

유닉스 환경에서 사용되는 RDBMS로는 현재 가장 널리 사용되는 대표적인 제품의 하나이다.

검색·갱신용 언어로는 국제 표준화 기구(ISO)에서 표준화한 구조화 조회 언어(SQL)가 표준이 되어 있다.  최신 현행판은 오라클 9i 입니다..

Oracle Corporation == 2000년 6월 기준 ==

1977년 로렌스 J. 엘리슨(Lawrence J. Ellison)이 설립하였다.

본사는 미국 캘리포니아주 레드우드 오라클 파크웨이에 있다.

오라클(Oracle)이란 회사명은 고대 그리스어의 ‘신탁(神託)’에서 유래하였다.

2000년 2월 현재, 97억 달러의 수익을 올려 마이크로소프트(MS)에 이어 세계 제2위 규모의 독립적

소프트웨어 기업으로 성장하였다. 전세계 145개국에 지사가 있으며, 종업원수는 총 4만 3,000명이다.

오라클의 초고속 성장배경에는 인터넷의 무한한 가능성을 예견한 엘리슨 회장의 경영전략이 있다.

그는 인터넷에 오라클의 데이터베이스를 접목시켜, 부담스러운 저장장치 없이도 중앙처리장치(CPU)와 적은 양의 메모리만으로 운영할 수 있는 네트워크 컴퓨터(NC)를 창안함으로써 성장의 발판을 마련하였다.

그 후 오라클은 포스트 PC 시대에 대비한 제품을 잇따라 개발하였다.

마이크로소프트(MS)가 PC 기반에서 절대적인 영향력을 발휘하는 윈도우 운영체계를 만들었다면,

오라클은 인터넷 서버를 통해 정보를 공유하는 포스트 PC 시대에 핵심 기술로 부상한 데이터베이스

분야에서 독보적인 위치를 확보하였다.

오라클의 성장은 인터넷 전자상거래와 깊은 연관이 있다. 1999년 응용프로그램 판매를 통해 4억 4,700만 달러의 매출을 기록했고, 컨설팅과 서비스 수익으로 15억 달러의 수익을 올렸다.

2000년 6월 현재, 기업용 데이터베이스(DB) 분야에서 세계 시장의 절반 이상을 장악하고 있다.

'Database / Sql' 카테고리의 다른 글

[Oracle] 통계 함수  (0) 2008.10.21
[Oracle] 오라클 관련 함수들과 정보들  (0) 2008.10.21
[Oracle] 함수 모음  (0) 2008.10.21
SQL의 종류  (0) 2008.10.08
[Oracle] sid 확인  (0) 2008.10.08