'02.Oracle'에 해당되는 글 248건

  1. 2009.04.06 connection pool 만들기
  2. 2009.04.04 [Oracle] 언어설정 변경 charset
  3. 2009.04.04 oracle 페이지당 10개씩 게시물 확인
  4. 2009.04.04 oracle 파일구조
  5. 2009.04.04 oracle 윈도우 환경에서 메모리 설정하기
  6. 2009.04.04 리스너가 실행 중인지 확인하는 방법
  7. 2009.04.04 tns/listener 설정하기
  8. 2009.04.04 startup/shutdown immediate
  9. 2009.04.04 oracle 설치시 ModName: ntdll.dll 문제 1
  10. 2009.04.04 솔라리스에 오라클 설치하기 (9i)
  11. 2009.02.18 MS SQL Server 2000 용 JDBC 드라이버
  12. 2009.02.18 자바스크립트 튜토리얼
  13. 2009.02.06 오라클 에러코드 확인 사이트
  14. 2009.01.30 우선 BLOB, CLOB을 DB에서 SELECT 해서 사용하는
  15. 2009.01.30 Oracle Clob를 이용한 예제
  16. 2009.01.28 여러 행 SELECT해서 INSERT 하기
  17. 2009.01.22 오라클의 날짜 함수 1
  18. 2009.01.19 clob 사용법
  19. 2009.01.19 오라클 내부 함수
  20. 2008.12.22 oracle archive mod 전환:::
  21. 2008.12.22 오라클 9i 임포트 가이드 (import)
  22. 2008.12.16 Quick Installation Guide for Solaris Operating System (SPARC)
  23. 2008.12.16 oracle 11g 설치 가이드(모든 OS)
  24. 2008.12.08 [oracle] oracle number jdbc 에서 가져올때 변환되는 형식
  25. 2008.12.02 oracle table drop (오라클 테이블 삭제복구)
  26. 2008.11.28 oracle 실수로 지운 데이터 살리기
  27. 2008.11.28 정규식 사용하여 sql 쿼리 쉽게 만들기
  28. 2008.11.28 소스변경없이 JDBC를 사용하는(IBATIS, Hibernate등 ORM포함) 모든 SQL logging
  29. 2008.11.28 sql 달력
  30. 2008.11.26 [oracle] 모든 테이블명과 주석 보기..
02.Oracle/DataBase2009. 4. 6. 14:54
반응형
  • server.xml 파일에 아래의 내용을 추가/변경한다.


MySQL 기반

<Context docBase="프로젝트이름" path="/프로젝트이름" reloadable="true" source="org.eclipse.jst.j2ee.server:프로젝트이름">
     
           <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource"
           maxActive="5" maxIdle="3" maxWait="10000" username="접속할유저" password="접속할유저의비밀번호"
           driverClassName="com.mysql.jdbc.driver.OracleDriver" url="jdbc:mysql://ip_address:3306/접속할DB이름?toReconnect=true"/>
     
</Context>


오라클 기반

<Context docBase="프로젝트이름" path="/프로젝트이름" reloadable="true" source="org.eclipse.jst.j2ee.server:프로젝트이름">
     
           <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource"
           maxActive="5" maxIdle="3" maxWait="10000" username="접속할유저" password="접속할유저의비밀번호"
           driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@ip_address:1521:sid"/>
     
</Context>


  • web.xml에 추가할 내용

<resource-ref>

<res-ref-name>jdbc/mysql</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>


  • jsp 파일에 추가될 내용

<%@ page import = "java.sql.*, javax.sql.*, javax.naming.*" %>

<%
    Context ct = new InitialContext();
    DataSource ds = (DataSource)ct.lookup("java:comp/env/jdbc/oracle");
    Connection conn = ds.getConnection();
 %>


Posted by 1010
02.Oracle/DataBase2009. 4. 4. 16:20
반응형
현재 저장된 nls 파라미터 보기
select * from v$nls_parameters;
시퀄서버는 master DATABASE의 system table 및 view SP만 대충 훌터바도 설정사항이 다 나오는데..오라클은 좀 까탈스러운면이 많은듯하네요..


DB 종료 후
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;

-- ko16ksc5601
update sys.props$ set value$='KO16KSC5601' where name='NLS_CHARACTERSET';
update sys.props$ set value$='KO16KSC5601' where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='AMERICAN_AMERICA.KO16KSC5601' where name='NLS_LANGUAGE';
or
update sys.props$ set value$='KOREAN_KOREA.KO16KSC5601.KO16KSC5601' where name='NLS_LANGUAGE';

-- ko16mswin949
update sys.props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET';
update sys.props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='KOREAN_KOREA.KO16MSWIN949' where name='NLS_LANGUAGE';

-- UTF8
update sys.props$ set value$='UTF8' where name='NLS_CHARACTERSET';
update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';
update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';

commit;
shutdown immediate;
startup

select * from v$nls_parameters;
확인

1. Linux의 경우 설치할 때 지정해 주었던 .bash_profile 파일에서 oracle 언어 환경변수를 아래와 같이 변경
export NLS_LANG = AMERICAN_AMERICA.KO16KSC5601
2. Windows 사용자의 경우 regedit 에서
HKEY_LOCAL_MACHINE -> SOFTWARE -> HOME0 -> NLS_LANG 을
AMERICAN_AMERICA.KO16KSC5601로 수정한 후 재부팅 한다.
DB에 한국어만 사용되면 상관이 없는데...다국어 사용시 유용하리라 생각됩니다.
[출처] Oracle Charset 변경하기 입니다 (ProDBA) |작성자 콰지모도
Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:24
반응형
select *
from(
    select rownum rnum, e.*
    from (select * from emp doder by ename) e
    order by e.ename;
) ee
where ee.rnum between 1 and 10;
Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:24
반응형
데이터베이스 : 물리적인 운영체제 파일들의 집합
인스턴스 : 오라클 프로세스들과 SGA
* 데이터베이스 파일 :
  - 파라미터 파일(parameter file) : 오라클 인스턴스에게 제어파일(control file)의 위치를
    알려주는 역할을 함(init<oracle_sid>.ora)
    + init<oracle_sid>.ora, tnsnames.ora, listener.ora, sqlnet.ora,
       protocol.ora, names.ora, cman.ora, ldap.ora
    + 가장 중요한 파일은 init.ora
    + oracle 8i까지는 pfile을 이용하였으나 9i부터는 spfile을 이용함
      오라클 구동시 : pfile = filename
  - 데이터 파일(data file) : 데이터베이스에 대한 테이블, 인덱스, 그리고 모드 세그먼트들
     을 포함
    + tablespace, segment, extent, block 으로 구성
    + segment : 데이터베이스의 객체들이 저장됨
    + extent : segment를 구성하며, 하나의 extent는 파일에서 연속적으로 할당된 공간을
                 의미
    + block : extent를 구성하며, 하나의 block은 가장 작은 저장 공간 할당 단위
                 오라클은 block단위로 디스크에 읽고 쓰며, 2kb, 4kb, 8kb, 16kb, 32kb의 크기
                 중에서 선택한다.(16k, 32k는 자주 사용되지 않음)
                 block은 block header, table directory, row directory, empty space,
                 data space 로 구성된다.
              ! block header : block의 종류(테이블, 인덱스등)에 대한 정보, 해당 block에 대
                해 현재 동작중이거나 과거 수행된 트랙잭션들에 대한 정보, 디스크에서의 블록
                의 위치등을 포함
              ! table directory : block에 저장된 행들의 테이블에 관한 정보를 포함
              ! row directory : block에 저장된 행들의 정보를 포함(결국 block에 저장된 행들
                에 대한 포인터 배열이다.)
     + block overheader : block header + table directory + row directory
  - 재실행 로그 파일(redo log file) : 트랜잭션에 대한 로그 정보를 포함
     + 사용자의 실수로 데이터를 삭제후 커밋을 하였다면 재실행 로그 파일을 이용하여
        데이터를 복구 할 수 있다.
     + 재실랭 로그 파일에는 온라인 재실행 로그와 아카이브 재실행 로그가 있다.
        온라인 재실행 로그 : ?
        아카이브 재실행 로그 : ?
  - 제어파일(control file) : 데이터 파일들의 위치와 상태에 대한 관련정보 포함
     + 파라미터파일(init.ora)은 오라클 인스턴스에게 제어파일의 위치를 알려줌
  - 임시파일(temp file) : 디스크 기반의 정렬과 임시 저장소로 사용
     + 정렬 연산의 중간 결과나 RAM에 충분한 공간이 없는경우 질의 결과를 저장하기 위해
       사용
     + 테이블이나 인덱스와 같은 영속적인 데이터 객체들은 결코 임시 파일에 저장되지 않
       지만 임시테이블 혹은 인덱스의 내용은 저장됨
     + 임시 파일에서 사용자의 세션동안 수행된 작업의 롤백 결정에 대하여 임시 파일들이
        UNDO는 할 수 있지만 REDO는 할 수 없음
        (그러므로 임시 데이터 파일은 백업불필요)
  - 패스워드 파일(password file) : 네트워크 환경에서 관리자적인 활동을 수행하는 사용자
    들을 인증하는 데 사용
Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:22
반응형

데이타베이스 사용자라면, 작업 속도가 갑자기 느려지는 현상을 경험하였을 것이다. 이 때에는 먼저, OS 리소스(디스크 I/O 및 free space, CPU 등)를 점검하고, alert.log 화일에 ORACLE 에러가 발생하지는 않았는지 확인하여 본다. 만약, 에러가 발견되지 않았다면, 정상적인 속도로 작업이 처리 되기 위하여 튜닝을 시도해 볼 수 있다. 다음은 dba 권한이 있는 사용자 만이 할 수 있다.     
튜닝은 OS 튜닝(OS parameter, 디스크 I/O), DBMS 튜닝, 응용 프로그램 튜닝의 순서대로 수행한다. OS 튜닝은 데이타 베이스 관리자의 권한만으로는 수행할 수 없다.  참고로, 본문은 ORACLE 세미나 중에서 DBMS 튜닝 중 메인 메모리 튜닝만을 요약하였다.      
      
ORACLE이 사용하는 메모리 영역 중에 튜닝이 필요한 곳은 database buffer, shared sql pool, redo log buffer가 있다. 먼저, 현재의 속도와 튜닝 후의 속도의 비교를 위하여 자주 사용하는 SQL 문에 대하여 tkprof 를 이용한 trace file을 만들어 둔다.     

1.DATABASE BUFFER  

database buffer와 관련된 ORACLE parameter 는 db_block_buffers로서 메모리 내에 있는 데이타 베이스 블럭의 수를 나타낸다. 이 값을 크게 하면, 디스크의 입출력을 줄일 수 있지만 메모리를 낭비하게 된다. 따라서, 알맞은 값은 데이타베이스가 기동 되어 peak time 에 다음의 query 를 수행하여, ratio 필드의 평균값이 92 % 이상이면 된다.(참고 : 다음은 ORACLE V7.1 이상부터 가능.)     

$sqlplus system/manager     
SQL>select round(100*(a.value+b.value-c.value)/(a.value+b.value),2) ratio     
    from sys.v_$sysstat a, sys.v_$sysstat b, sys.v_$sysstat c     
   where a.statistic# = 37 and b.statistic# = 38 and c.statistic# = 39;     

이 ratio가 지나치게 낮으면, $ORACLE_HOME/dbs/init.ora 내부에 있는 db_block_buffers 를 조금씩 늘려가며 위의 query 를 수행하여 변화를 monitoring 한다.      

2.SHARED POOL SIZE  

공유 커서와 공유 SQL, 공유 procedure 등을 포함하고 있는 영역으로 library cache와 dictionary cache의 사용율을 조사하여 shared_pool_size 의 크기를 변경한다.      

$sqlplus system/manager     

1)library cache  
SQL>col "Library Cache Miss Ratio(%)" format a40     
SQL>select to_char(sum(reloads)/sum(pins)*100,''990.99'') "Library Cache Miss Ratio(%)"

           from v$librarycache;     

위의 값이 1 ~ 2 % 보다 작은 것이 좋다.      

2)dictionary cache  
SQL>col "Dic. Cache Miss Ratio (%)" format a40     
SQL>select to_char(sum(getmisses)/sum(gets)*100,''990.99'') "Dic. Cache Miss Ratio (%)"

           from v$rowcache;     

위의 값은 10% 보다 작은 것이 좋다.     

분석결과 library cache 와 dictionary cache 의 miss ratio 가 위의 값보다 클 경우, shared_pool_size 를 증가시킨다.      

3)redo log buffer  
redo log buffer 를 포함하고 있는 디스크에 입출력 병목이 발생한다면, log_buffers 를 증가시켜야 한다 (단, 1M 를 넘지 않도록 한다.) commit 수행 시 db_block_buffers 의 내용을 redo log buffer 로 복사하게 되는데, 이 때 내부적으로 latch 를 사용하게 된다. 다량의 update 또는 OLTP 업무에서는 다음의 SQL 문을 수행하여 latch waiting 이 얼마나 되는지 조회하여 관련된 parameter 를 변경한다.     

$sqlplus sys/xxxxxxxx     
SQL>col  "misses_gets_ratio" format 90.999     
SQL>col "immediate misses_gets ratio" format 90.999     
SQL>select ln.name, nvl(misses/decode(gets,0,1),0) "misses_gets_ratio",     
       nvl(immediate_misses/decode(immediate_gets,0,1),0)      
       "immediate misses_gets ratio"     
    from v$latch l, v$latchname ln     
   where ln.name in (''redo allocation'',''redo copy'')

          and ln.latch# = l.latch#     
  order by ln.name desc;     

위의 값이 1% 를 초과하면 latch contention 이 일어나고 있는 것이므로, 대용량의 online transaction이 발생하는 경우에는 log_simultaneous_copies 를 CPU 갯수의 2배 정도로 정의하고, log_small_entry_max_size 는 OLTP 의 경우에는 400 정도로 하고, batch job 의 경우에는 800 이상으로 설정한다.     

한번의 튜닝으로 최적의 값을 얻어내기는 어려우므로 철저한 계획을 세운 후에 변경하고 여러 날에 걸쳐 monitoring 하여야 한다. 또한, 변경에 문제가 있을 경우 다시 이전으로 돌아갈 수 있도록 이전 값들을 잘 보관해야 한다. 

페이지 히스토리

2008-10-06 15:29 에 HwanyShine님이 마지막으로 수정

Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:20
반응형

리스너 : 누군가 접속을 하는 것을 기다리는 녀석

서버의 리스너가 실행 중인가 확인 - dos> tnsping ipaddress

Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:18
반응형

//tnsnames.ora : 클라이언트 측 설정


# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_2\Hsck\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

RESP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = IP_ADDRESS)(PORT = PORT_NUMBER))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = SIP)    
    )  
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )



////////////////////////////////////////////////////

//listener.ora ; Server 측 설정


# listener.ora Network Configuration File: C:\oracle\product\10.2.0\db_2\Hsck\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =    
     (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_2\Hsck)
      (PROGRAM=PLSExProc)
    )  
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = b)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      (
       (CONNECT_DATA =
        (SERVICE_NAME = RESP)    
        (SID_NAME=RESP)
    )
    )
  )

Posted by 1010
02.Oracle/DataBase2009. 4. 4. 13:15
반응형

Startup

STARTUP [DBA] [FORCE] [PFILE=filespec] [EXCLUSIVE | SHARED] [MOUNT dbname | OPEN dbname] [NOMOUNT]


sqldba lmode=y svrmgrl 로그인 한다.

SVRMGR> connect internal

SVRMGR> startup;


Starting an Instance without Mounting a Database

SVRMGR> startup nomount;

Starting an Instance and Mounting Database

SVRMGR> startup mount ORA71;


specific maintenance operations 이행하고자

  • renaming datafiles
  • adding, dropping, or renaming redo log files
  • enabling and disabling redo log archiving options
  • performing full database recovery


Starting an Instance and Mounting and Opening a Database

SVRMGR> startup;

  • Normal Database Operation 의미
  • 보편적인 database access Operation 이행하고자


Restricting Access to a Database at Startup

SVRMGR> startup dba;

  • 데이타베이스는 administrative pesonnel에게만 유용
  • perform structure maintenance, such as rebuilding indexes
  • perform an export or import!! of database data
  • perform a data load (with SQL *Loader)
  • temporarily prevent typical users from using data


Forcing an Instance to Start

SVRMGR> startup force;

  • 현재의 instance 비정상적인 환경에 의해 shutdown되지 않을
  • instance 시작할 문제가 생긴 경우


Starting in Exclusive or Parallel Mode

  • Exclusive Mode : 처음 db mount instance만이 database mount 가능
  • Parallel Mode : Parallel Mode에서 시작된 다른 Instance 모두 database mount 가능

Starting Up an Instance and Database

SVRMGR> startup open ORA71

2 pfile=/user/oracle/app/oracle/product/7.3.2/dbs/initORA71.ora exclusive restrict;


Shutdown

SHUTDOWN [NORMAL | IMMEDIATE | ABORT]

sqldba lmode=y svrmgrl 로그인 한다.

SVRMGR> connect internal

SVRMGR> shutdown


NORMAL

  • Shutdown 실행후에는 새로운 연결도 허락되지 않는다.
  • database Shutdown되기 전에 oracle7 현재 연결된 모든 사용자들이 연결을 해제할 까지 기다린다.

IMMEDIATE

< 사용되는 경우 >

  • Power Shutdown 일어나게 경우에 실행한다.
  • database applilcation중의 하나가 불규칙적으로 동작할 경우에 실행한다.

< 결과 >

  • 현재 Oracle7 의해 처리중인 SQL문은 즉시 종결된다.
  • 완료되지 않은 트랜잭션들은 롤백된다.
  • Oracle7 사용자가 연결을 데이타베이스에 끊을 때까지 기다리지 않는다.

ABORT

< 사용되는 경우 >

  • Shutdown 다른 type(NORMAL, IMMEDIATE) 전혀 동작하지 않을 경우
  • 즉시 database shutdown 필요가 있을 경우
  • database instance start 문제가 생긴
    경우
  • database application중의 하나가 불규칙적으로 동작할 경우


< 결과 >

  • Oracle7 의해 처리중인 SQL문은 즉시 종결된다.
  • 완료 되지않은 트랜잭션들은 롤백된다.
  • 경우 Oracle7 사용자가 연결을 데이타베이스에 끊을 때까지 기다리지 않는다.

페이지 히스토리

2008-10-06 17:37 에 HwanyShine님이 마지막으로 수정

Posted by 1010
02.Oracle/DataBase2009. 4. 4. 11:27
반응형
아래는 스크랩내용

Explorer 를 이용하여 컨텐트를 보거나 동영상을 보거나 플래시를 보거나 조금이라도 움직임이 있는 것을 보려고 할 때 Explorer 오류가 나타나는 경험은 모두들 해보셨을 거에요.
오류보고를 백날 보내도 ㅡ,.ㅡ MS에서는 눈하나 깜박안하는 것 같던데....
오류보고를 보내기 전에 "자세한 내용보기"를 클릭하여 보면 Modname 에 ntdll.dll이라고 떡하니 쓰여있는 오류가 있습니다.
정말이지...이런 메세지가 나올때마다 PC를 포맷하는 것도 한두번이지..

그래서 네이버에게 물어봤습니다.
ㅎㅎㅎ 답변이 여러개 나오고 댓글을 봐도 참.. 잘 고쳐서 쓰고 계신 것 같더군요.
여러분들의 답변을 쭉~ 모아봤습니다.
(다행인지 불행인지 저는 ntdll.dll 오류가 안나타나서 확인작업은 못해봤습니다만)

1. 윈도우즈 업데이트를 최종까지 해준다.
SP2까지는 할 필요 없습니다. SP2 싫어하시는 분들 많으시죠?
도대체 이렇게까지 인기없고 사람들에게 외면받는 걸 왜!!!! 만들어 내놓았는지 도무지 이해가 안가지만 뭔 꿍꿍이가 있겠죠 ㅡ,.ㅡ
재부팅하고 다시한번 확인하여서 최종까지 업데이트를 해주세요.

2. DirectX 는 최신버전을 설치한다.
현재 (2005년 11월) 9.0C 버전이 최신입니다.
* PC에 설치된 DirectX버전을 확인하는 방법 : 시작>실행 --> dxdiag "확인"

3. Windows Media Player는 9버전 이상을 설치한다.
PC에 설치되어 있는 OS에 맞는 프로그램을 설치해주셔야 합니다.
가끔 동영상을 보는 프로그램들과 충돌, 혹은 레지스트리에서 값들이 뒤엉키면서 문제가 생기는 경우도 있습니다.
만일 PC에 동영상을 보는 프로그램들 (곰플레이어, 아드레날린, 통합코덱, real player 등)을 삭제를 합니다. Windows Media Player 삭제도 가능하다면 삭제해주시는게 좋습니다. 그 후 재부팅을 하고 Windows Media Player 만 설치를 해줍니다.
기타 프로그램을 설치해주실 거라면 한 두개 정도만 설치해주시는 것이 좋습니다. (아드레날린, 사사미, 통합코덱 등은 추천하지 않습니다)

4. Adware 검색 및 바이러스 검색을 실시하여 바이러스를 제거한다.
이것은 꼭 ntdll.dll 문제뿐만아니라 여러가지 문제를 야기시킬 수 있으므로 자주 검색하여 제거해주시는 것이 좋습니다.

5. Explorer 의 도구 > 인터넷 옵션을 설정을 정상화한다.
여기에는 여러가지 탭이 있습니다. 탭 별로 체크할 부분을 안내해 드리겠습니다.
1) 일반
임시인터넷 파일;[쿠키삭제] [파일삭제]를 해준다. [파일삭제]시에는 반드시 "오프라인 항목을 모두 삭제" 부분에 체크를 한다.
임시인터넷 파일;[설정] 에서 "저장된 페이지의 새 버전 확인"은 '페이지를 열 때마다' 로 "사용할 디스크 공간"은 최소 600MB 정도로 설정한다. [개체보기]에서 상태가 손상되거나 알 수 없음으로 되어 있는 파일은 모두 삭제해준다.
2) 보안
보안수준은 모두 기본 수준으로 맞춰준다.
3) 개인정보
기본 수준을 클릭하여 기본상태를 유지한다.
4) 연결
[LAN 설정] 에서 "자동 구성" 과 "프록시 서버"의 체크박스는 모두 해제하여 준다.
5) 고급
기본값 복원을 한 뒤 "타사 브라우저 확장명 사용" "URL을 항상 UTF-8로 보냄" 체크를 해제하여 준다.

------

보통 여기까지하면 ntdll.dll 오류없이 잘~ 된다고 합니다.
그러나 모두다 잘되면 좋으련만.. 쓸데없이 고집을 피우는 Explorer도 있지요.
이럴 때는 MS에서 제공하는 여러 패치를 적용시켜보는 것도 한 방법입니다.
(제목과 링크를 걸어놓았으니 해당 페이지 내용을 잘 읽어보시고 적절한 것을 설치해주시기 바랍니다)

1. Windows XP 보안 패치: ntdll.dll 취약점을 이용한 IIS 원격 공격

Windows 2000 보안 패치: ntdll.dll 취약점을 이용한 IIS 원격 공격

2. Windows 구성 요소 내에 있는 점검되지 않은 버퍼가 웹 서버를 손상시킬 수 있음

* MS에 연락을 해서 기술 지원을 받을 수도 있습니다. 보안 패치와 관련된 기술 지원 통화는 무료라네요. : Microsoft 고객기술지원부


그래도 안된다!!! ㅠㅠ.. 라고 하신다면 아래 기타사항들이 있으니 참고하여서 실행해 보세요.
잘 된다는 보장은 절대 없습니다. ㅠㅠ..
하지만 포맷은 죽어도 싫다! 라는 분들께는 한번 사용해 봄직한 내용일 수도 있습니다. ㅎㅎ

1. C:WINDOWSsystem32ntdll.dll 파일이 손상되었을 수도 있으니 설치CD를 넣고 검색해서 복사, 덮어쓰기를 하거나 OS 복구를 한다
2. Windows Media Player 10으로 업데이트
3. 레지스트리 편집기에서 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects 제거
4. hksock1.dll, hksock2.dll. hkstart.exe, LkSoundProcessor.ax 파일 제거
5. d'Tomoyos 코덱 제거
6.시작>실행 :msconfig 실행 하여 시작 프로그램의 모든 항목체크를 해제한 후 재부팅하여 문제해결 (추후에 시작프로그램을 하나씩 추가하여 재부팅하면서 문제가 되는 프로그램을 체크)
Posted by 1010
02.Oracle/DataBase2009. 4. 4. 10:26
반응형
Posted by 1010
02.Oracle/DataBase2009. 2. 18. 15:57
반응형

MS SQL Server 2000 용 JDBC 드라이버


직접 다운로드 받으려면 아래의 링크를 클릭해서 받으세요.


http://www.microsoft.com/downloads/info.aspx?na=46&p=5&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f4%2f1%2fd%2f41d3e9c0-64d1-451e-947b-7a4cba273b2d%2fsetup.exe


압축 해제후 setup.exe 파일을 더블클릭해서 설치하면 된다.


시작 -> 프로그램 -> Microsoft SQL Server 2000 Driver for JDBC -> HTML Help 를

클릭하면 사용방법을 알 수 있다.


Quick Start 클릭 -> Connecting to a Database 클릭하면 사용방법을 볼 수 있다.

(설명이 영어로 되어 있다. 그러나, 간단한 영어니까 읽어보면 알 수 있다.)


--------------------------------------------------------------------------


자바에서 JDBC 프로그래밍의 4단계가 있는데

1. 드라이버 로딩

2. 연결

3. 명령

4. 결과


하나씩 진행해보자.


제일 먼저 JDBC 드라이버를 JDK 설치 폴더에 복사하자.

1. 드라이버 로딩. (JDBC 드라이버 복사 및 설정 포함)

    C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib 의

    mssqlserver.jar, msbase.jar, msuti.jar 의 3개의 파일을 복사해서

    JDK 설치 폴더 (예를 들어 C:\j2sdk1.4.0 에 설치했다면)

    C:\j2sdk1.4.0\jre\lib\ext 에 위에서 복사한 3개의 파일을 붙여넣는다.

    이렇게 하면 JDBC 드라이버를 JDK 에서 인식해서 사용할 수 있다.


    JDBC 프로그래밍 소스에서 MS SQL JDBC 드라이버를 로딩하려면 아래와 같이 쓰면 된다.


    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");


2. 연결.

   Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://DB서버이름 또는 localhost:1433;DataBaseName=데이타베이스명","유저명","비밀번호");


   Connection conn = DriverManager.getConnection
    ("jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=pubs","sa","1234");

3. 명령.

   Statement stmt = con.createStatement();


4. 결과.

   ResultSet rs = stmt.executeQuery("select * from authors");


   결과를 화면에 출력하려면 반복문을 이용하여 테이블의 내용을 가져와서 출력하면 된다.


   while(rs.next()) {

      String str1 = rs.getString(1);

      String str2 = rs.getString(2);

      String str3 = rs.getString(3);


      out.println(str1 + " : " + str2 + " : " + str3 + "<br>");

   }


msjdbc.jsp 아래 전체 소스를 참고하시오.

<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page  import!="java.sql.*,java.util.*" %>

<%
// JDBC 프로그래밍 4단계
// 1. 드라이버 로딩 -> 2. 연결 -> 3. 명령 -> 4. 결과


// 1. 드라이버 로딩
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

out.println("드라이버 로딩 성공<br>");

// 2. 연결.
// Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://DB서버이름 또는 localhost:1433;DataBase=데이타베이스명","유저명","비밀번호");

// 여기서는 MS SQL Server를 설치하면 같이 설치되는 예제 DB인 pubs를 사용하겠음.
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=pubs","sa","1234");

out.println("연결 성공<br>");


// 3. 명령.
Statement stmt = conn.createStatement();

out.println("명령 준비 성공<br>");


// 4. 결과.
ResultSet rs = stmt.executeQuery("select * from authors");

out.println("결과 얻어내기 성공<br>");
out.println("<hr>");
out.println("<br>");

// 결과를 화면에 출력하려면 반복문을 이용하여 테이블의 내용을 가져와서 출력하면 된다.

while(rs.next()) {
 String str1 = rs.getString(1);  // 첫번째 필드의 값 가져오기
 String str2 = rs.getString(2);  // 두번쩨
 String str3 = rs.getString(3);  // 세번째

 out.println(str1 + " : " + str2 + " : " + str3 + "<br>"); // 출력
}


rs.close();

stmt.close();

ms-sql 2000 jdbc 드라이버 setup.exe

 

conn.close();
%>

 

Posted by 1010
02.Oracle/DataBase2009. 2. 18. 13:09
02.Oracle/DataBase2009. 2. 6. 14:30
반응형
오라클 에러코드 확인 사이트

http://www.oracle.com/pls/db92/db92.error_search?remark=homepage&prefill=ORA
http://download-west.oracle.com/docs/cd/B12037_01/server.101/b10744/toc.htm

ora-00000     성공적인 정상 종료입니다.
ora-00001     유일성 제약조건(%s.%s)에 위배됩니다.
ora-00017     트레이스 이벤트 설정이 세션에 요구되었습니다.
ora-00018     최대 세션 수를 초과했습니다.
ora-00019     최대 세션 라이선스 수를 초과했습니다.
ora-00020     최대 프로세스 수(%s)를 초과했습니다.
ora-00021     세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다.
ora-00022     부적절한 세션 번호; 액세스가 거절되었습니다.
ora-00023     세션이 프로세스 고유의 메모리를 참조함; 세션을 분리할 수 없습니다.
ora-00024     단일 프로세스 모드에서는 하나 이상의 프로세스가 로그인할 수 없습니다.
ora-00025     %s에 메모리를 할당하는데 실패했습니다.
ora-00026     누락 혹은 부적합한 세션 번호
ora-00027     현 세션을 제거할 수 없습니다.
ora-00028     세션이 제거되었습니다.
ora-00029     사용자 세션이 아닙니다.
ora-00030     사용자 세션 id가 존재하지 않습니다.
ora-00031     세션이 중단될 것입니다.
ora-00032     부적합한 세션 migration password
ora-00033     현세션이 migration password를 갖고있지 않습니다.
ora-00034     pl/sql 세션에서 %s를 할 수 없습니다.
ora-00035     license_max_users가 현재의 사용자 수보다 적을 수 없습니다.
ora-00050     엔큐를 하는 동안 o/s 오류가 발생했음. o/s 오류를 확인하십시오
ora-00051     자원 대기 중 시간 초과입니다.
ora-00052     최대 엔큐 자원 수(%s)를 초과했습니다.
ora-00053     최대 엔큐 수를 초과했습니다.
ora-00054     자원이 사용중이고, nowait가 지정되어 있습니다.
ora-00055     최대 dml 잠금 수를 초과했습니다.
ora-00056     개체 %s.%s에 대한 ddl 잠금이 비호환 모드로 되어 있습니다.
ora-00057     최대 임시 테이블 잠금 수가 초과했습니다.
ora-00058     이 데이타베이스를 마운트하기 위해서 db_block_size가 %s이어야 함(%s 아님).
ora-00059     최대 db_files 수를 초과했습니다.
ora-00060     자원 대기중 데드록이 검출되었습니다.
ora-00061     다른 하나의 인스턴스가 다른 dml_locks을 설정하고 있습니다.
ora-00062     dml 전(full) 테이블 잠금을 취할 수 없습니다. dml_locks은 0 입니다.
ora-00063     최대 log_files 수를 초과했습니다.
ora-00064     현 o/s (%s,%s)에 할당하기에는 개체가 너무 큽니다.
ora-00065     fixed_date의 초기화에 실패했습니다.
ora-00066     log_files는 %s이지만 호환성을 위해 %s 이어야합니다.
ora-00067     값 %s은 파라미터 %s에 대해 부적당하며, 최소한 %s 이어야 합니다.
ora-00068     값 %s은 파라미터 %s에 대해 부적당하며, %s와 %s 사이의 값이어야 합니다.
ora-00069     잠글 수 없습니다 -- %s에 대해 테이블 잠금을 할 수 없습니다.
ora-00070     명령어 %s 은 적당하지 않습니다.
ora-00071     프로세스 번호은 1 과 %s 사이어야 합니다.
ora-00072     프로세스 %s 은 활동적인 것이 아닙니다.
ora-00073     명령어 %s은 %s 와 %s 인수를 가지고 옵니다.
ora-00074     지정된 프로세스가 없습니다.
ora-00075     프로세스 %s 은 이 인스턴스에서 찾을 수 없습니다.
ora-00076     덤프 %s 을 찾을 수 없습니다.
ora-00077     덤프 %s 은 적당하지 않습니다.
ora-00078     이 이름으로 변수를 덤프 할 수 없습니다.
ora-00079     변수 %s 가 없습니다.
ora-00080     레벨 %s 로 지정된 글로벌 영역이 부적당합니다.
ora-00081     주소 범위 [%s, %s)은 읽기가능한 것이 아닙니다.
ora-00082     %s의 메모리 크기는 적당한 [1], [2], [4]%s%s%s%s%s의 설정으로 되어 있지 않습니다.
ora-00083     경고: 맵된 sga가 손상한것 같습니다.
ora-00084     글로벌 영역이 pga, sga, 또는 uga 이어야만 합니다.
ora-00085     현재 호출이 존재하지 않습니다.
ora-00086     사용자 호출이 존재하지 않습니다.
ora-00097     oracle sql 기능에서 사용하고 있는것이 sql92 %s 레벨서 존재하고 있지 않습니다.
ora-00100     데이터가 없습니다.
ora-00101     시스템 파라미터 mts_dispatchers에 대한 사용 문법이 부적합합니다.
ora-00102     %s 네트워크 프로토콜이 디스패쳐에 의해 사용될 수 없습니다.
ora-00103     부적합한 네트워크 프로토콜; 디스패쳐에 의해 사용되도록 예약되었음
ora-00104     데드록이 검출되었음; 모든 공유서버가 자원을 기다리고 있습니다.
ora-00105     디스패칭 기법이 %s 네트워크 프로토콜을 지원하도록 되어있지 않습니다.
ora-00106     디스패쳐에 연결되었을때는 데이타베이스를 기동/중지시킬 수 없습니다.
ora-00107     oracle의 리스너 프로세스에 연결하지 못했습니다.
ora-00108     비동기 연결이 가능하도록 디스패쳐를 설정하지 못했습니다.
ora-00111     최대 서버수는 %s입니다; %s개의 서버 추가중
ora-00112     경고: %s (지정 최대치) 디스패쳐만으로 생성되었습니다.
ora-00113     프로토콜명 %s가 너무 깁니다.
ora-00114     시스템 파라미터 mts_service에 대한 값이 없습니다.
ora-00115     연결이 거절됨; 디스패쳐 연결 레이블이 full 상태입니다.
ora-00116     mts_service명이 너무 깁니다.
ora-00117     시스템 파라미터 mts_servers의 범위를 벗어납니다.
ora-00118     시스템 파라미터 mts_dispatchers의 범위를 벗어납니다.
ora-00119     mts_listener_address 시스템 파라미터에 지정이 부적합합니다.
ora-00120     디스패칭 기법이 사용불가 혹은 설치되어있지 않습니다.
ora-00121     mts_dispatchers를 제외하고 mts_servers가 지정되었습니다.
ora-00122     네트워크 구성을 초기화할 수 없습니다.
ora-00123     비작업중인 공유 서버를 종료합니다.
ora-00124     mts_dispatchers가 mts_max_servers 없이 지정되었습니다.
ora-00150     중복된 트랜잭션 id
ora-00151     부적합한 트랜잭션 id
ora-00152     현 세션이 요구된 세션과 일치하지 않습니다.
ora-00200     제어 화일 %s을 생성할 수 없습니다.
ora-00201     제어 화일 버전 %s은 oracle 버전 %s과 호환되지 않습니다.
ora-00202     제어화일: %s
ora-00203     잘못된 제어화일을 사용하였습니다.
ora-00204     제어 화일 %s (블록 %s, 블록 수 %s) 읽기 오류입니다.
ora-00205     제어 화일 %s 식별 오류입니다.
ora-00206     제어 화일 %s (블록 %s, 블록 수 %s) 쓰기 오류입니다.
ora-00207     제어화일이 현재 사용중인 데이타베이스용이 아닙니다.
ora-00208     제어 화일명이 최대수 %s 를 초과했습니다.
ora-00209     블록 크기 %s 가 최대 %s 바이트를 초과했습니다.
ora-00210     제어 화일 %s 를 열 수 없습니다.
ora-00211     제어 화일 %s 가 앞의 제어 화일과 일치하지 않습니다.
ora-00212     블록 크기 %s가 최소한 필요한 크기 %s 바이트 미만입니다.
ora-00213     제어 화일 %s 재사용 불가; 구 화일 크기 %s, %s가 필요합니다.
ora-00214     제어 화일 %s의 버전 %s는 화일 %s 버전 %s와 일치하지 않습니다.
ora-00215     적어도 한 개의 제어 화일이 필요합니다.
ora-00216     제어 화일 %s 에 대한 물리 블록 크기를 확정할 수 없습니다.
ora-00217     제어 화일 %s의 물리적 블록 크기 %s가 %s와 일치하지 않습니다.
ora-00218     제어 화일 %s는 블록 크기를 %s로 작성되었지만 현재는 %s 입니다.
ora-00219     필요한 제어 화일 크기 %s 가 최대치 %s 보다 큽니다.
ora-00220     제어화일 %s가 첫 인스턴스에 의해 사용한 것과 일치하지 않습니다.
ora-00221     제어화일에의 쓰기오류
ora-00222     디스패쳐로 제어화일을 조회할 수 없습니다.
ora-00223     변환 데이타화일이 부적합하거나 틀린 버전입니다.
ora-00224     명시된 화일이 제어 화일이 아닙니다.
ora-00225     기대된 크기 %s 은( 제어화일 %s 관한) 실제 크기 %s 와 다릅니다.
ora-00250     아카이버가 작동되지 않았습니다.
ora-00251     사용되지 않는 오류
ora-00252     로그 %s (쓰레드 %s의)는 비었습니다. 아카이브할 수 없습니다.
ora-00253     제한치 %s가 길이 %s로 초과되었습니다 (아카이브 스트링 %s의)
ora-00254     아카이브 제어 스트링 %s 오류입니다.
ora-00255     로그 %s(쓰레드 %s, 시퀀스 번호 %s)의 아카이브 오류
ora-00256     아카이브 텍스트 스트링 %s의 변환시 오류가 발생했습니다.
ora-00257     아카이버 오류. 해제되기 전에는 내부 연결만 가능
ora-00258     noarchivelog 모드에서의 수동 아카이브는 로그를 지정해야합니다.
ora-00259     로그 %s(개방 쓰레드 %s의)가 현재 로그이므로 아카이브할 수 없습니다.
ora-00260     온라인 로그 시퀀스 %s(쓰레드 %s의)를 발견할 수 없습니다.
ora-00261     로그 %s(쓰레드 %s의)가 아카이브중이거나 수정중입니다.
ora-00262     현재 로그 %s(닫힌 쓰레드 %s의)를 스위치할 수 없습니다.
ora-00263     쓰레드 %s를 위해 아카이빙이 필요한 로그가 없습니다.
ora-00264     복구가 필요하지 않습니다.
ora-00265     인스턴스 복구가 요구됩니다. archivelog모드를 지정할 수 없습니다.
ora-00266     아카이브된 로그 화일의 이름을 필요로 합니다.
ora-00267     아카이브된 로그 화일의 이름을 필요로 하지 않습니다.
ora-00268     지정된 로그화일이 존재하지 않습니다 %s
ora-00269     지정된 로그화일은 쓰레드 %s의 (%s가 아닌) 부분임
ora-00270     아카이브 로그 생성시 오류
ora-00271     아카이브를 필요로 하는 로그가 없습니다.
ora-00272     아카이브 로그 기록시 오류
ora-00273     로그되지 않은 직접 로드 데이타의 매체 복구
ora-00274     부적절한 복구 옵션 %s
ora-00275     매체 복구가 이미 시작되었습니다.
ora-00276     키워드 change가 지정되었으나 변환 번호가 주어지지 않았습니다.
ora-00277     until 복구 플래그 %s에 부적절한 옵션
ora-00278     현 복구를 위해 로그화일 %s는 더이상 필요하지 않습니다.
ora-00279     변환 %s가 (%s에서 생성된) 쓰레드 %s에 필요합니다.
ora-00280     변환 %s(쓰레드 %s를 위한)가 시퀀스번호 %s에 있습니다.
ora-00281     매체 복구는 디스패쳐를 사용하여 수행되지 않습니다.
ora-00282     upi %s 호출이 지원되지 않으니, alter database recover를 사용하십시요
ora-00283     복구 세션이 오류로 인하여 취소되었습니다.
ora-00284     복구 세션이 진행중입니다.
ora-00285     time 키워드가 지정되었으나 시간이 주어지지 않았습니다.
ora-00286     이용가능한 멤버가 없거나, 적합한 데이타를 포함하고 있지 않습니다.
ora-00287     지정된 변환 번호 %s가 쓰레드 %s에 없습니다.
ora-00288     복구를 계속하려면 alter database recover continue를 입력하십시요
ora-00289     제안 : %s
ora-00290     로그화일을 아카이브 하려고 할때, o/s 오류가 발생했습니다.
ora-00291     parallel 옵션에 숫자값이 필요로합니다.
ora-00292     병렬 복구 기능이 설치되지 않았습니다.
ora-00293     제어 화일과 리두로그가 동기화 상태에서 벗어나 있습니다.
ora-00300     부적합한 리두 로그 블록 크기 %s가 지정됨 - 한계 %s 초과
ora-00301     로그 화일 %s를 추가 작성할 수 없습니다.
ora-00302     로그의 최대수 %s 를 초과했습니다.
ora-00304     요구된 인스턴스 번호는 사용중입니다.
ora-00305     로그 %s(쓰레드 %s의)는 일관되지 않습니다. 이것은 다른 데이타베이스에 속합니다.
ora-00306     이 데이타베이스에서는 %s 인스턴스가 한계입니다.
ora-00307     요구된 인스턴스 번호가 범위를 벗어납니다(최대치는 %s)
ora-00308     아카이브된 로그 %s를 열 수 없습니다.
ora-00309     로그가 잘못된 데이타베이스에 속해 있습니다.
ora-00310     아카이브된 로그는 시퀀스 %s를 포함하고 있습니다 시퀀스 %s가 필요합니다.
ora-00311     아카이브 로그로부터 헤더 정보를 읽을 수 없습니다.
ora-00312     온라인 로그 %s 쓰레드 %s: %s
ora-00313     로그 그룹 %s (쓰레드 %s의)의 멤버를 여는데 실패했습니다.
ora-00314     로그 %s(쓰레드 %s의, 시퀀스번호가 %s일)는 %s와 일치하지 않습니다.
ora-00315     로그 %s (쓰레드 %s의) 헤더의 쓰레드 번호 %s가 틀립니다.
ora-00316     로그 %s (쓰레드 %s의) 헤더내의 유형 %s는 로그화일이 아닙니다.
ora-00317     헤더에 있는 화일형 %s가 로그화일이 아닙니다.
ora-00318     로그 %s (쓰레드 %s의, 화일 크기가 %s인)가 %s와 맞지 않습니다.
ora-00319     로그 %s(쓰레드 %s의)가 틀린 로그 재설정 상태를 가지고 있습니다.
ora-00320     로그 %s(쓰레드 %s의)로부터 화일 헤더를 읽을 수 없습니다.
ora-00321     로그 %s(쓰레드 %s의)에서 로그화일 헤더를 수정할 수 없습니다.
ora-00322     로그 %s(쓰레드 %s의)는 현시점의 것이 아닙니다.
ora-00323     쓰레드 %s의 현 로그는 사용불가하며, 나머지 전부도 아카이브하여야 합니다.
ora-00324     로그 화일 %s의 변환명 %s가 너무 깁니다, 문자수 %s가 %s를 초과했습니다.
ora-00325     쓰레드 %s으로 아카이브된 로그가 헤더내에 틀린 쓰레드 번호 %s를 가지고 있습니다.
ora-00326     변환 %s에서 시작된 아카이브 로그, 이전의 변환 %s를 필요로 합니다.
ora-00327     로그 %s(쓰레드 %s의), 물리적인 크기 %s가 필요한 %s보다 작습니다.
ora-00328     변환 %s에서 끝난 아카이브 로그, 이후의 변환 %s를 필요로 합니다.
ora-00329     변환 %s에서 시작된 아카이브 로그, 변환 %s를 필요로 합니다.
ora-00330     변환 %s에서 끝난 아카이브 로그, 변환 %s를 필요로 합니다.
ora-00331     로그 버전 %s가 oracle 버전 %s와 호환성이 없습니다.
ora-00332     아카이브된 로그가 너무 작음 - 완전하게 아카이브되지 않았습니다.
ora-00333     재실행 로그 읽기 오류(블록 %s 카운트 %s)
ora-00334     아카이브된 로그: %s
ora-00335     온라인 로그 %s: 이 번호의 로그가 존재하지 않습니다.
ora-00336     로그 화일의 크기 %s가 최소 블록 수 %s 보다 작습니다.
ora-00337     로그 화일 %s가 존재하지 않고 크기가 지정되어 있지 않습니다.
ora-00338     로그 %s(쓰레드 %s의)가 제어화일보다 최근의 것입니다.
ora-00339     아카이브 로그가 redo 로그를 포함하고 있지 않습니다.
ora-00340     온라인 로그 %s(쓰레드 %s의) 처리시 io 오류입니다.
ora-00341     로그 %s(쓰레드 %s의)에 대한 헤더내에 로그 번호 %s가 틀립니다.
ora-00342     아카이브된 로그가 마지막 resetlogs 전에 생성되었습니다.
ora-00343     너무 많은 오류 발생, 로그 멤버가 클로즈됐습니다.
ora-00344     온라인 로그 %s를 재생성할 수 없습니다.
ora-00345     redo 로그 쓰기(write) 오류, 블록 %s 카운트 %s
ora-00346     로그 멤버가 stale로 표시되었습니다.
ora-00347     로그 %s(쓰레드 %s의)의 예상 블록크기 %s는 %s와 일치하지 않습니다.
ora-00348     단일 프로세스 redo 실패입니다 인스턴스를 중지해야 합니다.
ora-00349     %s 의 블록 크기 확보 실패입니다.
ora-00350     로그 %s(쓰레드 %s의)를 아카이브해야 합니다.
ora-00351     지정된 시간으로의 복구가 불가능합니다.
ora-00352     쓰레드 %s에 대한 모든 로그가 아카이브되어야 함 - 가용화할 수 없습니다.
ora-00353     블록 %s 변경 %s 시간 %s 부근에서 로그가 깨졌습니다.
ora-00354     redo 로그의 블록헤더가 깨짐
ora-00355     변환 번호가 잘못됨
ora-00356     변환 설명내에 일치하지 않는 길이
ora-00357     로그화일에 너무 많은 수의 멤버가 지정됨 (최대치는 %s)
ora-00358     너무 많은 화일 멤버가 지정됨 (최대치는 %s)
ora-00359     로그화일 그룹 %s가 존재하지 않습니다.
ora-00360     로그화일 멤버가 아닙니다 %s
ora-00361     마지막 로그 멤버 %s는 그룹 %s를 옮길수 없습니다.
ora-00362     그룹 %s내에 정당한 로그화일을 형성하기 위해 멤버를 필요로 합니다.
ora-00363     로그가 아카이브 버전이 아닙니다.
ora-00364     새로운 로그 멤버에 헤더를 기록할 수 없습니다.
ora-00365     지정한 로그가 다음 로그가 아닙니다.
ora-00366     로그 %s, 쓰레드 %s의, 화일 헤더에 체크섬 오류가 있습니다.
ora-00367     로그 화일 헤더에 체크섬 오류가 있습니다.
ora-00368     리두 로그 블록에 체크섬 오류가 있습니다.
ora-00369     쓰레드 %s의 현재 로그는 사용불가이며 다른 로그가 지워지고 있습니다.
ora-00370     kcbchange 작업수행시 데드록의 가능성이 있습니다.
ora-00371     빈 버퍼의 사용이 불가합니다.
ora-00372     화일 %s는 지금 수정될 수 없습니다.
ora-00373     온라인 로그 버전 %s가 oracle 버전 %s와 호환되지 않습니다.
ora-00374     지정된 파라미터 db_block_size = %s 가 부적절함 - 가능한 범위[%s..%s]
ora-00375     디폴트 db_block_size의 값을 얻을수 없습니다.
ora-00376     현재 화일 %s를 읽을 수 없습니다.
ora-00390     로그 %s(쓰레드 %s의)는 지워질것이므로 현재 로그가 될 수 없습니다.
ora-00391     전체 쓰레드는 동시에 새로운 로그 포맷으로 전환해야 합니다.
ora-00392     로그 %s(쓰레드 %s의)는 지워질것이므로 작업이 허용되지 않습니다.
ora-00393     오프라인 데이타화일 복구에 로그 %s(쓰레드 %s의)가 필요합니다.
ora-00400     release 값 %s는 파라미터 %s에 부적절합니다.
ora-00401     이번 release에서 지원되지 않은 파라미터 %s에 대한 값입니다.
ora-00402     %s release에 변경된 데이타베이스는 %s release에 사용될 수 없습니다.
ora-00403     %s (%s) 는 다른 인스턴스(%s)와 같지 않습니다.
ora-00404     변환 데이타 화일이 없습니다 %s
ora-00405     호환 가능한 유형 %s
ora-00406     compatible 파라미터는 %s 이상이어야 합니다.
ora-00407     릴리즈 %s.%s 에서 %s.%s로 향상이 허용되지 않습니다.
ora-00408     파라미터 %s는 true로 설정되었습니다.
ora-00436     oracle이 라이센스되어 있지 않습니다 oracle사에 연락해 주십시오.
ora-00437     oracle의 기능이 라이센스되어 있지 않습니다. oracle사에 연락해 주십시오
ora-00443     백그라운 프로세스 %s가 시작되지 않았습니다.
ora-00444     백그라운드 프로세스 %s 기동중 장애가 발생했습니다.
ora-00445     백그라운드 프로세스 %s가 %s초 후 기동되지 않았습니다.
ora-00446     백그라운드 프로세스가 부적절하게 기동되었습니다.
ora-00447     백그라운드 프로세스에 치명적인 오류가 발생했습니다.
ora-00448     백그라운드 프로세스가 정상 종료했습니다.
ora-00449     백그라운드 프로세스 %s 가 오류 %s 와 함께 종료되었습니다.
ora-00470     lgwr 프로세스가 오류로 종료되었습니다.
ora-00471     dbwr 프로세스가 오류로 종료되었습니다.
ora-00472     pmon 프로세스가 오류로 종료되었습니다.
ora-00473     arch 프로세스가 오류로 종료되었습니다.
ora-00474     smon 프로세스가 오류로 종료되었습니다.
ora-00475     trwr 프로세스가 오류로 종료되었습니다.
ora-00476     reco 프로세스가 오류로 종료되었습니다.
ora-00477     snp* 프로세스가 오류로 종료되었습니다.
ora-00480     lck* 프로세스가 오류로 종료되었습니다.
ora-00483     정지 처리중 프로세스가 오류로 종료되었습니다.
ora-00568     인터럽트 처리기의 최대수를 초과했습니다.
ora-00574     osndnt: $cancel 실패 (break)
ora-00575     osndnt: $qio 실패 (send out-of-band break)
ora-00576     인-밴드 브레이크 프로토콜 오류
ora-00577     아웃-밴드 브레이크 프로토콜 오류
ora-00578     재설정 프로토콜 오류
ora-00579     osndnt: 서버가 잘못된 연결요구를 받았습니다.
ora-00580     프로토콜 버전이 일치하지 않습니다.
ora-00581     osndnt: 문맥 영역을 할당할 수 없습니다.
ora-00582     osndnt: 문맥 영역을 해제할 수 없습니다.
ora-00583     osndnt: $trnlog 실패
ora-00584     연결을 끊을 수 없습니다.
ora-00585     잘못된 유형의 호스트명입니다.
ora-00586     osndnt: lib$asn_wth_mbx 실패
ora-00587     원격 호스트에 연결할 수 없습니다.
ora-00588     호스트로부터의 메시지가 너무 짧습니다.
ora-00589     호스트로부터의 메시지가 잘못된 데이타 길이를 갖습니다.
ora-00590     호스트로부터의 메시지가 잘못된 데이타 유형을 갖습니다.
ora-00591     틀린 바이트 수가 기록되었습니다.
ora-00592     osndnt: $qio 실패 (mailbox queue)
ora-00593     osndnt: $dassgn 실패 (network device)
ora-00594     osndnt: $dassgn 실패 (mailbox)
ora-00595     osndnt: $qio 실패 (receive)
ora-00596     osndnt: $qio 실패 (send)
ora-00597     osndnt: $qio 실패 (mailbox requeue)
ora-00598     osndnt: $qio 실패 (mailbox read)
ora-00600     내부 오류 코드, 인수 : [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]
ora-00601     크린업 잠금이 충돌했습니다.
ora-00602     내부 프로그래밍 오류입니다 - bug로 등록하세요
ora-00603     oracle 서버 세션이 치명적인 오류로 종료되었습니다.
ora-00604     순환 sql 레벨 %s 에 오류가 발생했습니다.
ora-00606     내부 오류코드
ora-00701     데이타베이스의 기동에 필요한 개체를 변경할 수 없습니다.
ora-00702     부트스트랩 버전 %s가 버전 %s와 일치하지 않습니다.
ora-00703     행 캐쉬 인스턴스 잠금의 최대 수를 초과했습니다.
ora-00704     부트스트랩 프로세스 실패
ora-00816     오류 메세지 해석 오류입니다.
ora-00900     sql 문이 부적합합니다.
ora-00901     create 명령어가 부적합합니다.
ora-00902     데이타유형이 부적합합니다.
ora-00903     테이블명이 부적합합니다.
ora-00904     열명이 부적합합니다.
ora-00905     키워드가 없습니다.
ora-00906     좌괄호가 없습니다.
ora-00907     우괄호가 없습니다.
ora-00908     null 키워드가 없습니다.
ora-00909     인수의 개수가 부적합합니다.
ora-00910     데이타형에 지정된 길이가 너무 깁니다.
ora-00911     문자가 부적합합니다.
ora-00913     값의 수가 너무 많습니다.
ora-00914     add 키워드가 없습니다.
ora-00915     네트워크을 통한 dictionary table 액세스는 허가되지 않습니다.
ora-00917     코머가 누락되었습니다.
ora-00918     열의 정의가 애매합니다.
ora-00919     함수가 부적합합니다.
ora-00920     관계 연산자가 부적합합니다.
ora-00921     sql 명령어가 불완전합니다.
ora-00922     옵션이 부적합하거나 없습니다.
ora-00923     from 키워드가 있어야할 곳에 없습니다.
ora-00924     by 키워드가 없습니다.
ora-00925     into 키워드가 없습니다.
ora-00926     values 키워드가 없습니다.
ora-00927     등호가 없습니다.
ora-00928     select 키워드가 없습니다.
ora-00929     마침표(.)가 없습니다.
ora-00930    
ora-00931     식별자가 없습니다.
ora-00932     데이타 유형이 일치하지 않습니다.
ora-00933     sql 명령어가 올바르게 종료되지 않았습니다.
ora-00934     그룹 함수는 허가되지 않습니다.
ora-00935     그룹 함수의 내포 레벨이 너무 깊습니다.
ora-00936     식이 없습니다.
ora-00937     단일 그룹의 그룹 함수가 아닙니다.
ora-00938     함수의 인수가 충분하지 않습니다.
ora-00939     함수의 인수가 너무 많습니다.
ora-00940     alter 명령어가 부적합합니다.
ora-00941     클러스터 명이 없습니다.
ora-00942      테이블 또는 뷰가 존재하지 않습니다.
ora-00943     클러스터가 존재하지 않습니다.
ora-00944     클러스터 열의 수가 충분하지 않습니다.
ora-00945     지정한 클러스터 열이 존재하지 않습니다.
ora-00946     to 키워드가 없습니다.
ora-00947     값의 수가 충분하지 않습니다.
ora-00948     alter cluster 문은 제공되어 있지 않습니다.
ora-00949     원격 데이타베이스는 참조할 수 없습니다.
ora-00950     drop 옵션이 부적합합니다.
ora-00951     클러스터가 비어 있지 않습니다.
ora-00952     group 키워드가 없습니다.
ora-00953     색인명이 부적합합니다.
ora-00954     identified 키워드가 없습니다.
ora-00955     이미 사용된 개체명입니다.
ora-00956     감사 옵션이 부적합하거나 없습니다.
ora-00957     열명이 중복되었습니다.
ora-00958     check 키워드가 없습니다.
ora-00959     테이블 영역 %s 가 존재하지 않습니다.
ora-00960     선택 리스트에 애매한 열명이 있습니다.
ora-00962     너무 많은 group-by / order-by 식이 있습니다.
ora-00964     from 리스트에 테이블명이 없습니다.
ora-00965    
ora-00966     table 키워드가 없습니다.
ora-00967     where 키워드가 없습니다.
ora-00968     index 키워드가 없습니다.
ora-00969     on 키워드가 없습니다.
ora-00970     with 키워드가 없습니다.
ora-00971     set 키워드가 없습니다.
ora-00972     식별자의 길이가 너무 깁니다.
ora-00973     행수의 추정이 잘못되었습니다.
ora-00974     pctfree 값(백분율)이 부적합합니다.
ora-00975     날짜와 날짜의 가산은 할 수 없습니다.
ora-00976     level, prior, rownum 은 사용 할 수 없습니다.
ora-00977     감사 옵션이 중복되었습니다.
ora-00978     group by 구 없이 그룹 함수가 내포되었습니다.
ora-00979     group by 의 식이 없습니다.
ora-00980     동의어의 해석이 불가능합니다.
ora-00981     테이블 및 시스템 감사 옵션은 함께 지정될 수 없습니다.
ora-00982    
ora-00984     열을 사용할 수 없습니다.
ora-00985     프로그램명이 부적합합니다.
ora-00986     그룹명이 부적합하거나 없습니다.
ora-00987     사용자명이 부적합하거나 없습니다.
ora-00988     암호가 틀립니다.
ora-00989     사용자명에 대한 암호가 너무 많습니다.
ora-00990     권한이 부적합합니다.
ora-00991     mac 권한만이 프로시저에게 권한부여해 줍니다.
ora-00992     revoke 명령어의 형식이 부적합합니다.
ora-00993     grant 키워드가 없습니다.
ora-00994     option 키워드가 없습니다.
ora-00995     동의어의 식별자가 부적합합니다.
ora-00996     연접 연산자는 | 이 아니고 || 입니다.
ora-00997     long 데이타 유형은 사용할 수 없습니다.
ora-00998     이 식은 열의 별명과 함께 지정해야 합니다.
ora-00999     뷰명이 부적합합니다.
ora-01000     최대 열기 커서 수를 초과했습니다.
ora-01001     커서가 부적합합니다.
ora-01002     인출 시퀀스가 틀립니다.
ora-01003     해석된 문이 없습니다.
ora-01004     디폴트 사용자명 사용 불가. 로그온이 허락되지 않습니다.
ora-01005     널 암호가 입력되었습니다 로그온이 허락되지 않습니다.
ora-01006     바인드 변수가 없습니다.
ora-01007     변수가 선택 리스트에 없습니다.
ora-01008     모든 한계변수가 아닙니다.
ora-01009     필수 파라미터가 없습니다.
ora-01010     oci 조작이 부적합합니다.
ora-01011     v6 서버와 교신할때 v7 호환성 모드를 사용할 수 없습니다.
ora-01012     로그온되어 있지 않습니다.
ora-01013     현 조작의 취소가 요구되었습니다.
ora-01014     oracle의 정지 처리가 진행중입니다.
ora-01015     로그온이 순환적으로 호출되었습니다.
ora-01016     이함수는 인출 이후에만 호출될 수 있습니다.
ora-01017     사용자명/암호가 부적합, 로그온할 수 없습니다.
ora-01018     long 데이타 유형의 열이 아닙니다.
ora-01019     사용자쪽의 기억영역을 할당할 수 없습니다.
ora-01020     문맥의 상태가 불명확합니다.
ora-01021     지정한 문맥 크기가 부적합합니다.
ora-01022     이 구성에 데이타베이스 작업이 지원되지 않습니다.
ora-01023     커서 문맥가 없습니다부당한 커서번호)
ora-01024     oci 콜의 데이타 유형은 부적합합니다.
ora-01025     upi 파라미터가 부적합합니다.
ora-01026     바인드 목록에 크기가 2000이상인 다중 버퍼
ora-01027     데이타 정의에서는 바인드 변수를 사용할 수 없습니다.
ora-01028     내부 투 태스크(two task) 오류
ora-01029     내부 투 태스크(two task) 오류
ora-01030     select ... into 변수가 없습니다.
ora-01031     권한이 불충분합니다.
ora-01032     사용자 번호가 존재하지 않습니다.
ora-01033     oracle의 초기화 또는 정지 처리가 진행중입니다.
ora-01034     oracle을 사용할 수 없습니다.
ora-01035     oracle은 restricted session 권한을 갖는 사용자만 사용 가능합니다.
ora-01036     잘못된 변수명/번호
ora-01037     최대 커서 메모리가 초과되었습니다.
ora-01038     데이타베이스 화일 버전 %s에 oracle 버전 %s으로 기록할 수 없습니다.
ora-01039     사용되지 않는 오류
ora-01040     암호에 잘못된 문자가 있습니다 로그온을 할 수 없습니다.
ora-01041     내부오류. hostdef 확장이 존재하지 않습니다.
ora-01042     개방된 커서와 함께 세션을 분리하는 것은 허용되지 않습니다.
ora-01043     사용자쪽의 기억영역 파괴 [%s], [%s], [%s], [%s]
ora-01044     버퍼의 크기 %s (한계가 변수 %s)가 최대의 %s를 초과했습니다.
ora-01045     사용자 %s는 create session 권한을 가지고있지 않음; 로그온이 거절되었습니다.
ora-01046     확장할 문맥 영역을 획득할 수 없습니다.
ora-01047     위에 오류는 스키마=%s, 패키지=%s, 프로시저=%s에서 발생된 것입니다.
ora-01048     주어진 컨텍스트에서 지정된 프로시저를 찾을 수 없습니다.
ora-01049     스트림된 rpc에서 이름으로 바인드한것은 지원되지 않습니다.
ora-01050     문맥 영역을 개방하기 위한 영역을 획득할 수 없습니다.
ora-01051     잘못된 지연 rpc 버퍼 포맷
ora-01053     사용자 기억 영역 주소를 읽을 수 없습니다.
ora-01054     사용자 기억 영역 주소에 기록할 수 없습니다.
ora-01057     내부의 new upi 인터페이스 오류
ora-01058     internal new upi interface error
ora-01059     바인드 또는 실행전에 구문분석이 필요합니다.
ora-01060     배열 바인드 또는 실행이 허용되지 않습니다.
ora-01070     서버용으로 구버전의 오라클을 사용
ora-01071     oracle을 기동하지 않으면 조작 실행이 불가 합니다.
ora-01072     oracle은 기동중이 아닙니다 정지할 수 없습니다.
ora-01073     연결 오류. 콜(call)의 유형을 인식할 수 없습니다.
ora-01074     oracle은 정지되지 않습니다 먼저 로그오프해 주십시오
ora-01075     이미 로그온되어 있습니다.
ora-01076     단일 프로세스에 대한 복수 로그온은 제공되지 않습니다.
ora-01077     백그라운드 프로세스 초기화 오류입니다.
ora-01078     시스템 파라미터 처리 오류입니다.
ora-01079     oracle 데이타베이스가 작성되지 않았음 - 작업이 비정상 종료되었습니다.
ora-01080     oracle 정지중 오류가 발생했습니다.
ora-01081     이미 기동중인 oracle을 기동하려 했습니다.
ora-01082     row_locking = always 기능은 tps 옵션이 없는 oracle에서는 지원되지않습니다.
ora-01083     파라미터 값 %s는 다른 서버들의 값과 불일치합니다.
ora-01084     oci 호출에 부적당한 인수가 있습니다.
ora-01085     %s에 대한 지연 원격 프로시저 호출(rpc)에서 오류 발생
ora-01086     세이브포인트 %s 는 설정되어 있지 않습니다.
ora-01087     현재 oracle에 로그온되어 있습니다 기동할 수 없습니다.
ora-01088     액티브 프로세스가 있기 때문에 oracle을 정지할 수 없습니다.
ora-01089     정지 처리(즉시)중입니다 조작은 허가되지 않습니다.
ora-01090     정지 처리중입니다 연결할 수 없습니다.
ora-01091     기동중에 오류가 발생했습니다.
ora-01092     오라클 인스턴스 종료 분리가 되었습니다.
ora-01093     alter database close 문은 연결된 세션이 없는 경우에만 가능합니다.
ora-01094     alter database close 문이 수행중 입니다 연결은 허용되지 않습니다.
ora-01095     dml 문이 0개의 행을 처리 했습니다.
ora-01096     프로그램 버전 (%s)과 인스턴스 (%s)가 호환성이 없습니다.
ora-01097     트랜잭션 도중에 shutdown할 수 없습니다- 먼저 커밋 혹은 롤백하십시오
ora-01098     long insert중에 프로그램 인터페이스 오류
ora-01099     단일 프로세스 모드로 기동된 데이타베이스는 shares 모드로 마운트할 수 없습니다.
ora-01100     데이타베이스가 이미 마운트 되었습니다.
ora-01101     다른 인스턴스로 부터 생성된 데이타베이스가 현재 마운트 되었습니다.
ora-01102     데이타베이스가 exclusive 모드로 마운트할 수 없습니다.
ora-01103     제어 화일의 데이타베이스명 %s는 %s가 아닙니다.
ora-01104     제어 화일의 수(%s)가 %s 와 일치하지 않습니다.
ora-01105     올리기는 다른 인스턴스에 의해 마운트하는 것과 호환성이 없습니다.
ora-01106     내리기를 하기전에 데이타베이스를 디스마운트 합니다.
ora-01107     매체 복구를 위해 데이타베이스를 마운트해야 합니다.
ora-01108     화일 %s가 매체 복구 중에 있습니다.
ora-01109     데이타베이스가 개방되지 않습니다.
ora-01110     데이타 화일 %s: %s
ora-01111     데이타 화일 %s의 이름을 모릅니다- 올바른 화일로 재명명 하십시오.
ora-01112     매체 복구 처리가 개시되지 않았습니다.
ora-01113     화일 %s가 매체 복구되어야 합니다.
ora-01114     화일 %s의 블록쓰기 io 오류입니다블록 번호 %s).
ora-01115     화일 %s의 블록(블록 번호 %s) 읽기 io 오류입니다.
ora-01116     데이타베이스 화일 %s의 개방 오류입니다.
ora-01117     추가하는 화일 %s 의 블록 크기 %s 는 부적합합니다 제한은 %s 입니다.
ora-01118     데이타베이스 화일을 더 이상 등록할 수 없습니다 제한 %s 를 초과했습니다.
ora-01119     데이타베이스 화일 %s 의 작성 오류입니다.
ora-01120     온라인 데이타베이스 화일 %s은 삭제할 수 없습니다.
ora-01121     데이타 화일 %s를 재명명할 수 없습니다- 화일이 사용중이거나 복구중입니다.
ora-01122     데이타 화일 %s의 검증 체크에 실패 했습니다.
ora-01123     온라인 백업을 개시할 수 없습니다 매체 복구가 사용 불가로 되어 있습니다.
ora-01124     데이타 화일 %s을 복구할 수 없음 - 화일이 사용중이거나 복구중입니다.
ora-01125     매체 복구를 사용불가할 수 없음. 화일 %s 가 온라인 백업으로 설정됨.
ora-01126     데이타베이스는 exclusive로 마운트하고 개방하지 말아야 합니다.
ora-01127     데이타베이스명 %s가 최대 문자수 %s를 초과했습니다.
ora-01128     온라인 백업을 시작할 수 없음 - 화일 %s가 오프라인입니다.
ora-01129     디폴트 또는 임시 테이블 영역이 존재하지 않습니다.
ora-01130     데이타베이스 화일 버전 %s 는 oracle 버전 %s 와 호환되지 않습니다.
ora-01131     db_files 파라미터의 값 %s 가 최대수 %s 를 초과했습니다.
ora-01132     데이타베이스 화일명 %s 의 길이가 최대 문자수 %s 를 초과했습니다.
ora-01133     로그 화일명 %s 의 길이가 최대 문자수 %s 를 초과했습니다.
ora-01134     데이타베이스가 다른 인스턴스에 의해 배타 모드로 마운트했습니다.
ora-01135     dml/질의로 액세스된 화일 %s 는 오프 라인입니다.
ora-01136     화일 %s의 명시된 크기(%s 블록)가 원래 크기 %s 블록보다 작습니다.
ora-01137     데이타 화일 %s가 오프라인으로 되고 있는 중입니다.
ora-01138     데이타베이스가 이 인스턴스로 열거나 다른 인스턴스에 대해 닫아야 합니다.
ora-01139     resetlogs 옵션은 불완전한 데이타베이스의 복구 후에만 유효합니다.
ora-01140     온라인 백업을 종료할 수 없음 - 모든 화일이 오프라인입니다.
ora-01141     데이타 화일 %s의 재명명 오류 - 새로운 화일 %s 가 없습니다.
ora-01142     온라인 백업을 종료할 수 없음 - 백업할 수 있는 상태의 화일이 없습니다.
ora-01143     매체 복구를 사용불가하게할 수 없습니다 화일 %s가 매체복구를 필요로 합니다.
ora-01144     화일크기(%s 블록)가 최대치 %s 블록을 초과합니다.
ora-01145     매체 복구가 사용 가능하지 않으면 즉시 오프라인으로 할 수 없습니다.
ora-01146     온라인 백업을 시작할 수 없습니다 - 화일 %s가 이미 백업중에 있습니다.
ora-01147     system 테이블 영역 화일 %s가 오프 라인입니다.
ora-01148     이 작업을 하려면 데이타베이스가 exclusive 모드로 마운트해야 합니다.
ora-01149     정지처리 불가 - 화일 %s를 온라인 백업중 입니다.
ora-01150     쓰기 방지를 할수 없음 - 화일 %s를 온라인 백업중 입니다.
ora-01151     블록을 복구하려면 미디어 복구를 사용하고 필요하면 백업을 사용하십시오
ora-01152     화일 %s가 충분한 이전 백업으로 복구되지 않았습니다
ora-01153     비호환 매체 복구가 동작 상태입니다.
ora-01154     데이타베이스는 사용중 - 개방, 클로즈, 마운트, 디스마운트 할 수 없습니다.
ora-01155     데이타베이스는 개방, 클로즈, 마운트 혹은 디스마운트 중 입니다.
ora-01156     진행중인 복구 작업이 화일 액세스를 필요로 할 수 있습니다.
ora-01157     데이타 화일 %s를 식별할 수 없습니다- 화일이 발견되지 않음
ora-01158     데이타베이스 %s 가 이미 마운트했습니다.
ora-01159     화일이 동일한 데이타베이스의 화일이 아닙니다- 데이타베이스 id가 잘못됨.
ora-01160     화일이 %s가 아닙니다.
ora-01161     화일헤더에 있는 데이타베이스명 %s가 주어진 이름 %s 와 일치하지 않습니다.
ora-01162     화일 헤더에 블록 크기 %s가 db_block_size(%s)와 일치하지 않습니다.
ora-01163     size 절에 %s (블록)이 지정되었으나 헤더 %s와 일치해야 합니다.
ora-01164     maxlogfiles는 %s 를 초과할 수 없습니다.
ora-01165     maxdatafiles는 %s 를 초과할 수 없습니다.
ora-01166     화일번호 %s가 %s (%s)보다 큽니다.
ora-01167     두개의 화일들이 같은 화일 그룹번호 이거나 같은 화일입니다.
ora-01168     물리 블록 크기 %s가 다른 멤버들의 크기 %s와 일치하지 않습니다.
ora-01169     datafile 번호 1번이 없습니다.
ora-01170     화일이 존재하지 않습니다 %s
ora-01171     체크포인트 오류 때문에 데이타 화일 %s이 오프라인됩니다.
ora-01172     쓰레드 %s의 복구가 블록 %s(화일 %s의)에서 더이상 진행되지 못합니다.
ora-01173     데이타 dictionary
ora-01174     db_file %s는 호환성을 위해서 %s가 되어야 합니다.
ora-01175     데이타 dictionary가 인스턴스에서 허용하는 %s 보다 많은 수의 화일을 포함합니다.
ora-01176     데이타 dictionary가 제어 화일에서 허용하는 %s 보다 많은 수의 화일을 포함합니다.
ora-01177     데이타 화일이 dictionary와 일치하지 않습니다- 아마도 오래된 것입니다.
ora-01178     화일 %s가 마지막 create controlfile 이전에 생성됐음. 재 생성할 수 없습니다.
ora-01179     화일 %s 가 존재하지 않습니다.
ora-01180     데이타 화일 1을 생성할 수 없습니다.
ora-01181     최후의 resetlogs 이전에 생성된 화일 %s를 재생성할 수 없습니다.
ora-01182     데이타베이스 화일 %s를 생성할 수 없음 - 사용중이거나 복구중입니다.
ora-01183     shared모드로 데이타베이스를 마운트할 수 없습니다.
ora-01184     로그화일 그룹 %s는 이미 존재합니다.
ora-01185     로그화일 그룹 %s는 부적절합니다.
ora-01186     화일 %s의 검증 테스트에 실패했습니다.
ora-01187     검증 테스트에 실패했기 때문에 화일 %s를 읽을 수 없습니다.
ora-01188     헤더내의 블록 크기 %s가 실제 물리블록 크기 %s와 맞지 않습니다.
ora-01189     이전 화일과 다른 resetlogs가 사용되었습니다.
ora-01190     제어 화일 혹은 데이타 화일 %s는 마지막 resetlogs 이전의 것입니다.
ora-01191     화일 %s는 이미 오프라인임 - 정상적인 오프라인을 할 수 없습니다.
ora-01192     최소한 하나의 이용 가능한 쓰레드를 가져야합니다.
ora-01193     화일 %s는 복구 시작시 인식된 화일이 아닙니다.
ora-01194     화일 %s가 일관성을 갖기 위해서는 더 많은 복구가 필요로 합니다.
ora-01195     화일 %s의 온라인 백업은 일관성을 갖기위해 더 많은 복구가 필요로 합니다.
ora-01196     매체복구 세션의 실패로 인하여 화일 %s의 일관성이 결여되어 있습니다.
ora-01197     쓰레드 %s는 하나의 로그만을 포함하고 있습니다.
ora-01198     resetlogs인 경우 로그화일에 대한 크기를 지정하여야 합니다.
ora-01199     화일 %s는 온라인 백업 모드가 아닙니다.
ora-01200     실제 화일크기 %s는 맞는 크기인 %s 블록보다 작습니다.
ora-01201     헤더내의 화일 크기 %s가 제어화일내의 크기 %s와 일치하지 않습니다.
ora-01202     화일의 구현이 잘못됨 - 작성 시각이 틀립니다.
ora-01203     화일의 구현이 잘못됨 - 작성 scn이 틀립니다.
ora-01204     화일 번호가 %s (%s가 아님) - 틀린 화일입니다.
ora-01205     데이타 화일이 아님 - 헤더내의 유형 번호가 %s입니다.
ora-01206     화일은 이 데이타베이스의 일부가 아님 - 데이타베이스 id가 틀립니다.
ora-01207     화일이 제어화일보다 최근의 것임 - 오래된 제어화일입니다.
ora-01208     데이타 화일이 구버전임 - 현 버전을 액세스하지 않았습니다.
ora-01209     데이타 화일이 마지막 resetlogs 이전의 것입니다.
ora-01210     데이타 화일의 헤더가 매체 붕괴되었습니다.
ora-01211     버전 6의 데이타 화일이 버전7으로의 변환 화일이 아닙니다.
ora-01212     maxlogmembers는 %s를 초과할 수 없습니다.
ora-01213     maxinstance는 %s를 초과할 수 없습니다.
ora-01214     maxloghistory는 %s를 초과할 수 없습니다.
ora-01215     create controlfile이후의 가용 쓰레드 %s가 빠졌습니다.
ora-01216     create controlfile이후 쓰레드 %s는 사용불가되어야합니다.
ora-01217     로그화일 멤버가 다른 로그화일 그룹에 속해있습니다.
ora-01218     로그화일 멤버는 동일한 시간때에 만든것이 아닙니다.
ora-01219     데이타베이스가 열지 않았음: 고정 테이블/뷰에 대해서만 조회가 가능합니다.
ora-01220     데이테베이스가 개방 되기전에는, 화일을 기본으로하는 소트가 부적합합니다.
ora-01221     데이타 화일 %s는 백그라운드 프로세스에 대해 동일 화일이 아닙니다.
ora-01222     %s의 maxinstances는 maxlogfiles가 최소 %s이어야함(%s가 아님)
ora-01223     새로운 데이타베이스명을 부여하기 위해서는 resetlogs를 지정하여야 합니다.
ora-01224     헤더 %s내의 그룹번호가 group %s와 맞지 않습니다.
ora-01225     쓰레드 번호 %s가 maxinstances %s 보다 큽니다.
ora-01226     로그 멤버의 화일헤더가 다른 멤버와 일치하지 않습니다.
ora-01227     로그 %s는 다른 로그와 일치하지 않습니다.
ora-01228     기초 데이테베이스를 설치하려면 set database 옵션이 필요합니다.
ora-01229     데이타 화일 %s가 로그와 일치하지 않습니다.
ora-01230     읽기 전용으로 만들수 없습니다- %s 화일이 오프라인입니다.
ora-01231     쓰기 전용으로 만들수 없습니다- %s 화일이 오프라인입니다.
ora-01232     온라인 백업을 수행할 수 없습니다- %s 화일은 읽기 전용입니다.
ora-01233     %s 화일은 읽기 전용입니다- 컨트롤화일 백업을 사용해서 복구할 수 없습니다.
ora-01234     화일 %s의 백업을 종료할 수 없습니다 - 화일을 사용중이거나 복구중입니다.
ora-01235     %s 화일에 대한 end backup은 실패하고 %s에 대해서는 성공했습니다.
ora-01237     데이타화일 %s를 확장할 수 없습니다.
ora-01238     데이타화일 %s를 축소할 수 없습니다.
ora-01239     데이터베이스는 외부 캐시를 사용하기 위해서 archivelog 모드로 되어 있어야 합니다.
ora-01240     하나의 명령어에 너무 많은 데이터 화일을 추가합니다.
ora-01241     외부 캐시가 죽었습니다.
ora-01242     데이터 화일이 메디아 실패를 받았습니다: 데이터베이스는 noarchivelog 모드입니다.
ora-01243     시스템 테이블스페이스 화일이 메디아 실패를 받았습니다.
ora-01244     메디아 복구에 의해서 제어화일에 이름 없는 데이터화일이 추가되었습니다.
ora-01245     오프라인 화일 %s 은 resetlogs이 끝나면 없어집니다.
ora-01400     행의 입력으로 필수 열(not null)에 값이 지정되지 않았습니다.
ora-01401     열에 입력한 값이 너무 큽니다.
ora-01402     뷰의 with check option의 조건에 위배 됩니다.
ora-01403     데이타가 없습니다.
ora-01404     alter column은 색인을 너무 크게 만들 수 있습니다.
ora-01405     인출된 열의 값은 null입니다.
ora-01406     인출된 열의 값이 절사되었습니다.
ora-01407     입력 필수 열(not null)은 null로 갱신할 수 없습니다.
ora-01408     열 리스트에는 이미 색인이 작성되어 있습니다.
ora-01409     nosort 옵션은 사용할 수 없습니다 행이 오름차순으로 되어 있지 않습니다.
ora-01410     rowid가 부적합합니다.
ora-01411     표시기내에 열의 길이를 저장할 수 없습니다.
ora-01412     이 데이타 유형에 대해서는 0길이가 허용되지 않습니다.
ora-01413     팩형 십진수 버퍼안의 값이 부적합합니다.
ora-01414     배열을 바인드 할때 배열 길이가 부적합합니다.
ora-01416     두 개의 테이블을 outer-join할 수 없습니다.
ora-01417     하나의 테이블은 하나의 다른 테이블과 outer-join할 수 있습니다.
ora-01418     지정한 색인는 존재하지 않습니다.
ora-01419     datdts: 형식 코드 오류입니다.
ora-01420     datstd: 형식 코드 오류입니다.
ora-01421     datrnd/dattrn: 정도 지정자 오류입니다.
ora-01422     실제 인출은 요구된 것보다 많은 수의 행을 추출합니다.
ora-01423     실제 인출에서 여분의 행을 검사하는 중에 오류가 검출되었습니다.
ora-01424     에스케이프 문자 뒤에 누락 혹은 부당한 문자가 있습니다.
ora-01425     에스케이프 문자는 1자리 문자 스트링이어야 합니다.
ora-01426     수치 오버플로우
ora-01427     단일 행 부속 질의에 의해 2개 이상의 행이 리턴되었습니다.
ora-01428     인수 %s가 범위를 벗어났습니다.
ora-01430     추가하려는 열이 이미 테이블에 존재합니다.
ora-01431     grant 명령어 내부 불일치 오류입니다.
ora-01432     삭제할 공개 동의어가 존재하지 않습니다.
ora-01433     작성한 동의어가 이미 정의되어 있습니다.
ora-01434     삭제할 비공개 동의어가 존재하지 않습니다.
ora-01435     사용자가 존재하지 않습니다.
ora-01436     connect by의 루프가 발생되었습니다.
ora-01437     결합은 connect by와 함께 지정할 수 없습니다.
ora-01438     지정한 정도를 초과한 값이 열에 지정되었습니다.
ora-01439     데이타 유형을 변경할 열은 비어 있어야 합니다.
ora-01440     정도 또는 자리수를 축소할 열은 비어 있어야 합니다.
ora-01441     길이를 짧게 변경할 열의 값은 null이어야 합니다.
ora-01442     변경하고자 하는 열이 이미 not null입니다.
ora-01443     내부 오류 : 뷰 열의 데이타 유형이 부적합합니다.
ora-01444     내부 오류 : 내부 데이타 유형와 외부 데이타 유형은 부적합합니다.
ora-01445     키-보전 테이블 없이 결합 뷰으로 부터 rowid를 선택할 수 없습니다.
ora-01446     distinct, group by 등을 포함하는 뷰로부터 rowid를 선택할 수 없습니다.
ora-01447     클러스터 열에 alter table 문을 사용할 수 없습니다.
ora-01448     데이타 유형을 변경하기 전에 색인을 삭제해야 합니다.
ora-01449     열이 null값을 포함하고 있습니다 not null로 변경할 수 없습니다.
ora-01450     키의 최대 길이(%s)를 초과했습니다.
ora-01451     열이 이미 null로 되어 있습니다.
ora-01452     중복 키가 있습니다. 유일한 색인을 작성할 수 없습니다.
ora-01453     set transaction 사용시에는 트랜잭션의 최초문장 이어야 합니다.
ora-01454     수치 데이타 유형으로 변환할 수 없습니다.
ora-01455     열의 변환에 의해 정수 데이타 유형이 오버플로우되었습니다.
ora-01456     read only 트랜잭션은 삽입/삭제/갱신할 수 없습니다.
ora-01457     열의 변환에 의해 decimal 데이타 유형이 오버플로우되었습니다.
ora-01458     가변장 스트링의 지정된 길이가 부적합합니다.
ora-01459     가변장 스트링의 길이가 부적합합니다.
ora-01460     요구된 변환은 실행될 수 없습니다.
ora-01461     long 값은 long 열에만 입력할 수 있습니다.
ora-01462     2000 문자 이상은 입력할 수 없습니다.
ora-01463     자신에 대한 권한의 허가나 취소는 불가능합니다.
ora-01464     테이블 또는 뷰의 grant 오류입니다.
ora-01465     16진수의 지정이 부적합합니다.
ora-01466     테이블 정의가 변경되었습니다 데이타를 읽을 수 없습니다.
ora-01467     정렬 키가 너무 깁니다.
ora-01468     outer-join된 테이블은 1개만 지정할 수 있습니다.
ora-01469     prior의 뒤에는 열 명을 지정해 주십시오
ora-01471     개체와 같은 이름의 동의어는 작성할 수 없습니다.
ora-01472     connect by는 distinct, group by 를 동반한 뷰에 사용할 수 없습니다.
ora-01473     connect by 구에 부속 질의를 지정할 수 없습니다.
ora-01474     connect by 없이 start with 나 prior 는 지정할 수 없습니다.
ora-01475     바인드 변수의 데이타 유형 변경을 위해서는 커서를 재구문분석을 해야 합니다.
ora-01476     제수가 0 입니다.
ora-01477     사용자 데이타 영역 기술자가 너무 큽니다.
ora-01478     long 열은 배열 바인드에 사용할 수 없습니다.
ora-01479     버퍼내의 마지막 문자가 널(null)이 아닙니다.
ora-01480     str 바인드 값에 종료의 널이 없습니다.
ora-01481     숫자 형식 모델이 부적합합니다.
ora-01482     지정된 문자세트는 제공하지 않습니다.
ora-01483     date 또는 number 바인드 변수의 길이가 부적합합니다.
ora-01484     배열은 pl/sql문 범위에서만 해야 합니다.
ora-01485     실행 바인드 길이가 컴파일 바인드 길이와 다릅니다.
ora-01486     배열요소 크기가 너무 큽니다.
ora-01487     팩형 십진수가 제공된 버퍼에 비해 너무 큽니다.
ora-01488     부적절한 팩형 십진수 입니다.
ora-01489     스트링 연결의 결과가 너무 깁니다.
ora-01490     부적합한 analyze 명령입니다.
ora-01491     cascade 옵션이 부적합합니다.
ora-01492     현 트랜잭션이 이미 롤백 세그먼트에 연결되어 있습니다.
ora-01493     명시된 sample 길이가 부적합합니다.
ora-01494     지정된 size가 부적당합니다.
ora-01495     지정된 연결행 테이블이 없습니다.
ora-01496     지정된 연결행 테이블 형식이 틀립니다.
ora-01497     analyze cluster에 대한 옵션이 잘못되었습니다.
ora-01498     블록 체크 실패 - 트래스 화일을 보십시오
ora-01499     테이블/색인의 교차 참조 실패 - 트래스 화일을 보십시오
ora-01500     날짜/시간의 획득 오류입니다.
ora-01501     create database 문 오류입니다.
ora-01502     색인 %s는 직접 로드 상태입니다.
ora-01503     create controlfile이 실패했습니다.
ora-01504     데이타베이스명 %s가 db_name 파라미터 %s와 맞지않습니다.
ora-01505     로그 화일 등록 오류입니다.
ora-01506     데이타베이스 명을 올바르게 지정해 주십시오.
ora-01507     데이타베이스가 마운트하지 않았습니다.
ora-01508     화일 %s 의 줄 %s 에 오류. 데이타베이스를 생성할 수 없습니다.
ora-01509     지정한 이름 %s 가 실제의 이름 %s 와 일치하지 않습니다.
ora-01510     로그 화일 삭제 오류입니다.
ora-01511     로그/데이타 화일의 재명명 오류입니다.
ora-01512     로드 화일 %s의 재명명 오류 - 새로운 화일 %s가 없습니다.
ora-01513     운영 시스템으로 부터 부정확한 현시각이 보내졌습니다.
ora-01514     로그 명세에 오류: 그런 로그가 없습니다.
ora-01515     로그 그룹 %s의 삭제시 오류. 그런 로그가 없습니다.
ora-01516     로그/데이타 화일 %s 는 존재하지 않습니다.
ora-01517     로그 멤버: %s
ora-01518     2개 이상의 로그 화일을 create database 에 지정해 주십시오.
ora-01519     오류 발생(화일 %s 의 줄 %s 부근)
ora-01520     추가할 데이타 화일의 수(%s)가 최대수 %s 를 초과했습니다.
ora-01521     데이타 화일의 등록중 오류가 발생했습니다.
ora-01522     재명명할 화일 %s 가 없습니다.
ora-01523     데이타 화일 %s 는 이미 데이타베이스의 일부입니다. 재명명할 수 없습니다.
ora-01524     %s로 데이타 화일을 생성할 수 없음 - 화일이 이미 데이타베이스의 부분입니다.
ora-01525     데이타 화일의 재명명중 오류가 발생했습니다.
ora-01526     화일 %s 의 열기 오류가 발생했습니다.
ora-01527     화일을 읽는 도중 오류가 발생했습니다.
ora-01528     sql 문의 처리중 eof 오류입니다.
ora-01529     화일 %s 의 클로즈중 오류가 발생했습니다.
ora-01530     이 인스턴스는 이미 데이타베이스를 마운트했습니다.
ora-01531     이 인스턴스는 이미 데이타베이스를 개방했습니다.
ora-01532     인스턴스가 기동되어 있습니다. 데이타베이스를 생성할 수 없습니다.
ora-01533     화일 %s 는 테이블 영역에 속해 있지 않습니다. 재명명할 수 없습니다.
ora-01534     롤백 세그먼트 %s 가 존재하지 않습니다.
ora-01535     롤백 세그먼트 %s 는 이미 존재합니다.
ora-01536     테이블 영역 %s 에 대한 영역 할당량이 초과됐습니다.
ora-01537     데이타 화일 %s 는 이미 데이타베이스의 일부입니다 등록할 수 없습니다.
ora-01538     롤백 세그먼트를 획득할 수 없습니다.
ora-01539     테이블 영역 %s 가 온라인이 아닙니다.
ora-01540     테이블 영역 %s 가 오프라인이 아닙니다.
ora-01541     system 테이블 영역은 오프라인될 수 없습니다 필요하면 중지 하십시오
ora-01542     테이블 영역 %s 가 오프라인입니다. 영역을 할당할 수 없습니다.
ora-01543     테이블 영역 %s 는 이미 존재하고 있습니다.
ora-01544     시스템 롤백 세그먼트는 삭제할 수 없습니다.
ora-01545     롤백 세그먼트 %s 는 사용할 수 없습니다.
ora-01546     테이블 영역에 액티브 롤백 세그먼트 %s 가 있습니다.
ora-01548     액티브 롤백 세그먼트 %s 가 존재함, 테이블 영역의 삭제를 종료하십시오.
ora-01549     테이블 영역이 비어있지 않으므로 including contents를 사용해 주십시오.
ora-01550     시스템 테이블 영역은 삭제할 수 없습니다.
ora-01551     롤백 세그먼트 확장 오류입니다.
ora-01552     시스템 테이블 영역이 아닌 %s 에 시스템 롤백 세그먼트를 사용할 수 없습니다.
ora-01553     maxextents는 현재 할당된 %s 엑스텐트 수 이상이어야 합니다.
ora-01554     트랜잭션 슬롯이 없습니다.
ora-01555     스냅샷이 너무 오래 되었습니다(롤백 세그먼트가 너무 작습니다)
ora-01556     롤백 세그먼트를 위한 minextents는 1보다 커야만 합니다.
ora-01557     롤백 세그먼트 엑스텐트는 최저 %s 블록이 필요합니다.
ora-01558     롤백 세그먼트 %s 에 트랜잭션 번호가 없습니다.
ora-01559     롤백 세그먼트의 maxextents 는 2 이상입니다.
ora-01560     글로벌 해쉬 테이블의 크기가 %s와 일치하지 않습니다 (%s !=%s)
ora-01561     지정된 테이블 영역중의 개체가 삭제되지 않았습니다.
ora-01562     롤백 세그먼트 확장 실패입니다 (id = %s)
ora-01563     키워드 public 을 사용해 주십시오
ora-01564     롤백 세그먼트는 public 이 아닙니다.
ora-01565     화일 %s 의 식별 오류가 발생했습니다.
ora-01566     drop logfile에 화일이 2회 이상 지정되었습니다.
ora-01567     로그 %s를 삭제하면 쓰레드 %s에 남는 로그 화일이 2개 미만으로 됩니다.
ora-01568     public에 영역 할당량을 설정할 수 없습니다.
ora-01569     시스템 dictionary 테이블에 대한 데이타 화일이 너무 작습니다.
ora-01570     minextents는 현재 할당된 %s보다 클 수 없습니다.
ora-01571     로그 레코드 버전 %s 가 oracle의 버전 %s 과 호환되지 않습니다.
ora-01572     롤백 세그먼트용 글로벌 해쉬 테이블의 크기 %s가 롤백 세그먼트 번호 %s 에 대해 너무 작음
ora-01573     인스턴스의 정지 처리가 진행중. 더 이상의 변경은 허용되지 않습니다.
ora-01574     최대 동시 실행 트랜잭션 수를 초과했습니다.
ora-01575     영역 관리 자원의 대기중 시간이 초과되었습니다.
ora-01576     인스턴스 잠금 프로토콜 버전 %s는 oracle의 버전 %s 와 호환되지 않습니다.
ora-01577     로그 화일 %s는 이미 데이타베이스의 일부입니다 등록이 불가능합니다.
ora-01578     oracle 데이타 블록이 파손되었습니다 (화일 번호 %s, 블록 번호 %s)
ora-01579     복구중 기록(write) 오류가 발생했습니다.
ora-01580     제어 화일의 백업 화일 %s 를 작성하는 중에 오류가 발생했습니다.
ora-01581     이미 할당된 롤백 세그먼트(%s) 새로운 익스텐트(%s)를 사용하려 시도했습니다.
ora-01582     백업을 하기위해 제어 화일을 열 수 없습니다.
ora-01583     백업될 제어 화일의 블록 크기를 획득할 수 없습니다.
ora-01584     백업될 제어 화일의 화일 크기를 획득할 수 없습니다.
ora-01585     백업 화일 %s 를 인식할 수 없습니다.
ora-01586     백업을 하기위한 수신 화일 %s을 열 수 없습니다.
ora-01587     제어 화일의 백업 화일 복제중 오류가 발생했습니다.
ora-01588     데이타베이스를 열기 위해서는 resetlogs 옵션을 사용해야 합니다.
ora-01589     데이타베이스를 열기 위해서는 resetlogs/noresetlogs 옵션을 사용해야 함
ora-01590     가용 세그멘트 수(%s)가 최대치인 %s 를 초과합니다.
ora-01591     잠금이 in-doubt 분산 트랜잭션 %s에 주어졌습니다.
ora-01592     버전 6의 롤백 세그먼트(%s)를 oracle7 포맷으로 변환시 오류 발생
ora-01593     롤백 세그먼트의 최적크기(%s 블록)가 초기크기 계산(%s 블록)보다 작습니다.
ora-01594     해제될 롤백 세그먼트(%s) 익스텐트(%s)를 연결하려함
ora-01595     익스텐스(%s)(롤백 세그먼트 (%s)의) 해제시 오류
ora-01596     %s 파라미터에 시스템을 지정할 수 없습니다.
ora-01597     시스템 롤백 세그먼트를 온라인 혹은 오프라인시킬 수 없습니다.
ora-01598     롤백 세그먼트 %s가 온라인이 아닙니다.
ora-01599     롤백 세그먼트(%s)를 획득하는데 실패, 캐쉬 영역이 꽉찼습니다현재(%s)엔트리를 가짐)
ora-01600     많아야 하나의 %s (gc_files_to_locks의 %s절에)
ora-01601     gc_files_to_locks의 %s절에 부당한 버켓(bucket) 크기
ora-01602     gc_files_to_locks에 예정된 것보다 gc_db_locks에 더 많은 잠금임
ora-01603     gc_files_to_locks의 %s절에 부당한 그룹크기
ora-01604     gc_files_to_locks의 %s절에 부당한 화일 번호 범위
ora-01605     gc_files_to_locks의 %s절에 화일 번호 누락
ora-01606     gc_files_to_lock가 마운트한 다른 인스턴스의 그것과 동일하지 않습니다.
ora-01607     gc_lck_procs (%s)가 다른 인스턴스 (%s)와 같지 않습니다.
ora-01608     롤백 세그먼트 %s를 온라인화할 수 없음. 상태는 (%s)
ora-01609     로그 %s는 쓰레드 %s에 대한 현 로그 - 멤버를 삭제할 수 없습니다.
ora-01610     backup controlfile 옵션을 이용해서 복구가 끝나야만 합니다.
ora-01611     쓰레드번호 %s는 부적절함 - %s보다 커서는 안됩니다.
ora-01612     쓰레드 %s는 이미 가용되었습니다.
ora-01613     쓰레드 %s는 %s 로그만을 가짐 - 가용화를 위해서는 최소 2개의 로그를 필요로 함
ora-01614     쓰레드 %s는 사용중임 - 사용가능하게할 수 없습니다.
ora-01615     쓰레드 %s는 마운트됨 - 사용불가하게할 수 없습니다.
ora-01616     쓰레드 %s는 열려 있음 - 사용불가하게할 수 없습니다.
ora-01617     마운트할 수 없음: %s는 정당한 쓰레드 번호가 아님
ora-01618     쓰레드 %s는 사용가능하지 않았음 - 마운트할 수 없습니다.
ora-01619     쓰레드 %s는 다른 인스턴스에 의해 마운트했습니다.
ora-01620     마운트에 필요한 공용 쓰레드가 없습니다.
ora-01621     데이타베이스가 열려 있으면 현 로그의 멤버를 개명할 수 없습니다.
ora-01622     쓰레드 번호가 지정되어야함 - 디폴트는 없습니다.
ora-01623     로그 %s는 쓰레드 %s에 대한 현 로그임 - 삭제할 수 없습니다.
ora-01624     로그 %s가 쓰레드 %s 복구시 필요합니다.
ora-01625     롤백 세그먼트 %s는 이 인스턴스에 속해있지 않습니다.
ora-01626     롤백 세그먼트 번호 %s는 더 이상의 트랜잭션을 처리할 수 없습니다.
ora-01627     롤백 세그먼트 번호 %s는 온라인이 아닙니다.
ora-01628     롤백 세그먼트 %s에 대한 최대 익스텐스 수 (%s)에 도달했습니다.
ora-01629     테이블 영역 %s에 대한 실행취소의 저장시 최대 익스텐트 수(%s)에 도달했음
ora-01630     테이블 영역 %s의 임시 세그먼트에 최대 익스텐트 수(%s)가 되었습니다.
ora-01631     최대 익스텐트 수(%s)에 도달 (테이블 %s.%s)
ora-01632     최대 익스텐트 수(%s)에 도달 (색인 %s.%s)
ora-01633     이 조작에는 병렬 서버 옵션이 필요합니다.
ora-01634     롤백 세그먼트 번호 %s가 오프라인 되려합니다.
ora-01635     지정된 롤백 세그먼트 번호 %s가 가용하지 않습니다.
ora-01636     롤백 세그먼트 %s가 이미 온라인 상태입니다.
ora-01637     롤백 세그먼트 %s가 다른 인스턴스(수 %s)에 의해 사용됩니다.
ora-01638     %s 파라미터는 oracle 버전 %s에서 병렬 마운트를 허용하지 않습니다.
ora-01639     데이타베이스는 잠금 프로세스 없이 병렬로 마운트할 수 없습니다.
ora-01640     활성 트랙잰션으로 테이블 공간을 읽기 전용으로 만들수 없습니다.
ora-01641     테이블스페이스 %s은 온라인이 아닙니다 - 데이타 화일을 추가할 수 없습니다.
ora-01642     읽기 전용 %s 테이블 공간에 초기 백업이 필요하지 않습니다.
ora-01643     시스템 테이블 공간를 읽기 전용으로 만들 수 없습니다.
ora-01644     %s 테이블 공간은 이미 읽기 전용입니다.
ora-01645     읽기 쓰기를 하기위해서 이전에 시도한것이 반만 완성되었습니다.
ora-01646     %s 테이블 공간은 읽기 전용입니다- 읽기 쓰기를 할 수 없습니다.
ora-01647     %s 테이블 공간은 읽기 전용이어서, 거기에 공간을 할당할 수 없습니다.
ora-01648     로그 %s는 사용불가인 쓰레드 %s의 현재 로그입니다.
ora-01649     백업 컨트롤 화일에 대한 작업이 허용되지 않습니다.
ora-01650     롤백 세그먼트 %s를 %s에 의해 %s 테이블 공간에서 확장할 수 없습니다.
ora-01651     %s로 테이블 공간 %s에 저장 취소 세그먼트를 확장할 수 없습니다.
ora-01652     %s로 테이블 공간 %s에서 임시 세그먼트를 확장할 수 없습니다.
ora-01653     테이블 %s.%s를 %s에 의해 %s 테이블 공간에서 확장할 수 없습니다.
ora-01654     색인 %s.%s를 %s에 의해 %s 테이블 공간에서 확장할 수 없습니다.
ora-01655     크러스터 %s.%s를 %s에 의해 %s 테이블 공간에서 확장할 수 없습니다.
ora-01656     최대 번호 확장 (%s)가 %s.%s 크러스터에 도달했습니다.
ora-01657     부적당한 shrink 옵션 값
ora-01658     테이블스페이스 %s에 세그먼트에 대한 initial 익스텐트를 작성할 수 없습니다.
ora-01659     테이블스페이스 %s에 %s이상의 minextents를 할당할 수 없습니다.
ora-01660     테이블스페이스 %s 은 이미 영구적인 것입니다.
ora-01661     테이블스페이스 %s 은 이미 임시적인 것입니다.
ora-01662     테이블스페이스 %s 은 비어 있지 않아 임시로 만들 수가 없습니다.
ora-01663     테이블스페이스 %s 의 내용은 항상 변경합니다.
ora-01664     정렬 세그먼트로 확장된 트랜잭션은 중지 되었습니다.
ora-01665     제어화일은 대기 제어화일이 아닙니다.
ora-01666     제어화일은 대기 제어화일을 위한 것입니다.
ora-01667     리두 로그는 대기 데이터베이스와 상반됩니다.
ora-01668     데이터 화일의 오프라인을 위해서 대기 데이터베이스가 drop 옵션을 요구합니다.
ora-01669     대기 데이터베이스 제어화일은 데이터화일과 일치하지 않습니다.
ora-01670     대기 데이터베이스 복구에 새로운 데이터화일 %s 가 필요합니다.
ora-01671     제어화일은 백업합니다, 대기 제어화일을 만들 수 없습니다.
ora-01672     제어화일에 화일이 빠졌거나 하나 더 가지고 있습니다.
ora-01673     데이터 화일 %s 은 식별된것이 아닙니다.
ora-01674     데이터 화일 %s 은 현재 화일 대신 오래된 것을 가지고 있습니다.
ora-01676     대기 화일 이름은 %s의 변환을 하는데 최대 %s의 길이를 초과했습니다.
ora-01677     대기 화일 이름이 파라미터 변환을 다른 인스턴스와 다르게 했습니다.
ora-01678     파라미터 %s 은 패턴과 교체로 된 두가지 스트링을 가지고 있어야 합니다.
ora-01679     데이터베이스는 exclusive로 마운트 되어야 하고 열려 있지 않아야 합니다.
ora-01680     만약 gc_files_to_locks이 사용하고 있으면 gc_db_locks가 영일 수 없습니다.
ora-01700     리스트 내의 사용자명이 중복되었습니다.
ora-01701     클러스터가 부적합합니다.
ora-01702     뷰는 부적합합니다.
ora-01703     키워드 synonym이 없습니다.
ora-01704     스트링이 너무 깁니다.
ora-01705     상관 열에는 외부 결합을 지정할 수 없습니다.
ora-01706     사용자 함수의 결과가 너무 큽니다.
ora-01707     키워드 list가 없습니다.
ora-01708     access 또는 session을 지정해 주십시오
ora-01709     프로그램이 존재하지 않습니다.
ora-01710     키워드 of가 없습니다.
ora-01711     중복된 권한이 리스트되어 있습니다.
ora-01712     자신이 소유하지 않은 권한을 허가할 수 없습니다.
ora-01713     그 권한에 대해서는 grant option 이 존재하지 않습니다.
ora-01714     사용자 함수의 실행중 오류가 발생했습니다.
ora-01715     클러스터 색인에는 unique를 사용할 수 없습니다.
ora-01716     클러스터 색인에는 nosort를 사용할 수 없습니다.
ora-01717     secta : 액세스 모드 토큰이 부적합합니다.
ora-01718     by access | session절은 noaudit에 대해서는 허용되지 않습니다.
ora-01719     외부 결합 운영 (+)는 or 또는 in의 연산수를 허용하지 않습니다.
ora-01720     %s에 대한 허가(grant) 옵션은 존재하지 않습니다.
ora-01721     트랜잭션에서 userenv(commitscn)을 2회 이상 불렀습니다.
ora-01722     수치가 부적합합니다.
ora-01723     길이가 0인 열은 지정할 수 없습니다.
ora-01724     부동 소숫점 수치의 정도를 벗어났습니다 (1 to 126)
ora-01725     userenv(commitscn)는 여기에서 허용되지 않습니다.
ora-01726     테이블의 지정이 부적합합니다.
ora-01727     수치의 정도 범위(38 자리 이내)를 초과했습니다.
ora-01728     수치의 스케일 범위(-84 에서 127)를 초과했습니다.
ora-01729     데이타베이스 링크명을 지정해 주십시오
ora-01730     지정한 열명의 수가 부적합합니다.
ora-01731     뷰 정의가 부적합(순환)합니다.
ora-01732     뷰에 대한 데이타 조작이 부적합합니다.
ora-01733     가상 열은 사용할 수 없습니다.
ora-01734     잘못된 파라미터 - extent min 값이 extent max 보다 큽니다.
ora-01735     부적합한 alter table 옵션입니다.
ora-01736     [not] successful 을 지정해 주십시오.
ora-01737     공유, 배타 모드에서만 테이블을 잠금할 수 있습니다.
ora-01738     키워드 in 을 지정해 주십시오
ora-01739     키워드 mode 를 지정해 주십시오
ora-01740     이중 인용부를 지정해 주십시오
ora-01741     길이가 0인 식별자는 부적합합니다.
ora-01742     주석이 정확하게 종료되지 않았습니다.
ora-01743     내부적 불일치 : 사용자 함수 색인이 부적합합니다.
ora-01744     into구의 지정이 부적합합니다.
ora-01745     호스트/바인드 변수명이 부적합합니다.
ora-01746     인디케이터 변수는 사용할 수 없습니다.
ora-01747     열명을 올바르게 지정해 주십시오.
ora-01748     열명 그 자체만 사용할 수 있습니다.
ora-01749     자신의 권한으로는 grant/revoke 할 수 없습니다.
ora-01750     update/reference 는 열에 의해서가 아닌 테이블 전체로부터 revoke 될 수 있습니다.
ora-01751     부적당한 덤프 취소 옵션입니다.
ora-01752     뷰으로 부터 정확하게 하나의 키-보전된 테이블 없이 삭제할 수 없습니다.
ora-01753     열 정의가 클러스터 열의 정의와 일치하지 않습니다.
ora-01754     long 유형의 열은 테이블에 1 개만 포함될 수 있습니다.
ora-01755     영역 수나 블록 수를 지정해야만 합니다.
ora-01756     단일 인용부를 지정해 주십시오
ora-01757     개체 수를 지정해야 합니다.
ora-01758     not null 열을 추가하기 위해서는 테이블이 비어 있어야 합니다.
ora-01759     사용자 함수가 올바르게 정의되지 않았습니다.
ora-01760     함수의 인수가 부적합합니다.
ora-01761     결합문는 유일 테이블에 dml 작업으로 맵 할 수 없습니다.
ora-01762     vopdrv: 뷰의 질의 블록이 from 구에 없습니다.
ora-01763     갱신 또는 삭제가 외부 결합 테이블을 포함하고 있습니다.
ora-01764     결합의 새로운 갱신 값은 유일한것을 보증할 수 없습니다.
ora-01765     테이블의 소유자명을 지정할 수 없습니다.
ora-01766     데이타 사전 개체명을 사용할 수 없습니다.
ora-01767     update ... set 식은 부속 질의이어야 합니다.
ora-01768     수치 열이 너무 깁니다.
ora-01769     cluster 옵션 지정이 중복되었습니다.
ora-01770     cluster 옵션은 사용할 수 없습니다.
ora-01771     클러스터 테이블에 대한 옵션이 부적합합니다.
ora-01772     level에 대한 값을 지정해야 합니다.
ora-01773     지정한 create table 문에는 열 데이타 유형을 지정할 수 없습니다.
ora-01774     한번 이상 덤프 취소 옵션이 지정되었습니다.
ora-01775     동의어가 순환 고리 유형으로 정의되어 있습니다.
ora-01776     결합 뷰에 의하여 하나 이상의 기본 테이블을 수정할 수 없습니다.
ora-01777     with grant 옵션은 사용할 수 없습니다.
ora-01778     부속 질의의 내포 레벨의 제한을 초과했습니다.
ora-01779     키-보존된것이 아닌 테이블로 맵한 열을 수정할 수 없습니다.
ora-01780     스트링 상수가 필요합니다.
ora-01781     unrecoverable은 as select와 함께 지정해야 합니다.
ora-01782     클러스터 또는 클러스터 테이블에 대해서는 unrecoverable을 지정할 수 없습니다.
ora-01783     recoverable 또는 unrecoverable 중 하나만을 지정할 수 있습니다.
ora-01784     데이타베이스 미디어 복구가 사용불가이면 recoverable을 지정할 수 없습니다.
ora-01785     order by 항목은 select 리스트 식의 수라야 합니다.
ora-01786     for update 구는 사용할 수 없습니다.
ora-01787     질의 블록당 1개의 구만 허용됩니다.
ora-01788     connect by 구를 지정해 주십시오.
ora-01789     질의의 결과 열의 수가 틀립니다.
ora-01790     대응하는 식과 같은 데이타 유형이어야 합니다.
ora-01791     select 식이 부적합합니다.
ora-01792     테이블, 뷰에 지정 가능한 열의 최대수는 254 입니다.
ora-01793     지정 가능한 색인 열의 최대수는 16 입니다.
ora-01794     지정 가능한 클러스터 열의 최대수는 16 입니다.
ora-01795     리스트에 지정 가능한 식의 최대수는 254 입니다.
ora-01796     연산자의 지정이 부적합합니다.
ora-01797     연산자의 뒤에 any 또는 all을 지정해 주십시오.
ora-01798     exception 키워드가 누락되었습니다.
ora-01799     열은 부속 질의에 외부결합될 수 없습니다.
ora-01800     날짜 형식 내의 리터럴이 너무 길어서 처리할 수 없습니다.
ora-01801     날짜 형식이 내부 버퍼에 비해 너무 깁니다.
ora-01802     율리우스일의 지정이 범위를 초과했습니다.
ora-01803     날짜/시각의 획득 실패
ora-01810     형식 코드가 2 번 나타났습니다.
ora-01811     율리우스일에서 년간 통산일의 사용은 금지되어 있습니다.
ora-01812     년은 1 번만 지정할 수 있습니다.
ora-01813     시간은 1 번만 지정할 수 있습니다.
ora-01814     am/pm 과 a.m./p.m.은 혼재할 수 없습니다.
ora-01815     bc/ad 와 b.c./a.d.는 혼재할 수 없습니다.
ora-01816     월은 1 번만 지정할 수 있습니다.
ora-01817     요일은 1 번만 지정할 수 있습니다.
ora-01818     hh24와 am/pm은 혼재할 수 없습니다.
ora-01819     부호가 붙은 년과 bc/ad는 혼재할 수 없습니다.
ora-01820     날짜 지정에 포함된 형식 코드가 부적합합니다.
ora-01821     날짜 형식이 부적합합니다.
ora-01830     날짜 형식의 지정에 불필요한 데이타가 포함되어 있습니다.
ora-01831     년과 율리우스일은 혼재할 수 없습니다.
ora-01832     년의 일과 율리우스일은 혼재할 수 없습니다.
ora-01833     월과 율리우스일은 혼재할 수 없습니다.
ora-01834     월의 일과 율리우스일은 혼재할 수 없습니다.
ora-01835     요일과 율리우스일은 혼재할 수 없습니다.
ora-01836     시와 일의 초는 혼재할 수 없습니다.
ora-01837     시의 분과 일의 초는 혼재할 수 없습니다.
ora-01838     분의 초와 일의 초는 혼재할 수 없습니다.
ora-01839     지정된 월에 대한 날짜가 부적합합니다.
ora-01840     입력된 값의 길이가 날짜 형식에 비해 부족합니다.
ora-01841     년은 -4713 과 +4713 사이의 값으로 지정해 주십시오.
ora-01842     분기는 1 부터 4 사이의 값을 지정해 주십시오.
ora-01843     지정한 월이 부적합합니다.
ora-01844     주를 올바르게 지정해 주십시오 ( 1 에서 52 사이 )
ora-01845     주를 올바르게 지정해 주십시오 ( 1 에서 5 사이 )
ora-01846     지정한 요일이 부적합합니다.
ora-01847     날짜를 올바르게 지정해 주십시오 ( 1 에서 말일까지 )
ora-01848     날짜를 올바르게 지정해 주십시오 ( 1 에서 365 사이 )
ora-01849     시간을 올바르게 지정해 주십시오 ( 1 에서 12 사이 )
ora-01850     시간을 올바르게 지정해 주십시오 ( 0 에서 23 사이 )
ora-01851     분을 올바르게 지정해 주십시오 ( 0 에서 59 사이 )
ora-01852     초를 올바르게 지정해 주십시오 ( 0 에서 59 사이 )
ora-01853     초를 올바르게 지정해 주십시오 ( 0 에서 86399 사이 )
ora-01854     율리우스 날짜는 1에서 5373484 사이여야 합니다.
ora-01855     am/a.m. 또는 pm/p.m.이 필요합니다.
ora-01856     bc/b.c. 또는 ad/a.d.이 필요합니다.
ora-01857     시간대가 부적합합니다.
ora-01858     수치를 지정해야할 곳에 비수치 문자가 지정되었습니다.
ora-01859     문자를 지정해야할 곳에 비문자가 지정되었습니다.
ora-01860     년의 주는 1 에서 53 사이이어야 합니다.
ora-01861     스트링이 형식 스트링에 맞지 않습니다.
ora-01862     이 형식의 항목에 대한 잘못된 자리수
ora-01898     precision 지정자가 너무 많습니다.
ora-01899     잘못된 precision 지정자입니다.
ora-01900     키워드 logfile을 지정해 주십시오
ora-01901     키워드 rollback을 지정해 주십시오
ora-01902     키워드 segment를 지정해 주십시오
ora-01903     키워드 events를 지정해 주십시오
ora-01904     키워드 datafile을 지정해 주십시오
ora-01905     키워드 storage를 지정해 주십시오
ora-01906     키워드 backup을 지정해 주십시오
ora-01907     키워드 tablespace를 지정해 주십시오
ora-01908     키워드 exists를 지정해 주십시오
ora-01909     키워드 reuse를 지정해 주십시오
ora-01910     키워드 tables을 지정해 주십시오
ora-01911     키워드 contents를 지정해 주십시오
ora-01912     키워드 row를 지정해 주십시오
ora-01913     키워드 exclusive를 지정해 주십시오
ora-01914     시퀀스 번호에 대한 감사 옵션이 부적합합니다.
ora-01915     뷰에 대한 감사 옵션이 부적합합니다.
ora-01916     키워드 online, offline, resize, autoextend 또는 end를 지정하십시오
ora-01917     사용자 또는 롤 %s가 존재하지 않습니다.
ora-01918     사용자 %s가 존재하지 않습니다.
ora-01919     롤 %s가 존재하지 않습니다.
ora-01920     사용자명 %s가 다른 사용자나 롤명과 상충됩니다.
ora-01921     롤명 %s가 다른 사용자나 롤명과 상충됩니다.
ora-01922     %s를 삭제하려면 cascade를 지정하여야 합니다.
ora-01923     개체가 다른 사용자에 의해서 잠금 되어 cascade가 비정상 종료되었습니다.
ora-01924     롤 %s가 허가되지 않았거나 존재하지 않습니다.
ora-01925     가용 롤의 최대치 %s를 초과했습니다.
ora-01926     with grant option으로 롤을 grant할 수 없습니다.
ora-01927     허가하지 않은 권한을 revoke할 수 없습니다.
ora-01928     모든 권한에 대하여 grant 옵션이 허가되지는 않았습니다.
ora-01929     grant할 권한이 없습니다.
ora-01931     %s를 롤에게 허가할 수 없습니다.
ora-01932     롤 %s에 대한 admin 옵션이 허가되지 않았습니다.
ora-01933     롤에 대한 권한으로 저장 개체를 생성할 수 없습니다.
ora-01934     순환되는 롤 권한 부여가 감지되었습니다.
ora-01935     누락된 사용자 혹은 롤명
ora-01936     사용자나 롤을 생성시 소유자를 지정할 수 없습니다.
ora-01937     부적절한 롤명
ora-01938     create user에 대한 identified by가 지정되어야 합니다.
ora-01939     admin option만이 지정될 수 있습니다.
ora-01940     현재 연결되어 있는 사용자를 삭제할 수 없습니다.
ora-01941     키워드 sequence가 요구됩니다.
ora-01942     identified by 와 externally는 모두 지정될 수 없습니다.
ora-01943     identified by가 이미 지정되었습니다.
ora-01944     identified externally가 이미 지정되었습니다.
ora-01945     default role[s]가 이미 지정되었습니다.
ora-01946     default tablespace가 이미 지정되었습니다.
ora-01947     temporary tablespace가 이미 지정되었습니다.
ora-01949     role 키워드가 요구합니다.
ora-01950     테이블 영역 %s에 대한 권한이 없읍
ora-01951     role %s가 %s에 허가되지 않았습니다.
ora-01952     시스템 권한이 %s에 허가되지 않았습니다.
ora-01953     명령어가 더 이상 유효하지 않음,alter user를 보내십시오
ora-01954     create user에 default role절이 유효하지 않습니다.
ora-01955     default role %s가 사용자에게 허가되지 않았습니다.
ora-01956     os_roles이 사용될시 부적절한 명령어
ora-01957     키워드 min 혹은 max 를 지정해 주십시오
ora-01958     layer 옵션을 위한 정수가 필요합니다.
ora-01959     opcode 옵션을 위한 정수가 필요합니다.
ora-01960     부적절한 덤프 로그 화일 옵션입니다.
ora-01961     부적절한 덤프 옵션입니다.
ora-01962     화일 번호 혹은 시퀀스 번호를 지정해야 합니다.
ora-01963     블록 번호를 지정해야 합니다.
ora-01964     time 옵션을 위한 시간을 지정해야 합니다.
ora-01965     period 를 지정해야 합니다.
ora-01967     create controlfile 의 부적절한 옵션입니다.
ora-01968     resetlogs 혹은 noresetlogs 를 한번만 지정하십시오
ora-01969     resetlogs 혹은 noresetlogs 를 지정해야 합니다.
ora-01970     create controlfile에 대한 데이타베이스 명을 지정해야 합니다.
ora-01971     부적절한 alter tracing 옵션
ora-01972     alter tracing enable 혹은 disable에 대한 스트링을 지정해야 합니다.
ora-01973     변경 번호 누락
ora-01974     부적절한 아카이브옵션
ora-01975     변환 번호 %s에 부적절한 문자
ora-01976     변경 번호 누락
ora-01977     쓰레드 번호 누락
ora-01978     시퀀스 번호 누락
ora-01979     롤 %s에 대한 암호가 틀리거나 누락되었습니다.
ora-01980     os role 초기화시 오류
ora-01981     현 권한취소를 수행하려면 cascade constraints가 지정되어야 합니다.
ora-01982     테이블에 대한 부적절한 감사 옵션
ora-01983     default에 대한 부적절한 감사 옵션
ora-01984     프로시저/패캐지/함수에 대한 부적절한 감사 옵션
ora-01985     license_max_users 파라미터가 초과되어 사용자를 생성할 수 없습니다.
ora-01986     optimizer_goal에 대한 옵션 부적합
ora-01987     클라이언트 os 사용자명이 너무 깁니다.
ora-01988     원격 os 로그온이 허용되지 않습니다.
ora-01989     롤 %s는 운영 시스템에 의해 권한되지 않았습니다.
ora-01990     암호 %s 화일을 여는데 오류가 발생했습니다.
ora-01991     %s 암호 화일이 부적합합니다.
ora-01992     %s 암호 화일을 닫는데 오류가 발생했습니다.
ora-01993     %s 암호 화일을 쓰는 중에 오류가 발생했습니다.
ora-01994     grant 실패: 공용 암호 화일에다 사용자를 추가할 수 없습니다.
ora-01995     %s 암호 화일을 읽는 중에 오류가 발생했습니다.
ora-01996     grant 실패: %s 암호 화일이 꽉 찼습니다.
ora-01997     grant 실패: %s 사용자는 여기에 없습니다.
ora-01998     revoke 실패: sys 사용자는 항상 sysoper 와 sysdba를 가지고 있습니다.
ora-01999     암호 화일 모드는 %s 에서 %s로 바꾸었습니다.
ora-02000     누락된 %s 키워드
ora-02001     사용자 sys는 빈리스트 그룹와 함께 색인을 생성하는것을 허락하지 않습니다.
ora-02002     감사 추적 테이블에 기록 중 오류가 발생했습니다.
ora-02003     userenv 파라미터가 부적합합니다.
ora-02004     보안 위반
ora-02005     길이(-1)가 부적합합니다.
ora-02006     팩형 10진 형식 스트링이 부적합합니다.
ora-02007     allocate 또는 deallocate 옵션을 rebuild와 같이 사용할 수 없습니다.
ora-02008     숫자가 아닌 열에 대하여 0 이외의 스케일이 지정되었습니다.
ora-02009     화일에 지정된 크기는 0이 아니어야 합니다.
ora-02010     호스트 연결 스트링을 지정해 주십시오
ora-02011     데이타베이스 링크명이 중복되었습니다.
ora-02012     키워드 using 을 지정해 주십시오
ora-02013     키워드 connect 를 지정해 주십시오
ora-02014     for update 구를 사용해서 선택할 수 없습니다.
ora-02015     원격 테이블에 대하여 for update 구는 사용할 수 없습니다.
ora-02016     원격 데이타베이스에서는 start with 로 부속 질의를 사용할 수 없습니다.
ora-02017     정수 값을 지정해 주십시오
ora-02018     같은 이름의 데이타베이스 링크가 개방, 연결되어 있습니다.
ora-02019     원격 데이타베이스를 찾을 수 없을때 기술적으로 연결하십시오
ora-02020     너무 많은 데이타베이스 링크들이 사용되고 있습니다.
ora-02021     원격 데이타베이스에 ddl 조작들이 허용되지 않습니다.
ora-02022     원격 문장이 원격 개체를 갖는 최적화 되지않을 뷰를 사용합니다.
ora-02023     원격 데이타베이스는 start with, connect by 술어를 평가할 수 없습니다.
ora-02024     데이타 링크를 찾을 수 없습니다.
ora-02025     sql 문장에 있는 모든 테이블은 원격 데이타베이스에 있어야만 합니다.
ora-02026     키워드 link 를 지정해 주십시오
ora-02027     long 열은 복수 행의 갱신이 불가능합니다.
ora-02028     정확한 행의 번호를 인출 하는것이 지원되지 않습니다.
ora-02029     키워드 file 을 지정해 주십시오
ora-02030     고정 테이블/고정 뷰에서는 선택만 가능합니다.
ora-02031     고정 테이블에 대하여 rowid 를 지정할 수 없습니다.
ora-02032     클러스터 색인의 작성 이전에 클러스터 테이블을 사용할 수 없습니다.
ora-02033     이미 클러스터 색인이 존재하고 있습니다.
ora-02034     스피드 바인드가 허용되지 않습니다.
ora-02035     부당한 작업묶음의 조합입니다.
ora-02036     자동커서 개방시 묘사할 변수가 너무 많습니다.
ora-02037     초기화되지 않은 스피드 바인드 영역
ora-02038     배열 유형에 정의가 허용되지 않습니다
ora-02039     배열 유형에 값으로 바인드는 허용되지 않습니다
ora-02040     원격 데이타베이스는 %s는 두단계 커밋을 지원하지 않습니다.
ora-02041     클라이언트 데이타베이스는 트랜잭션을 시작하지 않습니다.
ora-02042     너무 많은 분산 트랜잭션들
ora-02043     %s를 실행하기 전에 현재 트랜잭션을 끝내야 합니다.
ora-02044     트랜잭션 관리자 로그인이 거부되었음: 트랜잭션이 진행중입니다.
ora-02045     글로벌 트랜잭션에 관여한 로컬 세션이 너무 많습니다.
ora-02046     분산 트랜잭션이 이미 시작되었습니다.
ora-02047     진행 중에 분산 트랜잭션을 결합할 수 없습니다.
ora-02048     로그잉하지 않고 분산 트랜잭션을 시작하려 했습니다.
ora-02049     시간초과: 분산 트랜잭션이 잠금으로 대기중 입니다.
ora-02050     트랜잭션 %s가 롤백되고, 다른 원격 db는 불명료한 상태입니다.
ora-02051     동일 트랜잭션내에 다른 세션이 실패했습다.
ora-02052     원격 트랜잭션이 %s에서 실패했습니다.
ora-02053     트랜잭션 %s가 커밋되고, 다른 원격 db는 불명료한 상태입니다.
ora-02054     트랜잭션 %s이 불명료한 상태입니다.
ora-02055     분산 수정 작업이 실패했음; 롤백이 요구됩니다.
ora-02056     2pc: %s: 잘못된 두 단계 명령어 번호 %s(%s로 부터의)
ora-02057     2pc: %s: 잘못된 두 단계 복구상태 번호 %s(%s로 부터의)
ora-02058     id %s를 가지는 준비된 트랜잭션이 없습니다.
ora-02059     커밋 코맨트의 ora-2pc-crash-test-%s
ora-02060     select for update문에 분산 테이블에 대한 결합이 지정되었습니다.
ora-02061     select for update에 분산 테이블 목록이 지정되었습니다.
ora-02062     분산 복구가 dbid %s를 받았습니다(%s가 기대되었으나)
ora-02063     %s%s가 선행됨 (%s%s로 부터)
ora-02064     분산 작업이 지원되지 않습니다.
ora-02065     alter system에 대한 부당한 옵션
ora-02066     누락 혹은 부당한 mts_dispatchers 텍스트
ora-02067     트랜잭션 혹은 세이브포인트 롤백이 요구됩니다.
ora-02068     %s%s로 부터의 다음의 치명적인 오류가 있습니다.
ora-02069     global_names 파라미터는 이 작업에 true라고 설정해야만 합니다.
ora-02070     데이타베이스 %s%s는 이문맥에서 %s를 지원하지 않습니다.
ora-02071     원격 데이타베이스 %s에 대한 능력을 초기화시 오류
ora-02072     분산 데이타베이스의 네트워크 프로토콜이서로 맞지 않습니다.
ora-02073     원격 수정에서는 시퀀스번호가 지원되지 않습니다.
ora-02074     분산 트랜잭션에 %s을 할 수 없습니다.
ora-02075     사용되지 않는 오류입니다.
ora-02076     수정된 테이블이나 long 열의 시퀀스가 동일한 노드에 있어야 합니다.
ora-02077     select문에서 long 열의 값을 가지고 올때는 동일한 노드에 있어야 합니다.
ora-02078     alter system fixed_date에 대한 지정이 잘못됐습니다.
ora-02079     새로운 세션이 분산 트랜잭션의 커밋에 동참할 수 있습니다.
ora-02080     데이타베이스 링크가 사용중입니다.
ora-02081     데이타베이스 링크가 열려있지 않았습니다.
ora-02082     루프백(loopback) 데이타베이스 링크는 연결 수식어를 가져야합니다.
ora-02083     데이타베이스명에 부적절한 문자 %s가 있습니다.
ora-02084     데이타베이스명에 요소가 누락되었습니다.
ora-02085     데이타베이스 링크 %s가 %s에 연결됩니다.
ora-02086     데이타베이스 (링크)명이 너무깁니다.
ora-02087     동일 트랜잭션내의 다른 프로세스에 의해 개체가 잠금 되었습니다.
ora-02088     분산 데이타베이스 옵션이 설치되지 않았습니다.
ora-02089     종속 세션에서는 commit이 허용되지 않습니다.
ora-02090     네트워크 오류: callback+passthru
ora-02091     트랜잭션이 롤백되었습니다.
ora-02092     분산 트랜잭션에 대한 트랜잭션 테이블 슬롯이 부족합니다.
ora-02093     transactions_per_rollback_segment(%s)가 가능한 최대치(%s) 보다 많습니다.
ora-02094     중복 옵션이 설치되지 않았습니다.
ora-02095     지정된 초기화 파라미터를 수정할 수 없습니다.
ora-02096     지정된 초기화 파라미터는 이 옵션으로 수정가능하지 않습니다.
ora-02098     색인-테이블 참조 (:i)를 파싱하는데 오류
ora-02099     내부 목적으로 사용됨, 출력되지 않아야 합니다.
ora-02100     pcc: 메모리 부족 (할당할 수 없습니다.
ora-02101     pcc: 일치하지 않는 커서 캐쉬(uce/cuc 불일치)
ora-02102     pcc: 일치하지 않는 커서 캐쉬(이 uce에 대한 cuc 엔트리가 없습니다.
ora-02103     pcc: 일치하지 않는 커서 캐쉬(cuc 참조가 범위를 벗어남)
ora-02104     pcc: 일치하지 않는 호스트 캐쉬(사용가능한 cuc가 없습니다)
ora-02105     pcc: 일치하지 않는 커서 캐쉬(캐쉬내에 cuc 엔트리가 없습니다)
ora-02106     pcc: 일치하지 않는 커서 캐쉬(oracursor nr이 잘못됐습니다)
ora-02107     pcc: 프로그램이 수행시 라이브러리에 대해 너무 오래됨: 다시 pcc하십시오
ora-02108     pcc: 수행시 라이브러리에 유효하지않은 디스크립터가 넘겨졌습니다.
ora-02109     pcc: 일치하지 않는 호스트 캐쉬(sit 참조가 범위를 벗어남)
ora-02110     pcc: 일치하지 않는 호스트 캐쉬(유효하지 않은 sqi 유형)
ora-02111     pcc: 힙 일관성 오류
ora-02112     pcc: select..into가 너무 많은 행을 리턴합니다.
ora-02140     테이블스페이스 이름이 부적합합니다.
ora-02141     offline 옵션이 부적합합니다.
ora-02142     적절한 alter tablespace 옵션을 지정해 주십시오
ora-02143     storage 옵션이 부적합합니다.
ora-02144     적절한 alter cluster 옵션을 지정해 주십시오
ora-02145     storage 옵션을 지정해 주십시오
ora-02146     shared 옵션이 복수 회 지정되었습니다.
ora-02147     shared 와 exclusive 는 혼용할 수 없습니다.
ora-02148     exclusive 옵션이 복수 회 지정되었습니다.
ora-02155     default 테이블 영역 식별자가 부적합합니다.
ora-02156     temporary의 테이블 영역 식별자가 부적합합니다.
ora-02157     alter user 옵션을 지정해 주십시오
ora-02158     create index 옵션이 부적합합니다.
ora-02159     설치된 dlm은 릴리즈가능한 잠금 모드를 지원하지 않습니다.
ora-02161     maxlogfiles에 대한 값이 부적합합니다.
ora-02162     maxdatafiles에 대한 값이 부적합합니다.
ora-02163     freelist groups에 대한 값이 부적합합니다.
ora-02164     datafile 구가 2개 이상 지정되었습니다.
ora-02165     create database 옵션의 지정이 부적합합니다.
ora-02166     archivelog 와 noarchivelog 가 함께 지정되었습니다.
ora-02167     logfile 구가 2 회 이상 지정되었습니다.
ora-02168     freelists에 대한 부당한 값
ora-02169     freelists 저장영역 옵션은 허용되지 않습니다.
ora-02170     freelist groups 저장영역 옵션은 허용되지 않습니다.
ora-02171     maxloghistory에 대한 부당한 값
ora-02172     사용불가 쓰레드에 대한 public 키워드는 적합하지 않습니다.
ora-02173     drop tablespace 옵션이 부적합합니다.
ora-02174     요구되는 쓰레드 번호의 누락
ora-02175     롤백 세그먼트 명이 부적합합니다.
ora-02176     create rollback segment 옵션이 부적합합니다.
ora-02177     요구되는 그룹 번호의 누락
ora-02178     올바른 구문 : set transaction read { only | write }
ora-02179     적당한 옵션: isolation level { serializable | read committed }
ora-02180     create tablespace 옵션이 부적합합니다.
ora-02181     rollback work 옵션이 부적합합니다.
ora-02182     세이브포인트명을 지정해 주십시오
ora-02183     적당한 옵션: isolation_level { serializable | read committed }
ora-02184     revoke 에서는 자원의 할당량을 지정할 수 없습니다.
ora-02185     commit 뒤에 work 이외의 토큰이 지정되었습니다.
ora-02186     테이블 영역의 자원 권한은 다른 권한과 동시에 지정할 수 없습니다.
ora-02187     할당량의 지정이 부적합합니다.
ora-02189     on <tablespace> 가 필요합니다.
ora-02190     키워드 tables를 지정해 주십시오
ora-02191     올바른 구문: set transaction use rollback segment <rbs>
ora-02192     pctincrease는 롤백 세그먼트 영역절에서는 허용되지 않습니다.
ora-02194     이벤트 지정 구문 오류 %s (중요치 않은 오류 %s), %s 부근에
ora-02195     %s 개체를 %s 테이블스페이스에서 만들도록 시도합니다.
ora-02196     permanent/temporary 옵션이 이미 지정되었습니다.
ora-02197     화일 리스트가 이미 지정되어 있습니다.
ora-02198     online/offline 옵션이 이미 지정되어 있습니다.
ora-02199     datafile 구를 지정해 주십시오
ora-02200     with grant option 은 public 에 대하여 사용할 수 없습니다.
ora-02201     시퀀스를 사용할 수 없습니다.
ora-02202     클러스터에서는 더이상의 테이블을 작성할 수 없습니다.
ora-02203     initial 영역 옵션은 허가되지 않습니다.
ora-02204     alter, index, references 그리고 execute는 뷰에서 사용할 수 없습니다.
ora-02205     select 와 alter 권한만이 시퀀스에 대하여 사용할 수 있습니다.
ora-02206     initrans 옵션 지정이 중복되었습니다.
ora-02207     initrans 옵션의 값이 부적합합니다.
ora-02208     maxtrans 옵션 지정이 중복되었습니다.
ora-02209     maxtrans 옵션의 값이 부적합합니다.
ora-02210     alter table 옵션을 지정해 주십시오
ora-02211     pctfree 또는 pctused 에 대한 값이 부적합합니다.
ora-02212     pctfree 옵션 지정이 중복되었습니다.
ora-02213     pctused 옵션 지정이 중복되었습니다.
ora-02214     backup 옵션 지정이 중복되었습니다.
ora-02215     tablespace 구가 중복되었습니다.
ora-02216     테이블 영역명을 지정해 주십시오
ora-02217     기억 영역(storage) 옵션 지정이 중복되었습니다.
ora-02218     initial 옵션의 값이 부적합합니다.
ora-02219     next 옵션의 값이 부적합합니다.
ora-02220     minextents 옵션의 값이 부적합합니다.
ora-02221     maxextents 옵션의 값이 부적합합니다.
ora-02222     pctincrease 옵션의 값이 부적합합니다.
ora-02223     부당한 optimal 저장 영역 옵션값
ora-02224     execute 권한은 테이블에 대해서는 허용되지 않습니다.
ora-02225     프로시저에 대해서는 execute 권한만이 유효합니다.
ora-02226     부당한 maxextents값 (허용 최대치: %s)
ora-02227     클러스터명이 부적합합니다.
ora-02228     size 지정이 중복되었습니다.
ora-02229     size 옵션의 값이 부적합합니다.
ora-02230     alter cluster 옵션이 부적합합니다.
ora-02231     적절한 alter database 옵션을 지정해 주십시오
ora-02232     mount 모드가 부적합합니다.
ora-02233     close 모드가 부적합합니다.
ora-02234     이 테이블에 대한 변경은 이미 로그되어 있습니다.
ora-02235     이 테이블은 다른 테이블에 이미 변경을 기록했습니다.
ora-02236     화일명이 부적합합니다.
ora-02237     화일 크기가 부적합합니다.
ora-02238     화일명 리스트의 화일 수가 다릅니다.
ora-02239     이 시퀀스를 참조하는 개체가 있습니다.
ora-02240     objno 혹은 tabno에 대한 부당한 값
ora-02241     extents (file <n> block <n> size <n>, ...)유형이어야 합니다.
ora-02242     alter index 옵션을 지정해 주십시오
ora-02243     alter index 또는 alter snapshot 옵션이 부적합합니다.
ora-02244     alter rollback segment 옵션이 부적합합니다.
ora-02245     롤백 세그먼트 명이 부적합합니다.
ora-02246     events 의 텍스트를 지정해 주십시오
ora-02247     alter session 옵션을 지정해 주십시오
ora-02248     alter session 옵션이 부적합합니다.
ora-02249     maxlogmembers에 값이 빠졌거나 부당한 값입니다.
ora-02250     적절한 제약명을 지정해 주십시오
ora-02251     부속 질의는 사용할 수 없습니다.
ora-02252     검사 제약 조건이 올바르지 않습니다.
ora-02253     제약을 지정할 수 없습니다.
ora-02254     default <expression>은 사용할 수 없습니다.
ora-02255     못쓰게된 7.1.5
ora-02256     참조하고 있는 열의 숫자, 유형 그리고 크기는 참조 열의 수와 일치해야 합니다.
ora-02257     열의 최대수를 초과했습니다.
ora-02258     null, not null 지정이 중복 또는 혼재되었습니다.
ora-02259     unique/primary key의 지정이 중복되었습니다.
ora-02260     테이블에는 기본 키를 1 개만 포함시킬 수 있습니다.
ora-02261     유일 키 또는 기본 키가 이미 존재하고 있습니다.
ora-02262     ora-%05d 발생. 열의 디폴트 값 식의 유형 검사 오류.
ora-02263     열의 데이타 유형을 지정해 주십시오
ora-02264     기존의 제약에 사용된 이름입니다.
ora-02265     참조 열의 데이타 유형이 정의되지 않았습니다.
ora-02266     외래 키에 의해 참조되는 유일/기본 키가 테이블에 있습니다.
ora-02267     열의 데이타 유형이 참조 열의 데이타 유형와 일치하지 않습니다.
ora-02268     참조 테이블에 기본 키가 없습니다.
ora-02269     키 열은 long 데이타 유형을 취할 수 없습니다.
ora-02270     이 열목록에 대한 유일 혹은 일차 키가 일치하지 않습니다.
ora-02271     제약명이 없습니다.
ora-02272     제약 열은 long 데이타 유형을 취할 수 없습니다.
ora-02273     유일/기본 키가 외부 키에 의해 참조되었습니다.
ora-02274     중복된 참조 제약 지정입니다.
ora-02275     참조 제약이 이미 테이블에 존재합니다.
ora-02276     디폴트 유형이 열의 유형과 일치하지 않습니다.
ora-02277     시퀀스명이 부적합합니다.
ora-02278     maxvalue/nomaxvalue 지정이 중복 또는 혼재되어 있습니다.
ora-02279     minvalue/nominvalue 지정이 중복 또는 혼재되어 있습니다.
ora-02280     cycle/nocycle 지정이 중복 또는 혼재되어 있습니다.
ora-02281     cache/nocache 지정이 중복 또는 혼재되어 있습니다.
ora-02282     order/noorder 지정이 중복 또는 혼재되어 있습니다.
ora-02283     개시 시퀀스 번호는 변경할 수 없습니다.
ora-02284     increment by 지정이 중복되었습니다.
ora-02285     start with 지정이 중복되었습니다.
ora-02286     alter sequence 옵션을 지정해 주십시오
ora-02287     시퀀스 번호는 이 위치에 사용할 수 없습니다.
ora-02288     open 모드가 부적합합니다.
ora-02289     시퀀스가 존재하지 않습니다.
ora-02290     체크 제약조건(%s.%s)이 위배되었습니다.
ora-02291     무결성 제약조건(%s.%s)이 위배되었습니다- 부모 키가 없습니다.
ora-02292     무결성 제약조건(%s.%s)이 위배되었습니다- 자식 레코드가 발견되었습니다.
ora-02293     (%s.%s)를 사용가능하게 할 수 없습니다 - 잘못된 제약을 점검
ora-02294     참조 제약을 추가할 수 없음 - 부모 키가 없습니다.
ora-02295     제약에 대한 하나 이상의 사용가능/사용불가 절이 있습니다.
ora-02296     제약 (%s.%s)을 사용가능하게 할 수 없음 - 부합하는 값이 없습니다.
ora-02297     제약 (%s.%s)을 사용불가하게 할 수 없음 - 종속관계가 있습니다.
ora-02298     제약 (%s.%s)을 사용가능하게 할 수 없음 - 부모 키가 없습니다.
ora-02299     제약 (%s.%s)을 사용가능하게 할 수 없음 - 중복 키가 있습니다.
ora-02351     레코드 %s: 거부되었습니다- 테이블 %s, 열 %s에서 오류
ora-02352     직접 패스 연결은 동기종 간에만 가능합니다.
ora-02353     복수 자리의 문자 오류
ora-02354     필드 %s에 대한 초기치를 위한 변환 오류가 발생했습니다.
ora-02355     constant 필드 %s에 변환 오류가 발생했습니다.
ora-02356     데이타베이스에 더 이상 영역이 없음 - 로드를 계속할 수 없습니다.
ora-02357     팩형 십진수 변환 오류
ora-02358     존 십진수 변환 오류
ora-02359     데이타 화일의 필드가 지정된 길이를 초과합니다.
ora-02360     논리 레코드의 끝 이전에 열을 찾을 수 없습니다 (trailing nullcols사용)
ora-02361     최초 인클로징 문자를 찾을 수 없습니다.
ora-02362     논리 레코드의 끝 - 두번째 인클로징 문자가 없습니다.
ora-02363     terminated 와 enclosed 가 지정된 필드에 종료 문자가 없습니다.
ora-02364     %s 레코드가 디스카드됨 - 모든 when 구의 조건을 만족하지 않습니다.
ora-02365     %s 색인이 로드되지 못함
ora-02366     %s 테이블의 다음 색인이 처리되었습니다.
ora-02367     %s 색인이 로드되었습니다.
ora-02368     %s 레코드가 디스카드됨 - 모든 열이 널입니다.
ora-02369     경고 : 가변길이 필드가 잘렸습니다.
ora-02370     %s 레코드 - %s 테이블의 %s 열에 경고 발생
ora-02371     직접 패스를 위해서는 로더가 %s.%s.%s.%s.%s 버전 이상 이어야 합니다.
ora-02372     상대시작 위치 > 절대필드 마감 위치
ora-02373     테이블 %s에 대한 입력 문의 구문분석시 오류
ora-02374     읽기 버퍼 큐에 대한 더 이상의 슬롯이 없습니다.
ora-02376     부당한 혹은 중복된 자원
ora-02377     자원의 부당한 한계치
ora-02378     중복된 자원명 %s
ora-02379     프로화일 %s이 이미 존재합니다.
ora-02380     프로화일 %s이 존재하지 않습니다.
ora-02381     public_default 프로화일을 삭제할 수 없습니다.
ora-02382     프로화일 %s에 사용자가 할당되어 있어, cascade 없이 삭제할 수 없습니다.
ora-02383     부당한 비용요소
ora-02390     composite_limit을 초과했음, 로그오프될 것입니다.
ora-02391     동시 sessions_per_user 한계치를 초과했습니다.
ora-02392     cpu 사용에 대한 세션 한계치를 초과했음. 로그오프될 것입니다.
ora-02393     cpu 사용에 대한 호출 한계치를 초과했습니다.
ora-02394     io 사용에 대한 세션 한계치를 초과했음. 로그오프될 것입니다.
ora-02395     io 사용에 대한 호출 한계치를 초과했습니다.
ora-02396     최대 유휴(idle) 시간을 초과했음. 다시 연결하십시오
ora-02397     private_sga 한계치 초과, 로그오프될 것입니다.
ora-02398     프로시저 영역 사용을 초과했습니다.
ora-02399     최대 연결시간을 초과했음. 로그오프될 것입니다.
ora-02401     다른 사용자의 뷰를 explain 할 수 없습니다.
ora-02402     plan_table이 없습니다.
ora-02403     플랜 테이블이 정확한 유형이 아닙니다.
ora-02404     지정된 플랜 테이블이 없습니다.
ora-02420     스키마에 대한 권한부여 절의 누락
ora-02421     누락 혹은 부당한 스키마 권한 식별자
ora-02422     누락 혹은 부당한 스키마 요소
ora-02423     스키마명이 스키마 권한 식별자와 맞지 않습니다.
ora-02424     잠재적인 순환 뷰 참조 혹은 불명의 참조 테이블
ora-02425     테이블의 생성실패
ora-02426     권한 부여 실패
ora-02427     뷰의 생성실패
ora-02428     외래키 참조를 추가할 수 없습니다.
ora-02429     유일/일차 키 적용을 위한 색인을 삭제할 수 없습니다.
ora-02430     제약(%s)을 가용화할 수 없음 - 그런 제약이 없습니다.
ora-02431     제약(%s)을 사용불가하게 할 수 없음 - 그런 제약이 없습니다.
ora-02432     일차키를 사용가능하게 할 수 없음 - 테이블에 일차키가 정의되지 않았습니다.
ora-02433     일차키를 사용불가하게 수 없음 - 테이블에 일차키가 정의되지 않았습니다.
ora-02434     유일성(%s)을 사용가능하게 할 수 없음 - 테이블에 일차키가 정의되지 않았습니다.
ora-02435     유일성(%s)을 사용불가하게 수 없음 - 테이블에 일차키가 정의되지 않았습니다.
ora-02436     check 제약에 날짜 또는 시스템 변수가 잘못 지정되었습니다.
ora-02437     (%s.%s)를 사용가능하게 할 수 없습니다 - 잘못된 기본 키입니다.
ora-02438     열 검사제약은 다른 열을 참조할 수 없습니다.
ora-02439     유일/일차 키 제약상에 유일하지 않은 색인이 있습니다.
ora-02440     참조 제약과 함께 create as select는 허용되지 않습니다.
ora-02441     존재하지 않는 일차 키를 삭제할 수 없습니다.
ora-02442     존재하지 않는 유일 키를 삭제할 수 없습니다.
ora-02443     존재하지 않는 제약 - 삭제할 수 없습니다.
ora-02444     참조 제약에서만 기본 테이블을 참조할 수 없습니다.
ora-02445     예외 테이블이 없습니다.
ora-02446     create table ... as select 실패 - 제약 위반 점검
ora-02450     부당한 해쉬 옵션 - 키워드 is 누락
ora-02451     hashkeys의 중복지정
ora-02452     부당한 hashkeys 옵션값
ora-02453     hash is의 중복 지정
ora-02454     블록(%s)당 해쉬 키의 수가 최대치 %s를 초과했습니다.
ora-02455     클러스터키 열의 수는 1 이어야 합니다.
ora-02456     열 지정 hash is는 number(*,0)이어야 합니다.
ora-02457     hash is 옵션에 정당한 열을 지정하여야 합니다.
ora-02458     hash cluster에 대하여 hashkeys가 지정되어야 합니다.
ora-02459     해쉬 키 값은 양의 정수이어야 합니다.
ora-02460     해쉬 클러스터에 대한 부적절한 색인 작업입니다.
ora-02461     index 옵션의 부적절한 사용입니다.
ora-02462     index 옵션의 중복지정
ora-02463     hash is 옵션의 중복지정
ora-02464     클러스터 정의는 hash와 index 양쪽 다 일수는 없습니다.
ora-02465     hash is 옵션의 부적절한 사용
ora-02466     hash clusters를 위해 size 옵션의 변경은 허용되지 않습니다.
ora-02467     식에 참조된 열을 클러스터 정의에서 찾을 수 없습니다.
ora-02468     식에서 상수 또는 시스템 변수가 잘못 지정되었습니다.
ora-02469     해쉬 식은 oracle 번호를 리턴하지 않습니다.
ora-02470     to_date, userenv, 또는 sysdate가 해쉬 식에서 잘못 사용되었습니다.
ora-02471     sysdate, uid, user, rownum, 또는 level이 해쉬 식에서 잘못 사용되었습니다.
ora-02472     해쉬 식에 pl/sql 함수를 사용할 수 없습니다.
ora-02473     클러스터 해쉬 식의 값을 구하는 동안 오류 발생
ora-02474     고정된 해쉬 영역이 (%s) 범위를 사용했는데 허용된 (%s) 최대값을 초과했습니다.
ora-02476     테이블에서 병렬 직접 로드에 의해 색인을 만들수 없습니다.
ora-02477     개체 %s에 병렬 직접 로드를 실행할 수 없습니다.
ora-02478     기초 세그먼트에 합병하는것은 maxextents 한계을 초과하는 것입니다.
ora-02479     병렬 로드에다 화일명을 바꾸는 중에 오류가 발생했습니다.
ora-02480     이벤트에 대한 너무 많은 이벤트 클래스가 지정되었습니다.
ora-02481     이벤트에 대한 너무 많은 id 범위가 지정되었습니다.
ora-02482     이벤트 클래스를 지정했으나 이벤트를 주지 않았습니다.
ora-02483     이벤트에 대한 부당한 id 값을 지정했습니다.
ora-02485     id 값의 하한치가 상한치보다 큽니다.
ora-02486     화일 %s에서 오류. init.ora 파라미터인 trace_dest를 확인하십시오
ora-02487     화일명 %s을 기록시 오류. init.ora 파라미터인 trace_dest를 검사하십시오
ora-02489     trace_block_size (%s)가 %s로 나누어져야 합니다.
ora-02490     resize 절에 필요한 화일 크기가 빠졌습니다.
ora-02491     autoextend 절에 필요한 on 또는 off 키워드가 빠졌습니다.
ora-02492     next 절에 필요한 화일 블록 증가 크기가 빠졌습니다.
ora-02493     next 절의 화일 증가 크기가 부적당합니다.
ora-02494     maxsize 절의 최대 화일 크기가 부적당하거나 빠졌습니다.
ora-02495     화일 %s의 크기를 조정할 수 없는데, 테이블스페이스 %s가 읽기전용이기 때문입니다.
ora-02700     osnoraenv: oracle_sid의 변환시 오류입니다.
ora-02701     osnoraenv: 오라클 이미지명의 변환시 오류입니다.
ora-02702     osnoraenv: orapop 이미지명의 변환시 오류입니다.
ora-02703     osnpopipe: 파이프 생성에 실패했습니다.
ora-02704     osndopop: 포크에 실패했습니다.
ora-02705     osnpol: 통신 채널의 폴링에 실패했습니다.
ora-02706     osnshs: 호스트명이 너무 깁니다.
ora-02707     osnacx: 문맥 영역을 할당할 수 없습니다.
ora-02708     osnrntab: 호스트로의 연결에 실패, oracle_sid가 불명입니다.
ora-02709     osnpop: 파이프 생성에 실패했습니다.
ora-02710     osnpop: 포크(fork)에 실패했습니다.
ora-02711     osnpvalid: 검증 채널로의 연결에 실패했습니다.
ora-02712     osnpop: malloc 실패
ora-02713     osnprd: 메세지 수신에 실패했습니다.
ora-02714     osnpwr: 메세지 송신에 실패했습니다.
ora-02715     osnpgetbrkmsg: 호스트로부터의 메시지가 부정확한 메시지 유형을 갖습니다.
ora-02716     osnpgetdatmsg: 호스트로부터의 메시지가 부정확한 메시지 유형을 갖습니다.
ora-02717     osnpfs: 기록된 바이트 수가 잘못되었습니다.
ora-02718     osnprs: 프로토콜 재설정 오류
ora-02719     osnfop: 포크(fork)에 실패했습니다.
ora-02720     osnfop: shmat 실패
ora-02721     osnseminit: 세마포 세트를 생성할 수 없습니다.
ora-02722     osnpui: orapop에 중지메시지를 송신할 수 없습니다.
ora-02723     osnpui: 중지메시지를 송신할 수 없습니다.
ora-02724     osnpbr: orapop에 중지메시지를 송신할 수 없습니다.
ora-02725     osnpbr: 중지메시지를 송신할 수 없습니다.
ora-02726     osnpop: 오라클 수행모듈의 액세스 오류입니다.
ora-02727     osnpop: orapop 수행모듈의 액세스 오류입니다.
ora-02728     osnfop: 오라클 수행모듈의 액세스 오류입니다.
ora-02729     osncon: 드라이버가 osntab내에 없습니다.
ora-02730     osnrnf: 사용자 로그온 디렉토리가 없습니다.
ora-02731     osnrnf: 버퍼의 malloc에 실패했습니다.
ora-02732     osnrnf: 일치하는 데이타베이스 별명을 발견할 수 없습니다.
ora-02733     osnsnf: 데이테베이스 스트링이 너무 깁니다.
ora-02734     osnftt: 공유 메모리의 사용허가를 재설정할 수 없습니다.
ora-02735     osnfpm: 공유 메모리 세그먼트를 생성할 수 없습니다.
ora-02736     osnfpm: 부적절한 공유메모리 번지의 디폴트치입니다.
ora-02737     osnpcl: orapop의 종료를 명령할 수 없습니다.
ora-02738     osnpwrtbrkmsg: 기록된 바이트 수가 잘못되었습니다.
ora-02739     osncon: 호스트 별명이 너무 깁니다.
ora-02750     osnfsmmap: 공유메모리 화일(?/dbs/ftt_<pid>.dbf)을 열 수 없습니다.
ora-02751     osnfsmmap: 공유메모리 화일을 배치할 수 없습니다.
ora-02752     osnfsmmap: 부당한 공유메모리 번지입니다.
ora-02753     osnfsmmap: 공유메모리 화일을 닫을 수 없습니다.
ora-02754     osnfsmmap: 공유메모리의 형질을 변경할 수 없습니다.
ora-02755     osnfsmcre: 공유메모리 화일(?/dbs/ftt_<pid>.dbf)을 생성할 수 없습니다.
ora-02756     osnfsmnam: 이름 변환에 실패했습니다.
ora-02757     osnfop: fork_and_bind 실패
ora-02758     내부배열의 할당에 실패했습니다.
ora-02759     요구 디스크립터가 충분하지 않습니다.
ora-02760     클라이언트의 화일 닫기 실패
ora-02761     취소될 화일 번호가 음수입니다.
ora-02762     취소될 화일 번호가 최대치보다 큽니다.
ora-02763     최소 한건의 요구도 취소할 수 없습니다.
ora-02764     부당한 패키지 모드입니다.
ora-02765     부당한 최대 서버수입니다.
ora-02766     요구 디스크립터의 부당한 최대치입니다.
ora-02767     서버당 하나 이하의 요구 디스크립터가 할당되었습니다.
ora-02768     최대 화일수가 부적절합니다.
ora-02769     sigterm에 대한 처리기 지정이 실패했습니다.
ora-02770     전체 블록수가 부적절합니다.
ora-02771     요구 타임아웃 값이 부적절합니다.
ora-02772     서버의 최대 유휴 시간이 부적절합니다.
ora-02773     클라이언트의 최대 대기시간이 부적절합니다.
ora-02774     요구 목록 래치의 타임아웃값이 부적절합니다.
ora-02775     요구 수행 신호가 부적절합니다.
ora-02776     요구 수행 신호값이 최대치를 초과합니다.
ora-02777     로그 디렉토리에 대한 stat실패
ora-02778     로그 디렉토리에 주어진 이름이 부적합합니다.
ora-02779     코아덤프 디렉토리에 대한 stat실패
ora-02780     코아덤프 디렉토리에 주어진 이름이 부적합합니다.
ora-02781     시간이 주어지는 플래그에 대한 값이 부적합합니다.
ora-02782     읽기/쓰기 기능이 모두 지정되지 않았습니다.
ora-02783     포스트/대기 기능이 모두 지정되지 않았습니다.
ora-02784     부적절한 공유 메모리 id가 지정되었습니다.
ora-02785     부적절한 공유 메모리 버퍼크기입니다.
ora-02786     공유 영역에 필요한 크기가 세그먼트 크기보다 큽니다.
ora-02787     세그먼트 목록에 대한 메모리를 할당할 수 없습니다.
ora-02788     async 프로세스 배열내에 커널 프로세스 포인터를 찾을 수 없습니다.
ora-02789     최대 화일 수에 도달했습니다.
ora-02790     화일명이 너무 깁니다.
ora-02791     비동기 i/o에 사용될 화일을 열 수 없습니다.
ora-02792     비동기 i/o에 사용될 화일을 fstat()할 수 없습니다.
ora-02793     비동기 i/o의 닫기 실패
ora-02794     클라이언트가 공유메모리에 대한 키를 얻을 수 없습니다.
ora-02795     요구 목록이 비었습니다.
ora-02796     수행된 요구가 정확한 상태에 있지 않습니다.
ora-02797     모든 요구에 응답할 수 없습니다.
ora-02798     요구 수가 부적절합니다.
ora-02799     신호 처리기를 대비할 수 없습니다.
ora-02800     요구가 시간 경과되었습니다.
ora-02801     작업이 시간 경과되었습니다.
ora-02802     모든 유휴 서버를 병렬모드에서 사용할 수 없습니다.
ora-02803     현재 시간의 추출에 실패했습니다.
ora-02804     로그 화일명에 대한 메모리 할당에 실패했습니다.
ora-02805     sigtpa에 대한 처리기를 지정할 수 없습니다.
ora-02806     sigalrm에 대한 처리기를 지정할 수 없습니다.
ora-02807     i/o 벡터에 대한 메모리 할당에 실패했습니다.
ora-02808     서버가 사용하는 flag array를 위한 메모리 할당에 실패했습니다.
ora-02809     jump 버퍼가 적절하지 않습니다.
ora-02810     메모리 맵화일에 대한 임시 화일명을 만들수 없습니다.
ora-02811     공유메모리 세그먼트를 첨부할 수 없습니다.
ora-02812     잘못된 첨부 번지입니다.
ora-02813     키를 얻기위한 임시화일명을 만들수 없습니다.
ora-02814     공유 메모리를 얻을 수 없습니다.
ora-02815     공유 메모리를 첨부할 수 없습니다.
ora-02816     프로세스를 죽일 수 없습니다.
ora-02817     읽기실패
ora-02818     요구된 것보다 적은 수의 블록이 읽혀졌습니다.
ora-02819     쓰기실패
ora-02820     요구된 수의 블록을 기록할 수 없습니다.
ora-02821     요구된 수의 블록을 읽을 수 없습니다.
ora-02822     부적절한 블록 오프셋
ora-02823     버퍼가 정열되지 않았습니다.
ora-02824     가용 요구 목록이 비었습니다.
ora-02825     자유롭게 선택할 수 있는 목록에 대한 요구가 해제되지 않았습니다.
ora-02826     부적절한 블록크기 입니다.
ora-02827     부당한 화일번호입니다.
ora-02828     가용 세그먼트 목록이 비었습니다.
ora-02829     적절한 크기의 세그먼트가 없습니다.
ora-02830     세그먼트는 파티션될 수 없음 - 가용 세그먼트가 없습니다.
ora-02831     세그먼트 할당해제 실패 - 세그먼트 목록이 비었습니다.
ora-02832     세그먼트 할당해제 실패 - 세그먼트가 목록에 없습니다.
ora-02833     서버가 화일을 닫을 수 없습니다.
ora-02834     서버가 화일을 열 수 없습니다.
ora-02835     서버가 클라이언트에 신호을 송신할 수 없습니다.
ora-02836     임시 키 화일을 생성할 수 없습니다.
ora-02837     임시 화일을 링크 해제할 수 없습니다.
ora-02838     알람 신호를 위한 신호처리기를 대비할 수 없습니다.
ora-02839     디스크로 블록을 sync하는데 실패했습니다.
ora-02840     클라이언트가 로그 화일을 여는데 실패했습니다.
ora-02841     기동시 서버가 죽었습니다.
ora-02842     클라이언트가 서버를 포크할 수 없습니다.
ora-02843     커널 플래그에 대한 부적절한 값입니다.
ora-02844     열기 허가 플래그에 대한 부적절한 값입니다.
ora-02845     시각 요구 플래그에 대한 부적절한 값입니다.
ora-02846     중지시킬 수 없는 서버입니다.
ora-02847     포스트시 서버가 종료되지 않았습니다.
ora-02848     비동기 i/o 패키지가 가동중이 아닙니다.
ora-02849     오류로 인한 읽기 실패
ora-02850     화일이 닫혔습니다.
ora-02851     비어있지 않아야할 요구 목록이 비었습니다.
ora-02852     위험 부분에 대한 부적절한 타임아웃 값입니다.
ora-02853     서버 목록 래치 타임아웃 값이 부적절합니다.
ora-02854     요구 버퍼의 수가 부적절합니다.
ora-02855     요구건수가 slaves수 보다 작습니다.
ora-03001     현재에는 구현되어 있지 않은 기능입니다.
ora-03002     이 연산자는 구현되어 있지 않습니다.
ora-03007     이 기능은 폐지되었습니다.
ora-03008     파라미터 compatible >= %s 가 %s에 필요합니다.
ora-03100     통신 영역이 할당되지 않음. 메모리가 충분하지 않습니다.
ora-03105     내부 프로토콜 오류
ora-03106     두 태스크 간의 통신 프로토콜 오류입니다.
ora-03107     oranet 버퍼 언더플로우입니다.
ora-03108     oranet: oracle은 이 인터페이스 버전을 지원하지 않습니다.
ora-03109     oranet 버퍼 오버플로우입니다.
ora-03110     oranet: oracle은 이 sql 버전을 지원하지 않습니다.
ora-03111     통신 채널에서 브레이크를 수신했습니다.
ora-03112     단일-태스크로 링크된 서버는 sql*net을 사용할 수 없습니다.
ora-03113     통신 채널에 eof 가 있습니다.
ora-03114     oracle에 연결되어 있지 않습니다.
ora-03115     지원되지 않은 네트워크 데이타 유형 또는 표현이 있습니다.
ora-03116     부적당한 버퍼 길이가 변환 루틴으로 전달되었습니다.
ora-03117     2-타스크 보존 영역 오버플로우
ora-03118     2-타스크 코루틴의 상태가 부적당합니다.
ora-03120     2-타스크 변환 루틴: 정수 오버플로우
ora-03121     인터페이스 드라이버가 연결되어 있지 않습니다 함수는 실행되지 않습니다.
ora-03122     사용자측에서 oracle측의 윈도우를 클로즈하려 했습니다.
ora-03123     작업이 막힘
ora-03124     2-타스크 내부 오류
ora-03125     클라이언트-서버 프로토콜에 위배됩니다.
ora-03126     네트워크 드라이버가 비-블로킹 작업을 지원하지 않습니다.
ora-03127     실행 작업이 종료되기 전에는 새로운 작업을 할 수 없습니다.
ora-03128     연결은 블로킹 모드입니다.
ora-03129     다음 구분이 삽입되도록 요청했습니다.
ora-03130     다음 구분이 인출 되도록 요청한 버퍼입니다.
ora-03131     다음 구분을 위한 버퍼가 잘못 제공되었습니다.
ora-03200     세그먼트 유형 명세가 부적당합니다.
ora-03201     그룹 번호 명세가 부적당합니다.
ora-03202     스캔 한계 명세가 부적당합니다.
ora-03203     동시 갱신은 영역 분석을 불가능하게 합니다.
ora-03230     세그먼트는 %s 블록만을 포함하고 있습니다.
ora-03231     initial 영역이 할당 해제되지 않았습니다.
ora-03274     allocate extent와 deallocate unused 옵션들이 지정되었습니다.
ora-03275     이중 deallocate 옵션으로 명세
ora-03276     allocate extent의 중복지정
ora-03277     부적절한 size의 지정
ora-03278     allocate extent 옵션의 중복지정
ora-03279     부적절한 instance가 지정되었음
ora-03280     부적절한 datafile 화일명의 지정
ora-03281     부적절한 allocate extent 옵션
ora-03282     allocate extent 옵션의 누락
ora-03283     지정된 데이타 화일 %s이 존재하지 않습니다.
ora-03284     데이타 화일 %s는 테이블스페이스 %s의 멤버가 아닙니다.
ora-03286     hash clusters에 대해 allocate extent가 정당하지 않습니다.
ora-03287     부적절한 freelist group의 지정
ora-03288     freelist group과 instance 파라미터가 함께 지정될 수 없습니다.
ora-03290     부적절한 truncate 명령어 - cluster 혹은 table 키워드의 누락
ora-03291     부적절한 truncate 옵션 - storage 키워드의 누락
ora-03292     잘릴 테이블이 클러스터의 일부입니다.
ora-03293     잘릴 클러스터는 hash cluster입니다.
ora-03296     데이타화일의 크기를 조정할 수 없습니다 - 화일 %s 이 없습니다.
ora-03297     요구된 resize 값보다 큰 %s 데이타 블록이 화일에 포함되어 있습니다.
ora-03298     데이타화일을 줄일 수 없습니다 - 화일 %s는 핫 백업중입니다.
ora-03299     딕셔너리 테이블 %s을 생성할 수 없습니다.
ora-04000     pctused 와 pctfree 의 합이 100을 초과할 수 없습니다.
ora-04001     시퀀스 파라미터 %s 는 정수라야 합니다.
ora-04002     increment 는 0이 아닌 정수라야 합니다.
ora-04003     시퀀스 파라미터 %s가 최대 크기 허용(%s 자리)를 초과했습니다.
ora-04004     minvalue 는 maxvalue 보다 작아야 합니다.
ora-04005     increment 는 ( maxvalue - minvalue ) 보다 작아야 합니다.
ora-04006     start with 에 minvalue 보다 작은 값은 지정할 수 없습니다.
ora-04007     minvalue 에 현재치보다 큰 값을 지정할 수 없습니다.
ora-04008     start with 에 maxvalue 보다 큰 값을 지정할 수 없습니다.
ora-04009     maxvalue 에 현재치보다 작은 값을 지정할 수 없습니다.
ora-04010     cache 에는 1 보다 큰 수치를 지정해야 합니다.
ora-04011     시퀀스 %s 은 %s 와 %s 범위 사이어야 합니다.
ora-04012     지정된 개체는 시퀀스가 아닙니다.
ora-04013     cache 에는 1 사이클보다 작은 값을 지정해야 합니다.
ora-04014     cycle이 명시하는 minvalue가 내림차순 시퀀스입니다.
ora-04015     cycle 을 실시하는 오름차순 시퀀스에는 maxvalue 를 지정해야 합니다.
ora-04016     시퀀스 %s 은 더 이상 존재하지 않습니다.
ora-04020     개체 %s%s%s%s%s의 잠금 시도중 데드록이 검출되었습니다.
ora-04021     개체 %s%s%s%s%s의 잠금 대기중 시간이 초과됐습니다.
ora-04028     개체 %s%s%s%s%s에 대한 diana를 생성할 수 없습니다.
ora-04029     %s%s%s를 조회하는 중에 ora-%s 오류가 발생했습니다.
ora-04030     %s바이트 (%s,%s)의 할당 시도중 프로세스 메모리의 부족현상 발생
ora-04031     %s 바이트의 공유 메모리를 할당할 수 없습니다 (%s,%s,%s)
ora-04041     패키지 본체의 생성전에 패키지 지정이 먼저 생성되어야 합니다.
ora-04042     프로시저,함수,패키지 혹은 패키지 본체가 존재하지 않습니다.
ora-04043     개체 %s가 존재하지 않습니다.
ora-04044     프로시저, 함수, 패키지는 이곳에서 허용되지 않습니다.
ora-04045     %s.%s의 재 컴파일/재 검증시 오류
ora-04046     컴파일 결과를 제공하기에는 너무 큽니다.
ora-04050     부적절한 혹은 누락된 프로시저, 함수, 혹은 패키지명입니다.
ora-04051     사용자 %s는 데이타베이스 링크 %s.%s를 사용할 수 없습니다.
ora-04052     원격 개체 %s%s%s%s%s를 찾는 동안 오류발생
ora-04053     원격 개체 %s%s%s%s%s의 검증시 오류발생
ora-04054     데이타베이스 링크 %s가 존재하지 않습니다.
ora-04060     %s를 수행하기 위한 권한이 부족합니다.
ora-04061     %s의 기존상태가 무효화되었습니다.
ora-04062     %s(%s의)이 변경되었습니다.
ora-04063     %s가 오류를 가집니다.
ora-04064     실행불가, %s가 무효화 되었습니다.
ora-04065     실행불가, %s가 변경 혹은 삭제되었습니다.
ora-04066     실행할수 없는 개체, %s
ora-04067     실행불가, %s가 존재하지 않습니다.
ora-04068     패키지%s%s%s의 기존 상태가 버려졌습니다.
ora-04070     부적절한 트리거명
ora-04071     before 혹은 after 키워드의 누락
ora-04072     부적절한 트리거유형
ora-04073     이 트리거유형에 대해서 열 목록은 부당합니다.
ora-04074     부적절한 referencing명
ora-04075     부적절한 트리거동작
ora-04076     부적절한 new 혹은 old지정
ora-04077     when절은 레이블 레벨의 트리거와 사용될 수 없습니다.
ora-04078     old와 new값이 같을 수 없습니다.
ora-04079     부당한 트리거 지정
ora-04080     트리거 %s가 존재하지 않습니다.
ora-04081     트리거 %s가 이미 존재합나다.
ora-04082     테이블 레벨 트리거에서 new 혹은 old 참조는 허용되지 않습니다.
ora-04083     부적절한 트리거 변수 %s
ora-04084     행 트리거후에 트리거의 new값을 변경할 수 없습니다.
ora-04085     old 참조변수의 값을 변경할 수 없습니다.
ora-04086     트리거 설명이 너무 깁니다 트리거 코드에 주석을 옮기십시오
ora-04087     rowid 참조 변수의 값을 변경할 수 없습니다.
ora-04088     트리거 %s의 수행시 오류
ora-04089     sys 소유의 개체에 대한 트리거를 작성할 수 없습니다.
ora-04090     %s는 동일 테이블, 이벤트 그리고 트리거 시간을 %s 로 지정하고 있습니다.
ora-04091     테이블 %s.%s가 변화하고 있어서 트리거/함수가 이를 볼 수 없습니다.
ora-04092     트리거 안에 %s를 할 수 없습니다.
ora-04093     long유형 열 참조는 트리거에서 허용되지 않습니다.
ora-04094     테이블 %s.%s은 부적합함, 트리거는 그것을 수정할 수 없습니다.
ora-04095     트리거 %s가 다른 테이블에 이미 존재함, 치환할 수 없습니다.
ora-04096     트리거 %s는 when 절이 있은데 너무 큽니다 한계치가 2k.
ora-04097     트리거 삭제 또는 수정을 시도시 ddl 대립이 생겼습니다.
ora-04098     트리거 %s 은 부적당하고 재검증에 실패했습니다.
ora-04099     트리거 %s 은 적당하지만 컴파일된 폼에 저장되지 않았습니다.
ora-06000     netasy: 포트 개방 실패
ora-06001     netasy: 포트 셋업 실패
ora-06002     netasy: 포트 읽기 실패
ora-06003     netasy: 포트 쓰기 실패
ora-06004     netasy: 대화 화일의 개방 실패
ora-06005     netasy: 대화 화일의 읽기 실패
ora-06006     netasy: 대화의 수행 실패
ora-06007     netasy: 잘못된 대화 유형
ora-06009     netasy: 대화 화일명이 너무 깁니다.
ora-06010     netasy: 대화 화일이 너무 깁니다.
ora-06011     netasy: 대화가 너무 깁니다.
ora-06017     netasy: 메시지 수신 실패
ora-06018     netasy: 메시지 송신 실패
ora-06019     netasy: 부적절한 로그인(연결) 스트링
ora-06020     netasy: 초기화 실패
ora-06021     netasy: 연결 실패
ora-06022     netasy: 채널 개방 실패
ora-06023     netasy: 포트 개방 실패
ora-06024     netasy: vtm 오류
ora-06025     netasy: 환경설정 오류
ora-06026     netasy: 포트 close 실패
ora-06027     netasy: 채널 close 실패
ora-06028     netasy: 로그인 하기위한 초기화를 할 수 없습니다.
ora-06029     netasy: 포트 할당 실패
ora-06030     netdnt: 연결 실패, 인식할 수 없는 노드명입니다.
ora-06031     netdnt: 연결 실패, 인식할 수 없는 개체명입니다.
ora-06032     netdnt: 연결 실패, 제어정보의 액세스가 거절되었습니다.
ora-06033     netdnt: 연결 실패, 상대편이 연결을 거절했습니다.
ora-06034     netdnt: 연결 실패, 상대편이 예기치않게 종료됐습니다.
ora-06035     netdnt: 연결 실패, 불충분한 자원입니다.
ora-06036     netdnt: 연결 실패, 개체로부터의 응답이 없습니다.
ora-06037     netdnt: 연결 실패, 노드에 도달할 수 없습니다.
ora-06038     netdnt: 연결 실패, 네트워크 드라이버가 로드되지 않았습니다.
ora-06039     netdnt: 연결 실패
ora-06040     netdnt: 부적절한 로그인 스트링입니다.
ora-06041     netdnt: 분리 실패
ora-06042     netdnt: 메시지 수신 실패
ora-06043     netdnt: 메시지 송신 실패
ora-06044     netdnt: 연결 실패, 바이트 갯수 할당량을 초과했습니다.
ora-06102     nettcp: 문맥 영역을 할당할 수 없습니다.
ora-06105     nettcp: 원격 호스트가 불명입니다.
ora-06106     nettcp: 소켓 생성 실패
ora-06107     nettcp: oracle 네트워크 서버가 없습니다.
ora-06108     nettcp: 호스트에 연결 실패
ora-06109     nettcp: 메시지 수신 실패
ora-06110     nettcp: 메시지 송신 실패
ora-06111     nettcp: 분리하는것이 실패
ora-06112     nettcp: 부적절한 버퍼크기입니다.
ora-06113     nettcp: 연결이 너무 많습니다.
ora-06114     nettcp: sid 찾기 실패
ora-06115     nettcp: 논리적인 oracle을 생성할 수 없습니다.
ora-06116     nettcp: orasrv 프로세스를 생성할 수 없습니다.
ora-06117     nettcp: orasrv를 생성할 수 없음: 할당량을 초과했습니다.
ora-06118     nettcp: orasrv와의 교신을 끝낼 수 없습니다.
ora-06119     nettcp: 가짜 클라이언트의 요구
ora-06120     nettcp: 네트워크 드라이버가 로드되지 않았습니다.
ora-06121     nettcp: 액세스 실패
ora-06122     nettcp: 셋업 실패
ora-06123     nettcp: keepalive를 지정할 수 없습니다.
ora-06124     nettcp: orasrv 대기시 시간경과
ora-06125     nettcp: orasrv가 예기치않게 종료했습니다.
ora-06126     nettcp: orasrv가 네트워크 연결을 열 수 없습니다.
ora-06127     nettcp: 사용자명을 변경할 수 없습니다.
ora-06128     nettcp: 우편함을 생성할 수 없습니다.
ora-06129     nettcp: 소켓의 소유권을 orasrv로 옮길 수 없습니다.
ora-06130     nettcp: 호스트의 액세스가 거부되었습니다.
ora-06131     nettcp: 사용자의 액세스가 거부되었습니다.
ora-06132     nettcp: 비밀번호가 틀림, 액세스가 거부되었습니다.
ora-06133     nettcp: 화일이 없습니다.
ora-06134     nettcp: 화일 액세스 권한이 위반되었습니다.
ora-06135     nettcp: 연결이 거절됨; 서버가 중지되고 있습니다.
ora-06136     nettcp: 연결교신중 오류 발생
ora-06137     nettcp: 연결교신중 오류 발생
ora-06138     nettcp: 연결교신중 오류 발생
ora-06140     nettcp: 그런 사용자가 없습니다.
ora-06141     nettcp: 사용자에 대한 권한이 없습니다.
ora-06142     nettcp: 사용자 정보의 획득시 오류
ora-06143     nettcp: 최대 연결수를 초과했습니다.
ora-06144     nettcp: sid (데이타베이스)는 사용할 수 없습니다.
ora-06145     nettcp: orasrv를 수행시킬 수 없음: 이미지가 설치되지 않았습니다.
ora-06200     twotask: 연결 실패, 우편함을 생성할 수 없습니다.
ora-06201     twotask: 연결 실패, 우편함에 연결할 수 없습니다.
ora-06202     twotask: 연결 실패, 서버 태스크를 만들 수 없습니다.
ora-06203     twotask: 연결 실패, 교신 실패
ora-06204     twotask: 연결 실패, orasrv2.com를 액세스할 수 없습니다.
ora-06205     twotask: 연결 실패, 논리명을 생성할 수 없습니다.
ora-06206     twotask: 메시지 수신 실패
ora-06207     twotask: 메시지 송신 실패
ora-06208     twotask: 부적당한 로그인(연결) 스트링
ora-06209     twotask: 연결 실패, 우편함이 이미 존재하고 있습니다.
ora-06210     twotask: 연결 실패, orasrv가 예기치 않게 종료되었습니다.
ora-06211     twotask: 연결 실패, orasrv를 기다리다가 시간 초과 되었습니다.
ora-06212     twotask: 연결 실패, 논리 이름 테이블이 꽉 차있습니다.
ora-06213     twotask: 연결 실패
ora-06214     twotask: 연결 실패, orasrv를 생성하기 위해 충분치 않은 할당량 입니다.
ora-06215     twotask: 연결 실패, orasrv 이미지가 설치가 않되게 보호된 것입니다.
ora-06216     twotask: 연결 실패, orasrv 이미지 화일을 발견할 수 없습니다.
ora-06250     netntt: 송수신 버퍼를 할당할 수 없습니다.
ora-06251     netntt: 주소 화일명을 해석할 수 없습니다.
ora-06252     netntt: 주소 화일을 열 수 없습니다.
ora-06253     netntt: 주소화일에서 인수를 read 할 수 없습니다.
ora-06254     netntt: 큐브로의 연결을 공유할 수 없습니다.
ora-06255     netntt: 원격 프로세스의 pid를 read 할수없습니다.
ora-06256     netntt: 원격 fork 실패
ora-06257     netntt: 섀도(shadow) 프로세스에 명령을 송신할 수 없습니다.
ora-06258     netntt: 문맥 영역을 할당할 수 없습니다.
ora-06259     netntt: 원격 프로세스에서 read 할수 없습니다.
ora-06260     netntt: 원격 프로세스로 write 할수 없습니다.
ora-06261     netntt: nrange() 실패
ora-06262     netntt: nfconn() 실패
ora-06263     netntt: pi_connect에 메모리 부족
ora-06264     netntt: 데이타 프로토콜 오류
ora-06265     netntt: break 프로토콜 오류
ora-06266     netntt: 잘못된 쓰기 길이
ora-06267     netntt: 오류 상태
ora-06268     netntt: /etc/oratab을 read 불가
ora-06300     ipa: 접속분리 실패
ora-06301     ipa: driver context 를 할당할 수 없습니다.
ora-06302     ipa: 원격 호스트에 연결 불가
ora-06303     ipa: 메세지 전송 오류
ora-06304     ipa: 메세지 수신 오류
ora-06305     ipa: 부적절한 메시지 유형
ora-06306     ipa: 메세지 write 길이 오류
ora-06307     ipa: 연결 재설정 실패
ora-06308     ipa: 더 이상 연결 불가
ora-06309     ipa: 이용 가능한 메세지 큐가 없음
ora-06310     ipa: 환경 변수가 지정되지 않았습니다.
ora-06311     ipa: 최대 서버수에 도달 했습니다.
ora-06312     ipa: 지정된 서비스명이 부정확합니다.
ora-06313     ipa: 공유 메모리 초기화 실패
ora-06314     ipa: event 설정 실패
ora-06315     ipa: 콘넥트 스트링 오류
ora-06316     ipa: 데이타베이스 sid 오류
ora-06317     ipa: 로컬 최대 사용자수 초과
ora-06318     ipa: 로컬 최대 콘넥션수 초과
ora-06319     ipa: 원격 최대 사용자수 초과
ora-06320     ipa: 원격 최대 연결 수 초과
ora-06321     ipa: 원격편에 도달할 수 없습니다.
ora-06322     ipa: 심각한 공유 메모리 오류
ora-06323     ipa: 이벤트 오류 발생
ora-06400     netcmn: 지정된 기본 호스트 뮨자열이 없습니다.
ora-06401     netcmn: 부적절한 드라이버 지정자
ora-06402     netcmn: 브레이크 메시지 수신시 오류
ora-06403     netcmn: 문맥 영역을 할당할 수 없습니다.
ora-06404     netcmn: 부당한 로그인 (연결) 스트링
ora-06405     netcmn: 프로토콜 재설정 오류
ora-06406     netcmn: 브레이크 메시지 송신시 오류
ora-06407     netcmn: 브레이크 처리환경을 구축할 수 없습니다.
ora-06408     netcmn: 부정확한 메시지 유형
ora-06413     연결이 개방되지 않았습니다.
ora-06416     netcmn: 테스트시 오류
ora-06419     netcmn: 서버가 오라클을 기동시킬 수 없습니다.
ora-06420     netcmn: sid의 찾기 실패
ora-06421     netcmn: 읽혀질 데이타에 오류가 발견되었습니다.
ora-06422     netcmn: 송신 데이타에 오류가 발견되었습니다.
ora-06423     netcmn: 수신 데이타에 오류가 발견되었습니다.
ora-06430     ssaio: 함수가 잘못된 인수로 요구되었습니다.
ora-06431     ssaio: 부적절한 블록번호
ora-06432     ssaio: 버퍼가 정열되지 않습니다.
ora-06433     ssaio: lseek 오류, 요구된 블록을 찾을 수 없습니다.
ora-06434     ssaio: 읽기 오류, 데이타베이스 화일로 읽을 수 없습니다.
ora-06435     ssaio: 쓰기 오류, 데이타베이스 화일에 기록할 수 없습니다.
ora-06436     ssaio: 비동기 i/o가 틀린 파라미터로 인하여 실패했습니다.
ora-06437     ssaio: 비동기 쓰기는 데이타베이스 화일에 기록할 수 없습니다.
ora-06438     ssaio: 비동기 읽기는 데이타베이스 화일로 부터 읽을 수 없습니다.
ora-06439     ssaio: 비동기 쓰기가 틀린 바이트 수를 리턴했습니다.
ora-06440     ssaio: 비동기 읽기가 틀린 바이트 수를 리턴했습니다.
ora-06441     ssvwatev: 함수 호출에 잘못된 파라미터가 넘겨졌습니다.
ora-06442     ssvwatev: 예기치 않은 오류로 실패했습니다.
ora-06443     ssvpstev: 함수 호출에 잘못된 파라미터가 넘겨졌습니다.
ora-06444     ssvpstev: 예기치 않은 오류로 실패했습니다.
ora-06445     ssvpstevrg: 함수 호출에 잘못된 파라미터가 넘겨졌습니다.
ora-06446     ssvpstevrg: 예기치 않은 오류로 실패했습니다.
ora-06447     ssvpstp: 함수 호출에 잘못된 파라미터가 넘겨졌습니다.
ora-06448     ssvpstp: 예기치 않은 오류로 실패했습니다.
ora-06449     리스트 io 혹은 sysvendor가 설치되지 않았습니다.
ora-06500     pl/sql: 기억 영역 오류입니다.
ora-06501     pl/sql 프로그램 오류
ora-06502     pl/sql: 값(수치) 오류입니다.
ora-06503     pl/sql: 함수가 값을 리턴하지 못했습니다.
ora-06504     pl/sql: result set 변수 또는 질의의 리턴 유형이 일치하지 않습니다.
ora-06508     pl/sql: 호출되는 lib 단위를 발견할 수 없습니다.
ora-06509     pl/sql: 이 패키지(package)에 대한 icd 벡터가 누락됐습니다.
ora-06510     pl/sql: 처리되지 않은 user-defined 예외 상황
ora-06511     pl/sql: 커서가 이미 열려있습니다.
ora-06512     %s줄 %s에서
ora-06513     pl/sql: pl/sql 테이블의 색인이 호스트 언어 배열의 범위를 벗어남
ora-06514     pl/sql: 원격 호출은 서버에 의해서 처리되지 않습니다.
ora-06540     pl/sql: 컴파일 오류
ora-06541     pl/sql: 컴파일 오류 - 컴파일 중지
ora-06542     pl/sql: 실행 오류
ora-06543     pl/sql: 실행 오류 - 실행 중지
ora-06544     pl/sql: 내부 오류, 인수: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]
ora-06550     줄 %s, 열%s:%s
ora-06551     pl/sql: 처리되지 않은 예외상황
ora-06552     pl/sql: %s
ora-06553     pls-%s: %s
ora-06554     패키지 dbms_standard는 pl/sql을 사용하기 전에 생성되야만 합니다.
ora-06555     이 이름은 현재 사용자 sys에 의해 사용되기 위해 예약되어 있습니다.
ora-06556     파이프가 비어 있어 unpack_message 요구를 이행할 수 없습니다.
ora-06557     icd 파이프에 대한 파라미터로 null 값은 허용되지 않습니다.
ora-06558     dbms_pipe 패키지에 있는 버퍼가 꽉 찼음. 더 이상의 항목이 사용될 수 없습니다.
ora-06559     %s로 잘못된 데이타유형이 요구되었습니다, 실제 데이타유형은 %s 입니다.
ora-06560     위치, %s 가 버퍼 크기 %s 보다 크거나 음수 입니다.
ora-06561     명령문이 dbms_sql 패키지에 의해 지원되지 않습니다.
ora-06562     out 인수의 형이 열의 형과 일치되거나 변수와 바인드되어야 합니다.
ora-06563     기술된 최상위 레벨의 프로시저/펑션이 하위레벨을 포함할 수 없습니다.
ora-06564     개체 %s가 존재하지 않습니다.
ora-06565     저장된 프로시저에서 %s를 실행할 수 없습니다.
ora-06566     행의 수 지정이 부적합합니다.
ora-06567     값의 수 지정이 부적합합니다.
ora-06568     폐기된 icd 프로시저가 호출되었습니다.
ora-06570     풀 개체 공유가 존재하지 않습니다.
ora-06571     %s 함수는 데이타베이스에 갱신하는것을 보증할 수 없습니다.
ora-06572     %s 함수는 out 인수를 가지고 있습니다.
ora-06573     %s 함수가 패키지 상태를 변경하는데, 여기서는 사용할 수 없습니다.
ora-06574     %s 함수는 패키지 상태를 참조하는데, 원격적으로 실행할 수 없습니다.
ora-06575     패키지 또는 함수 %s 은 부적당한 상태입니다.
ora-06580     해쉬 결합이 큰 행을 메모리에 보관하는 중에 메모리 부족이 일어났습니다.
ora-06600     lu6.2 driver: sna 소프트웨어가 로드되지 않음
ora-06601     lu6.2 driver: 부적절한 데이타베이스 id 스트링임
ora-06602     lu6.2 driver: 문맥 영역 할당시 오류
ora-06603     lu6.2 driver: 메모리 할당시 오류
ora-06604     lu6.2 driver: 원격 lu와 함께 세션을 할당할 수 없음
ora-06605     lu6.2 driver: 예기치 않은 줄 턴어라운드
ora-06606     lu6.2 driver: sna로 부터의 예기치 않은 응답
ora-06607     lu6.2 driver: 송신상태에서 재설정됨
ora-06608     lu6.2 driver: 수신상태에서 재설정됨
ora-06610     lu6.2 driver: 해제시 실패
ora-06611     lu6.2 driver: 송신 요구오류
ora-06612     lu6.2 driver: 데이타 송신오류
ora-06613     lu6.2 driver: 수신 및 대기오류
ora-06614     lu6.2 driver: 즉시 수신오류
ora-06615     lu6.2 driver: 송신오류
ora-06616     lu6.2 driver: lu로의 첨부에 실패했음
ora-06617     lu6.2 driver: pu로의 첨부에 실패했음
ora-06618     lu6.2 driver: 서브네트워크의 활성화에 실패했음
ora-06619     lu6.2 driver: 활성적인 원격 파트너를 할 수 없습니다.
ora-06620     lu6.2 driver: 부적절한 원격 파트너
ora-06621     lu6.2 driver: 할당 오류
ora-06622     lu6.2 driver: sna에 첨부할 수 없음
ora-06700     tli driver: 호스트로부터의 메시지 유형이 부정확합니다.
ora-06701     tli driver: 틀린 수의 바이트가 기록되었습니다.
ora-06702     tli driver: 문맥 영역을 할당할 수 없습니다.
ora-06703     tli driver: 브레이크 메시지의 송신 실패
ora-06704     tli driver: 브레이크 메시지의 수신 실패
ora-06705     tli driver: 원격 노드가 불명입니다.
ora-06706     tli driver: 서비스가 발견되지 않습니다.
ora-06707     tli driver: 연결실패
ora-06708     tli driver: 메시지 수신실패
ora-06709     tli driver: 메시지 송신실패
ora-06710     tli driver: 송신 인터럽트 브레이크 메시지 실패
ora-06711     tli driver: 바인드시 오류
ora-06712     tli driver: 인수시 오류
ora-06713     tli driver: 연결시 오류
ora-06720     tli driver: sid 찾기 실패
ora-06721     tli driver: 가 클라이언트 요구
ora-06722     tli driver: 연결설정 실패
ora-06730     tli driver: 크론(clone) 디바이스의 열기 실패
ora-06731     tli driver: t_call을 할당할 수 없습니다.
ora-06732     tli driver: t_discon을 할당할 수 없습니다.
ora-06733     tli driver: 분리 수신에 실패했습니다.
ora-06734     tli driver: 연결할 수 없습니다.
ora-06735     tli driver: 잘못된 연결을 닫는데 실패했습니다.
ora-06736     tli driver: 서버가 가동중이 아닙니다.
ora-06737     tli driver: 연결실패
ora-06741     tli driver: 프로토콜 디바이스를 열 수 없습니다.
ora-06742     tli driver: t_bind를 할당할 수 없습니다.
ora-06743     tli driver: t_bind를 할당할 수 없습니다.
ora-06744     tli driver: 리스너(listener)를 바인드할 수 없습니다.
ora-06745     tli driver: 리스너(listener)가 이미 가동중입니다.
ora-06746     tli driver: t_call을 할당할 수 없습니다.
ora-06747     tli driver: 청취(listen) 오류
ora-06748     tli driver: t_discon을 할당할 수 없습니다.
ora-06749     tli driver: 네트워크상에서 옵션이 허용되지 않습니다.
ora-06750     tli driver: sync 실패
ora-06751     tli driver: 번지 범위가 다릅니다.
ora-06752     tli: 시그널 설정시 오류
ora-06753     tli driver: name-to-address를 맹핑하는데 실패했습니다.
ora-06754     tli driver: 지역 호스트 번지를 얻을 수 없습니다.
ora-06755     tli driver: 이동 마감점을 닫을 수 없습니다.
ora-06756     tli driver: oratab을 열 수 없습니다.
ora-06757     tli driver: 서버가 틀린 명령을 취했습니다.
ora-06760     tli driver: 순차릴리스를 읽는 동안 타임아웃됐습니다.
ora-06761     tli driver: 순차릴리스의 송신오류
ora-06762     tli driver: 순차릴리스의 읽기오류
ora-06763     tli driver: 분리 송신오류
ora-06764     tli driver: 분리 읽기오류
ora-06765     tli driver: 순차 릴리즈의 대기오류
ora-06766     tli driver: 릴리스시 닫기실패
ora-06767     tli driver: 릴리즈시 할당실패
ora-06770     tli driver: 버전 송신오류
ora-06771     tli driver: 버전 읽기오류
ora-06772     tli driver: 명령 송신오류
ora-06773     tli driver: 명령 읽기오류
ora-06774     tli driver: 브레이크 모드 송신오류
ora-06775     tli driver: 브레이크 모드 읽기오류
ora-06776     tli driver: 파라미터 송신오류
ora-06777     tli driver: 파라미터 읽기오류
ora-06778     tli driver: ccode 송신오류

Posted by 1010
02.Oracle/DataBase2009. 1. 30. 20:08
반응형

우선 BLOB, CLOB을 DB에서 SELECT 해서 사용하는

몇가지 용법에 관해서 가장 low level의 코드로 살펴볼게요.

1. Class.forName("oracle.jdbc.driver.OracleDriver");
2. Connection             conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:merong", "admin", "1234");
3. Statement stmt = conn.createStatement();
4. ResultSet rset = stmt.executeQuery("SELECT blob_col, clob_col FROM test_table");
5. while(rset.next())

여기까지는 다 아시는 사항일테고...

이제부터 BLOB과 CLOB을 나누어서 한번 살펴보겠습니다.

1. BLOB 데이터를 읽어서 파일로 생성하는 경우
BLOB blob = ((OracleResultSet)rset).getBLOB(1);
InputStream input = blob.getBinaryStream();
FileOutputStream fOut = new FileOutputStream("C:/temp/xml/test.xml");
byte[] buffer = new byte[10];
int nbytes = 0;
while((nbytes = input.read(buffer)) != -1) {
   fOut.write(buffer, 0, nbytes);
}
fOut.flush();
fOut.close();
input.close();

2. BLOB 데이터를 읽어서 문자열로 처리하는 경우
BLOB blob = ((OracleResultSet)rset).getBLOB(1);
InputStream input = blob.getBinaryStream();
StringWriter strWriter = new StringWriter();
int ch = 0;
while((ch = input.read()) != -1) {
   strWriter.write(ch);
}
input.close();
System.out.println(strWriter.getBuffer().toString());

3. CLOB 데이터를 읽어서 문자열로 처리하는 경우
StringBuffer output = new StringBuffer();
Reader input = rset.getCharacterStream("CLOB_COL");
char[] buffer = new char[1024];
int byteRead;
while((byteRead=input.read(buffer,0,1024))!=-1){
   output.append(buffer,0,byteRead);
}
input.close();
System.out.println(output.toString());

어때요? 간단하죠?

출처 : http://www.fog.pe.kr/ktt/index.php?page=2

Posted by 1010
02.Oracle/DataBase2009. 1. 30. 20:07
반응형
Oracle Clob를 이용한 예제(정민철)
Oracle 9i clob Type  

Oracle 8i 이전 버전에서 대용량 처리는 long 타입으로 처리를 할 수 밖에 없었으며,
이 칼럼은 한테이블에 하나만 사용할 수 있으며 (최대 크기 2GB) 더군다나 검색을 구현
하기가 너무 어려워 포기를 해야 만 했습니다.

그래서 이런 문제를 보안하기 위해 나온 것이 바로 Oracle 8i부터 지원되는 대용량 데
이터 저장 타입인 Lob(Large Object) Type 입니다..
 
Lob 타입은 테이블에 여러개의 컬럼을 생성할 수 있으며 (최대 크기 4GB) 또한 long  
타입보다 훨씬 쉬운 검색기능을 제공합니다.
 
Lob type의 종류로는 이진 바이너리 데이터의 저장시 사용되는 Blob (Binary Large Object)와
문서 데이터의 저장시 사용되는 Clob (Character Large Object) 그리고
외부 파일에 저장된 이진 데이터가 있는 경로의 저장시 사용되는 BFILE 가 있습니다.

 
그럼 이중에서 Clob에 대해 알아보겠습니다.

 
---------------
Clob에 저장하기
---------------

Clob 부연 설명을 한다면, 먼저 다른 데이터들을 먼저 데이터베이스에 넣고 그 다음 clob
타입의 데이터를 update 해주는 방식입니다.
그럼 자세히 알아보겠습니다.

*참고:저는 DBConnect라는 자바빈즈를 사용하여 Oracle에 접속하였습니다.

<jsp:useBean id="dbconn" class="jspBean.DBConnect" scope="application" />

    Connection  conn    = dbconn.getConnection();  
           // 자바빈즈로부터 데이터베이스 커넥션 받기
    conn.setAutoCommit(false);  
          // Clob의 가장 중요한 부분 입니다.
          // 반드시 CLOB column을 업데이트 하는동안 다른 process의 접근을  
          //막기위해 setAutoCommit(false)를 반드시 설정해야 합니다.  
  
    Statement   stmt    = null;  // SQL 구문 실행을 위한 Statement 선언
   
    try {
        stmt    = conn.createStatement();   // 커넥션으로부터 Statement 생성
    } catch(SQLException e) {
    }
    
    query = "INSERT INTO gongzi VALUES (seq_gongzi_id.nextval,";
    query = query + "?,?,?,?,?,sysdate,empty_clob(),0,seq_gongzi_id.currval,?,?,?)";
          // empty_clob() 를 이용하여 공간을 확보하면서 insert 합니다.

    PreparedStatement ps = conn.prepareStatement(query);
       ps.setString(1, subject);
       ps.setString(2, name);
       ps.setString(3, password);
       ps.setString(4, email);
       ps.setString(5, homepage);
       ps.setInt(6, step);
       ps.setInt(7, position);
       ps.setString(8,ip);
   
    try {
       ps.executeUpdate();
    } catch(SQLException e) {
    }
    ps.close();
    
    query = "select contents from gongzi where id = (select max(id) from gongzi)";
          //위에서 Insert한 데이터를 다시 가져옵니다.

    ps = conn.prepareStatement(query);
    rs = ps.executeQuery();
    if(rs.next()) {
       CLOB clob = ((OracleResultSet)rs).getCLOB(1);        
       Writer writer = clob.getCharacterOutputStream();
       Reader src = new CharArrayReader(contents.toCharArray());
       char[] buffer = new char[1024];
       int read = 0;
       while ( (read = src.read(buffer,0,1024)) != -1) {
            writer.write(buffer, 0, read); // write clob.
       }
       src.close();        
       writer.close();
     }
     conn.commit();
          // CLOB column에 데이터을 저장하였다면 commit()을 실행시키고  
     conn.setAutoCommit(true);  
          // conn.setAutoCommit(true)로 다시 설정합니다.  
     
     response.sendRedirect("list.jsp");
  



-------------
Clob 불러오기
-------------

     query = "SELECT * FROM gongzi WHERE id = "+id ;

     try {
rs = stmt.executeQuery(query);
     } catch(SQLException e) {
     }
     rs.next();

     String ip = rs.getString("ip");
     String subject = rs.getString("subject");
     String name = rs.getString("name");
     String email = rs.getString("email");
     String homepage = rs.getString("homepage");
     String created = rs.getString("created");

//----------------------------------------------
     StringBuffer output = new StringBuffer();
     Reader input = rs.getCharacterStream("contents");
     char[] buffer = new char[1024];
     int byteRead;
     while((byteRead=input.read(buffer,0,1024))!=-1){
  output.append(buffer,0,byteRead);
     }
    
     String contents = output.toString();
          //CLOB 데이터를 불러오기 위해서는 위에서처럼  
          //rs.getCharacterStream("content")로  
          //불러서 StringBuffer에 담아야 합니다.  
//----------------------------------------------
     int hit = rs.getInt("hit")+1;
     int ref = rs.getInt("ref");  
     int position = rs.getInt("position");

     rs.close();

글 제목에서 무제한이라고 했지만, 솔직히 무제한은 아닙니다..^^ 아시죠 4GB.  
텍스트로 4GB 넣으시려면 몇일 걸리지 않을까요.  
그럼 지금까지 이종철님의 제자 정민철이었습니다.
Posted by 1010
02.Oracle/DataBase2009. 1. 28. 16:41
반응형
여러 행을 가지고 한번에 인서트를 해야할 경우가 최근에 꽤 있었다. 한쪽 테이블에서 어떤 조건으로 셀렉트해서 다른쪽 테이블에 한꺼번에 넣어주기... 그렇게 흔한 상황은 아니지만 충분히 있을법한 상황이다.

처음에는 이걸 할줄 몰라서 SELECT해와서 루프돌면서 인서트를 날려줬다. 아~ 느려.. ㅡ..ㅡ 갯수가 그렇게 많지 않았으니까 다행이지.......

  1. INSERT INTO table_a  
  2. ( title, name, regdate, register, memberid, categoryid )  
  3. SELECT title, name, regdate, register, memberid, categoryid  
  4. FROM table_b  
  5. WHERE categoryid=10  

위에처럼 해주면 인서트문 한방으로 수십, 수백줄의 행을 추가해 줄 수 있다. 솔직히 이거 하기 전에는 INSERT는 한번에 하나만 되는 줄 알았다. ㅋ WHERE절은 SELECT문에 딸린 조건문이다. INSERT문이 아니라.... 이렇게 SELECT로 할 때는 원래의 INSERT문에 들어가는 VALUES는 들어가지 않고 당연한 얘기로 INSERT할 컬럼수와 SELECT하는 컬럼수 및 타입이 동일해야 된다.

SQL책하나 보고 좀 감오나 했더니 복잡한 쿼리 오니까 다시 헷갈리는 구만...
Posted by 1010
02.Oracle/DataBase2009. 1. 22. 17:38
반응형

1. 날짜함수
 
 1)오라클의 날짜 형식
 
 우선은 날짜 함수를 들어가기전에 오라클의 날짜 형식이 어떻게 구성되나 알아보도록 하겠습니다.
 오라클은 날짜를 아래와 같이 내부적인 숫자 형식으로 관리됩니다.
 
 Centry.year.month.day.hours.minutes.seconds
 
 기본적으로 입력되는 형식 및 display 형식은 ''''DD-MON-YY'''' 이며,
 유효날짜는 January 1,4712 B.C ~ December 31,4712 A.D 사이입니다.
 머 여러분들이 사용하시기엔 무리없는 (^^;) 날짜겠져..
 
 또한 오라클에서는 현재 날짜와 시간을 리턴해주는 날짜 함수가 있습니다.
 아마 앞으로도 자주 사용하시겠지만, SYSDATE 란 함수입니다.
 이함수를 DUAL (저번 강의때 설명했던걸로 기억나는데요, 잘 모르시는 분은 이전강의를 참고해주세요..^^)
 을 사용하면 현재의 날짜를 확인하실 수 있습니다.

 SQL> SELECT SYSDATE FROM DUAL;

 SYSDATE
 --------
 03/11/27
 
 2) 날짜와 숫자의 계산
 위에서 날짜는 숫자 형식으로 관리 된다고 했죠? 그래서 날짜와 날짜끼리
 날짜와 숫자끼리의 연산이 가능합니다.
 그 연산된 결과는 아래와 같습니다.
 
  2-1) 날짜 - 날짜 = 숫자
   날짜에서 날짜를 빼면 그 날짜사이의 일 수가 나옵니다.
   오랜만에 emp table을 함 예로들어볼께요? 
   emp Table의 입사일을 기준으로 사람들이 입사한 기간이 얼마나 되나 함 알아볼까요?
  
   SQL> SELECT ENAME, HIREDATE, SYSDATE - HIREDATE
     2  FROM EMP;
  
   ENAME      HIREDATE SYSDATE-HIREDATE
   ---------- -------- ----------------
   SMITH      80/12/17       8380.01446
   ALLEN      81/02/20       8315.01446
   WARD       81/02/22       8313.01446
   JONES      81/04/02       8274.01446
   MARTIN     81/09/28       8095.01446
   BLAKE      81/05/01       8245.01446
   CLARK      81/06/09       8206.01446
   SCOTT      87/04/19       6066.01446
   KING       81/11/17       8045.01446
   TURNER     81/09/08       8115.01446
   ADAMS      87/05/23       6032.01446
   JAMES      81/12/03       8029.01446
   FORD       81/12/03       8029.01446
   MILLER     82/01/23       7978.01446
  
   위의 결과에서와 같이 SMITH와 같은 경우는 입사한지 현재일 기준으로 8380일이 지났음을 알수 있습니다.
  
  2-2) 날짜 + 날짜 => 에러 발생
   날짜와 날짜끼리는 더하기가 안됩니다.

   SQL> SELECT ENAME, HIREDATE, SYSDATE +  HIREDATE
     2   FROM EMP;
   SELECT ENAME, HIREDATE, SYSDATE +  HIREDATE
                                   *
   1행에 오류:
   ORA-00975: 날짜와 날짜의 가산은 할 수 없습니다
 
  2-3) 날짜 + 숫자 = 날짜
   날짜에 숫자를 더하면 해당 날짜에 숫자만큼의 기간이 더해집니다. (2003/11/27일에 테스트한것입니다.)
  
   SQL> SELECT SYSDATE + 2 FROM DUAL;
  
   SYSDATE+2
   --------
   03/11/29  
 
  2-4) 날짜 - 숫자 = 날짜
   날짜에 숫자를 빼면 해당 숫자만큼의 기간이 빼져서 나오게 됩니다.
   SQL> SELECT SYSDATE + 2 FROM DUAL;

   SYSDATE-2
   --------
   03/11/25
 
 
 
 그러면 본격적으로 날짜 함수에 대해서 들어가 볼까요?

 2) 날짜 함수
  가) ADD_MONTHS : 주어진 일자에 개월 단위의 가감을 원할때 사용합니다.
 
  EMP 테이블에서 SIMTH 직원의 입사일을 가지고 예를 들어보겠습니다.
  입사일을 두달씩 더하고 빼보겠습니다.
 
    1  SELECT ENAME, HIREDATE,
    2         ADD_MONTHS(HIREDATE, 2),
    3         ADD_MONTHS(HIREDATE, -2)
    4  FROM
    5         EMP
    6  WHERE
    7*        ENAME = ''''SMITH''''
  SQL> /
 
  ENAME      HIREDATE ADD_MONT ADD_MONT
  ---------- -------- -------- --------
  SMITH      80/12/17 81/02/17 80/10/17  
   
  결과를 보시면 알지만  SMITH 직원의 입사일은 80년 12월 17일 이지만 ADD_MONTHS 함수를 이용하여 2달을 더하면
  81년 2월 17일 두달을 빼면 80년 10월 17일이 나옴을 확인할 수 있습니다.
 
  나) MONTHS_BETWEEN : 주어진 두개의 일자 간격이 몇 개월인지를 보여줍니다.
 
  EMP 테이블에서 입사일자가 현재 일자로부터 몇개월이 됐는지 알아보겠습니다.
 
   SQL> SELECT ENAME, HIREDATE, SYSDATE, MONTHS_BETWEEN(SYSDATE, HIREDATE)
     2  FROM EMP;
  
   ENAME      HIREDATE SYSDATE  MONTHS_BETWEEN(SYSDATE,HIREDATE)
   ---------- -------- -------- --------------------------------
   SMITH      80/12/17 03/12/10                       275.806019
   ALLEN      81/02/20 03/12/10                       273.709244
   WARD       81/02/22 03/12/10                       273.644728
   JONES      81/04/02 03/12/10                       272.289889
   MARTIN     81/09/28 03/12/10                        266.45118
   BLAKE      81/05/01 03/12/10                       271.322148
   CLARK      81/06/09 03/12/10                       270.064083
   SCOTT      87/04/19 03/12/10                       199.741502
   KING       81/11/17 03/12/10                       264.806019
   TURNER     81/09/08 03/12/10                       267.096341
   ADAMS      87/05/23 03/12/10                        198.61247
  
   ENAME      HIREDATE SYSDATE  MONTHS_BETWEEN(SYSDATE,HIREDATE)
   ---------- -------- -------- --------------------------------
   JAMES      81/12/03 03/12/10                       264.257631
   FORD       81/12/03 03/12/10                       264.257631
   MILLER     82/01/23 03/12/10                        262.61247 
 
  다) LAST_DAY : 주어진 일자가 포함된 월의 말일을 알수 있습니다.
 
  현재날짜를 (2003-12-10) 통해서 월말이 어떻게 되는지 확인해보도록 하겠습니다.
 
  SQL> SELECT SYSDATE, LAST_DAY(SYSDATE) FROM DUAL;
 
  SYSDATE  LAST_DAY
  -------- --------
  03/12/10 03/12/31

  말일이 12월 31일임을 알 수 있습니다.
 
  라) SYSTIMESTAMP : DATABASE의 TIMEZONE을 포함한 시스템 날짜를 보여준다.
 
  SQL> SELECT SYSTIMESTAMP FROM DUAL;

  SYSTIMESTAMP
  ---------------------------------------------------------------------------
  03/12/11 00:07:32.000001 +09:00

  바) NEXT_DAY
    
  SYNTAX : NEXT_DAY (DATE, CHAR)
 
  DATE : 일자
  CHAR : 요일을 말합니다.(월/화/수/목/금/토/일) 위에 월요일 이렇게 해도 상관없습니다.
  이것은 DATABASE의 LANGUAGE 와 관련있습니다.
  지금 제가 테스트 하는 것은 한글로 셋팅되어 있기 때문에 가능한거구여...
  영문으로 셋팅되어 있으면.. MONDAY,TUESDAY.... 머 이렇게 되어야겠져..^^

  NEXT_DAY는 입력한 DATE(일자) 다음 주 입력한 요일의 일자를 보여줍니다.
 
  아래의 예를 보면 12월 10일 다음주 목요일의 날짜를 보여주는 것입니다.
 
  설명하려니 좀 어렵네여..ㅋㅋ 아래의 예를 보면 쉽게 이해되실듯..ㅋㅋ
   
  SQL> SELECT NEXT_DAY(SYSDATE,''''목요일'''') FROM DUAL;

  NEXT_DAY
  --------
  03/12/18
 
2. 변환함수
 : 오라클에서는 문자와 숫자, 문자와 날짜간의 데이터형 변환을 위해 함수를 제공합니다.
   숫자나 날짜가 문자로 변환되는데 필요한 함수가 TO_CHAR 이며,
   문자가 숫자로 변형될때는 TO_NUMBER,
   문자가 일자로 변형될 때 TO_DATE를 사용합니다.
   그럼 예제를 통하여 자세히 알아보겠습니다.
  
   1) TO_CHAR : 날짜를 문자로 바꾸어줍니다.
     
      SYNTAX : TO_CHAR (DATE, FORMAT)
     
      FORMAT은 DATE형을 문자로 바꿀때 쓰이는 변환 형식을 말합니다.
      자주쓰이는 것에 대해서 예와 함께 설명하도록 하겠습니다.
     
  가) YYYY 또는 SYYYY : 년도, S를 지정하면 기원전 년도에 - 가 붙음.
  
  SQL> SELECT TO_CHAR(SYSDATE, ''''YYYY''''), TO_CHAR(SYSDATE, ''''SYYYY'''')
    2  FROM DUAL;
 
  TO_CHAR(SYSDATE, ''''YYYY'''') TO_CHAR(SYSDATE, ''''SYYYY'''')
  ------------------------ ---------------------------
  2003                     2003
 
  나) YYY, YY, Y  : 년의 아래 3자리, 2자리, 1자리를 나타냅니다. 
  SQL> SELECT TO_CHAR(SYSDATE, ''''YYY''''), TO_CHAR(SYSDATE, ''''YY''''), TO_CHAR(SYSDATE, ''''Y'''')
    2  FROM DUAL;
 
  TO_ TO T
  --- -- -
  003 03 3
 
  다) SYEAR, YEAR : 년도를 철자로 나타냅니다.

  SQL> SELECT TO_CHAR(SYSDATE, ''''SYEAR''''), TO_CHAR(SYSDATE, ''''YEAR'''') FROM DUAL;

  TO_CHAR(SYSDATE,''''SYEAR'''')             TO_CHAR(SYSDATE,''''YEAR'''')
  ---------------------------------    ---------------------------------
        TWO THOUSAND THREE                   TWO THOUSAND THREE

  라) Q : 입력일자의 분기를 나타냅니다.
  SQL> SELECT TO_CHAR(SYSDATE, ''''Q'''') FROM DUAL;
 
  T
  -
  4 
 
  마) MM : 월을 나타냅니다.
  SQL> SELECT TO_CHAR(SYSDATE, ''''MM'''') FROM DUAL;
 
  TO
  --
  12 

  바) MONTH, MON : 월의 명칭, 3문자의 단축형을 나타냅니다.
  SQL> SELECT TO_CHAR(SYSDATE, ''''MONTH''''), TO_CHAR(SYSDATE, ''''MON'''') FROM DUAL;
 
  TO_CHAR(S TO_
  --------- ---
  DECEMBER  DEC
 
  사) DDD, DD, D : 년, 월, 주의 몇번째 날인가를 보여줌

  SQL> SELECT TO_CHAR(SYSDATE, ''''DDD''''), TO_CHAR(SYSDATE, ''''DD''''), TO_CHAR(SYSDATE, ''''D'''') FROM DUAL;
 
  TO_ TO T
  --- -- -
  345 11 5
 
  아) DAY, DY : 요일 또는 3문자의 단축형

  SQL> SELECT TO_CHAR(SYSDATE, ''''DAY''''), TO_CHAR(SYSDATE, ''''DY'''') FROM DUAL;
 
  TO_CHA TO
  ------ --
  목요일 목
 
  자) AM, PM : 오전 / 오후를 표시한다.

  SQL> SELECT TO_CHAR(SYSDATE, ''''AM''''), TO_CHAR(SYSDATE, ''''PM'''') FROM DUAL;
 
  TO_C TO_C
  ---- ----
  오전 오전
 
  차) HH, HH12 :  시각 (1-12)

  SQL> SELECT TO_CHAR(SYSDATE, ''''HH''''), TO_CHAR(SYSDATE, ''''HH12'''') FROM DUAL;
 
  TO TO
  -- --
  12 12
 
  카) HH24 : 시각 (0-23)

  SQL> SELECT TO_CHAR(SYSDATE, ''''HH24'''') FROM DUAL;
 
  TO
  --
  00 

  타) MI : 분

  SQL> SELECT TO_CHAR(SYSDATE, ''''MI'''') FROM DUAL;
 
  TO
  --
  34 

  하) SS : 초
 
  SQL> SELECT TO_CHAR(SYSDATE, ''''SS'''') FROM DUAL;
 
  TO
  --
  57 
 
  물론 위의 포멧을 적절히 조합시킬 수 있습니다.
  현재 시스템 날짜의 년월일 시분초 까지 한번 나타내도록 하겠습니다.

  SQL>  SELECT TO_CHAR(SYSDATE, ''''YYYY/MM/DD HH24:MI:SS'''') FROM DUAL;
 
  TO_CHAR(SYSDATE,''''YY
  -------------------
  2003/12/11 00:36:27 

 2) TO_CHAR (NUMBER, FORMAT) : 숫자를 문자로 변환할때도 TO_CHAR 함수를 사용합니다.
    숫자용 포멧은 아래와 같습니다.
   
    가) 9 : 숫자 출력
    나) 0 : 숫자 앞에 0 표시
    다) . : 소수점 자리 표시
    라) , : 지정한 위치에 , 표시
    마) $ : 달러 표시
    바) L : 국가별 화폐단위표시
    사) MI : 오른쪽에 마이너스 표시


    그럼 위의 포멧을 적용한 예를 살펴보겠습니다.   
   
   SQL> SELECT
     2  TO_CHAR(1234,''''09,999''''),
     3  TO_CHAR(1234.56,''''99,999.99''''),
     4  TO_CHAR(1234,''''$99,999''''),
     5  TO_CHAR(1234,''''L99,999''''),
     6  TO_CHAR(-1234,''''99,999MI'''')
     7  FROM DUAL;
  
   TO_CHAR TO_CHAR(12 TO_CHAR( TO_CHAR(1234,''''L99 TO_CHAR
   ------- ---------- -------- ----------------- -------
    01,234   1,234.56   $1,234           ₩1,234  1,234-   

 3) TO_NUMBER(CHAR, FORMAT) :  숫자로 변환가능한 문자열을 숫자로 변환시켜줍니다.
    FORMAT은 2) TO_CHAR (NUMBER, FORMAT)에서 사용했던 FORMART을 사용합니다.
   
  SQL> SELECT
    2  TO_NUMBER(''''1234''''),
    3  TO_NUMBER(''''123,123'''',''''999,999'''')
    4  FROM DUAL;
 
  TO_NUMBER(''''1234'''') TO_NUMBER(''''123,123'''',''''999,999'''')
  ----------------- ------------------------------
               1234                         123123   
 4) TO_DATE(CHAR, FROMAT) : 문자를 날짜로 변환시켜주며, DATE형의 문자형 변환시와 반대지만 사용형식은 동일합니다.
 
  SQL> SELECT TO_DATE(''''2003/12/11 00:36:27'''', ''''YYYY/MM/DD HH24:MI:SS'''') FROM DUAL;
 
  TO_DATE(
  --------
  03/12/11

Posted by 1010
02.Oracle/DataBase2009. 1. 19. 13:43
반응형

import java.sql.Clob;
import weblogic.jdbc.common.OracleClob;
import oracle.jdbc.driver.OracleResultSet;
import oracle.sql.CLOB;
import org.apache.commons.dbcp.DelegatingResultSet;


String query1 = "select content from "+table+" where no="+ no + " for update";

con = getConnection();
con.setAutoCommit(false);//꼭 setAutoCommit을 false로 지정

pstmt = con.prepareStatement(query1);
rs = pstmt.executeQuery();

while (rs.next()){

 /**********************************************
 * Tomcat
 * ********************************************/
 Clob clob = rs.getClob(1);
 Writer writer = ((CLOB)clob).getCharacterOutputStream();
 Reader src = new CharArrayReader(contentData.toCharArray());
 char[] buffer = new char[1024];
 int read = 0;
 while ( (read = src.read(buffer,0,1024)) != -1)
 {
   writer.write(buffer, 0, read); // write clob.
 }
 src.close();               
 writer.close();   


 /**********************************************
 * weblogic
 * ********************************************/
 Clob clob = rs.getClob(1);
 Writer writer = ((OracleClob)clob).getCharacterOutputStream();
 Reader src = new CharArrayReader(contentData.toCharArray());
 char[] buffer = new char[1024];
 int read = 0;
 while ( (read = src.read(buffer,0,1024)) != -1)
 {
   writer.write(buffer, 0, read); // write clob.
 }
 src.close();               
 writer.close();


 /**********************************************
 * sunone
 * ********************************************/
 Clob clob = rs.getClob(1);
 Writer characterStream = clob.setCharacterStream(0);
 characterStream.write(contentData);
 characterStream.close();


 /**********************************************
 * interstage

 * ********************************************/

 CLOB clob = ((OracleResultSet)((DelegatingResultSet)rs).getDelegate()).getCLOB(1);
 BufferedWriter writer = new BufferedWriter(clob.getCharacterOutputStream());
 writer.write(form.getContent());
 writer.close();

}

con.commit();
con.setAutoCommit(true);


출처 : http://www.okjsp.pe.kr/seq/98774

Posted by 1010
02.Oracle/DataBase2009. 1. 19. 13:43
반응형

1. 문자 함수
 1-1) CHR
 1-2) CONCAT 함수
 1-3) INITCAP 함수
 1-4) LOWER 함수
 1-5) LPAD 함수
 1-6) LTRIM 함수
 1-7) NLS_INITCAP 함수
 1-8) NLS_LOWER 함수
 1-9) NLSSORT 함수
 1-10) NLS_UPPER 함수
 1-11) REPLACE 함수
 1-12) RPAD 함수
 1-13) RTRIM 함수
 1-14) SOUNDEX 함수
 1-15) SUBSTR 함수
 1-16) TRANSLATE 함수
 1-17) TREAT 함수
 1-18) TRIM 함수
 1-19) UPPER 함수
 1-20) ASCII 함수
 1-21) INSTR 함수
 1-22) LENGTH 함수


2. 날짜 처리함수(datetime function)
 2-1) ADD_MONTHS 함수
 2-2) CURRENT_DATE 함수
 2-3) URRENT_TIMESTAMP 함수
 2-4) DBTIMEZONE 함수
 2-5) EXTRACT(datetime) 함수
 2-6) FROM_TZ 함수
 2-7) LAST_DAY 함수
 2-8) LOCALTIMESTAMP 함수 
 2-9) MONTHS_BETWEEN 함수
 2-10) NEW_TIME 함수
 2-11) NEXT_DAY 함수
 2-12) NUMTODSINTERVAL 함수
 2-13) NUMTOYMINTERVAL 함수
 2-14) ROUND(date) 함수
 2-15) SESSIONTIMEZONE 함수
 2-16) SYS_EXTRACT_UTC 함수
 2-17) SYSDATE 함수
 2-18) SYSTIMESTAMP 함수
 2-19) TO_DSINTERVAL 함수
 2-20) TO_TIMESTAMP 함수
 2-21) TO_TIMESTAMP_TZ 함수
 2-22) TO_YMINTERVAL 함수
 2-23) TRUNC(date) 함수
 2-24) TZ_OFFSET 함수


3.데이터 형 변환 함수(conversion function)
 3-1) ASCIISTR 함수
 3-2) BIN_TO_NUM 함수
 3-3) CAST 함수
 3-4) CHARTOROWID 함수
 3-5) COMPOSE 함수 
 3-6) CONVERT 함수
 3-7) HEXTORAW 함수
 3-8) NUMTODSINTERVAL 함수
 3-9) NUMTOYMINTERVAL 함수
 3-10) RAWTOHEX 함수
 3-11) RAWTONHEX 함수
 3-12) ROWIDTOCHAR 함수
 3-13) ROWIDTONCHAR 함수
 3-14) TO_CHAR(character) 함수
 3-15) TO_CLOB 함수
 3-16) TO_DSINTERVAL 함수
 3-17) TO_LOB 함수
 3-18) TO_MULTI_BYTE 함수
 3-19) TO_NCHAR(character) 함수
 3-20) TO_NCHAR(datetime) 함수
 3-21) TO_NCHAR(number) 함수
 3-22) TO_NCLOB 함수
 3-23) TO_NUMBER 함수
 3-24) TO_SINGLE_BYTE 함수
 3-25) TO_YMINTERVAL 함수
 3-26) TRANSLATE ... USING 함수
 3-27) UNISTR 함수


4. 기타함수(miscellaneous single row function)
 4-1) BFILENAME 함수
 4-2) COALESCE 함수
 4-3) DECODE 함수
 4-4) DEPTH 함수
 4-5) DUMP 함수
 4-6) EMPTY_BLOB 함수
 4-7) EMPTY_CLOB 함수
 4-8) EXISTSNODE 함수
 4-9) EXTRACT(XML) 함수
 4-10) EXTRACTVALUE 함수
 4-11) GREATEST 함수
 4-12) LEAST 함수
 4-13) NLS_CHARSET_DECL_LEN 함수
 4-14) NLS_CHARSET_ID 함수
 4-15) NLS_CHARSET_NAME 함수
 4-16) NULLIF 함수
 4-17) NVL2 함수
 4-18) PATH 함수
 4-19) SYS_CONNECT_BY_PATH 함수
 4-20) SYS_CONTEXT 함수
 4-21) SYS_DBURIGEN 함수
 4-22) SYS_EXTRACT_UTC 함수
 4-23) SYS_GUID 함수
 4-24) SYS_XMLAGG 함수
 4-25) SYS_XMLGEN 함수
 4-26) UID 함수
 4-27) USER 함수
 4-28) USERENV 함수
 4-29) VSIZE 함수
 4-30) XMLAGG 함수
 4-31) XMLCOLATTVAL 함수
 4-32) XMLCONCAT 함수
 4-33) XMLFOREST 함수
 4-34) XMLELEMENT 함수


5.그룹함수  Aggregate 함수
 5-1) AVG* 함수
 5-2) CORR* CORR* 함수
 5-3) COUNT* 함수
 5-4) COVAR_POP 함수
 5-5) COVAR_SAMP 함수
 5-6) CUME_DIST 함수
 5-7) DENSE_RANK 함수
 5-8) FIRST 함수
 5-9) GROUP_ID 함수
 5-10) Grouping 함수
 5-11) GROUPING_ID 함수
 5-12) LAST 함수
 5-13) MAX 함수
 5-14) MIN 함수
 5-15) PERCENTILE_CONT 함수
 5-16) PERCENTILE_DISC 함수
 5-17) PERCENT_RANK 함수
 5-18) RANK 함수
 5-19) REGR_(linear regression) function* 함수
 5-20) STDDEV 함수
 5-21) STDDEV_POP 함수
 5-22) STDDEV_SAMP 함수
 5-23) SUM 함수
 5-24) VAR_POP 함수
 5-25) VAR_SAMP 함수
 5-26) VARIANCE 함수
 5-27) Grouping sets 함수


6. Analytic 함수
 6-1) AVG* 함수
 6-2) CORR* CORR* 함수
 6-3) COUNT* 함수
 6-4) COVAR_SAMP 함수
 6-5) CUME_DIST 함수
 6-6) DENSE_RANK 함수
 6-7) FIRST 함수
 6-8) FIRST_VALUE 함수
 6-9) LAG 함수
 6-10) LAST_VALUE 함수
 6-11) LEAD 함수
 6-12) NTILE 함수
 6-13) RATIO_TO_REPORT 함수
 6-14) ROW_NUMBER 함수


7. 객체 참조 함수
 7-1) REF 타입


8. PseudoColumn을 의미하는 것
 8-1) ROWID 컬럼
 8-2) ROWNUM 컬럼


1-1) CHR 함수
--------------------------------------------------------------------------------

입력된 수의 바이너리 코드에 해당하는 문자를 반환한다.

【예제】
SQL> select chr(75)||chr(79)||chr(82)||chr(69)||chr(65)
   2    from dual;

CHR(7
-----
KOREA

SQL>

1-2) CONCAT 함수
--------------------------------------------------------------------------------

 입력되는 두 문자열을 연결하여 반환한다.
 입력되는 두 문자열의 타입이 다를 경우 다음과 같이 반환된다.

첫 번째 문자열 타입  두 번째 문자열 타입  반환되는 문자열 타입 CLOB  NCLOB  NCLOB NCLOB  NCHAR  NCLOB NCLOB  CHAR  NCLOB NCHAR  CLOB  NCLOB


【예제】
SQL> select concat('Republic of',' KOREA') from dual;

CONCAT('REPUBLICO
-----------------
Republic of KOREA

SQL>  


1-3) INITCAP 함수
--------------------------------------------------------------------------------

initcap('string‘) 함수는 입력 문자열 중에서
각 단어의 첫 글자를 대문자로 나머지는 소문자로 변환한 스트링을 반환한다

【예제】
SQL> select initcap('beautiful corea') from dual;

INITCAP('BEAUTI
---------------
Beautiful Corea

SQL>


1-4) LOWER 함수
--------------------------------------------------------------------------------

lower(string) 함수는 입력된 문자열을 소문자로 반환한다.

【예제】
SQL> select lower('Beautiful COREA') from dual;

LOWER('BEAUTIFU
---------------
beautiful corea

SQL>  


1-5) LPAD 함수
--------------------------------------------------------------------------------

lpad(char1,n,char2) 함수는
지정된 길이 n에서 문자 char1으로 채우고
남은 공간은 왼쪽부터 char2로 채워서 출력한다.

【형식】
lpad (char1, n [, char2] )

【예제】
SQL> select lpad ('Corea', 12, '*') from dual;

LPAD('COREA'
------------
*******Corea

SQL>


1-6) LTRIM 함수
--------------------------------------------------------------------------------

 LTRIM(문자열, 문자)함수는 문자열중
좌측으로부터 특정문자와 일치하는 문자를 제거하고 출력한다.

【형식】
ltrim(char [,set] )

【예제】
SQL> select LTRIM('xyxXxyLAST WORD','xy') from dual;

LTRIM('XYXXX
------------
XxyLAST WORD

SQL>


1-7) NLS_INITCAP 함수
--------------------------------------------------------------------------------

nls_initcap(‘string’) 함수는 입력 문자열 중에서
 각 단어의 첫 글자를 대문자로
           나머지는 소문자로 변환한 스트링을 반환한다.
 단어의 white space나 character가 알파뉴메릭이 아니더라도 상관없다.
nlsparam는 ‘nls_sort = sort'와 같은 형식을 가지며,
 여기서 sort는 linguistic sort sequence나 binary중의 하나이다.

【형식】
nls_initcap ( char [,'nlsparam'] )

【예제】
SQL> select nls_initcap('beautiful corea', 'nls_sort=binary')
  2  from dual;

NLS_INITCAP('BE
---------------
Beautiful Corea

SQL> select nls_initcap('beautiful corea','nls_sort=XDutch')
  2  from dual;

NLS_INITCAP('BE
---------------
Beautiful Corea

SQL>


1-8) NLS_LOWER 함수
--------------------------------------------------------------------------------

nls_lower(‘string’) 함수는 입력 문자열을 모두 소문자로 변환한 스트링을 반환한다. 
 단어의 white space나 character가 알파뉴메릭이 아니더라도 상관없다.
nlsparam는 ‘nls_sort = sort'와 같은 형식을 가지며,
 여기서 sort는 linguistic sort sequence나 binary중의 하나이다.

【형식】
nls_lower ( char [,'nlsparam'] )

【예제】
SQL> select nls_lower('CITTA''','nls_sort=XGerman') from dual;

NLS_LO
------
citta'

SQL>


1-9) NLSSORT 함수
--------------------------------------------------------------------------------

nlssort(‘string’) 함수는 입력 문자열을 소팅하여 스트링을 반환한다.
  단어의 white space나 character가 알파뉴메릭이 아니더라도 상관없다.
nlsparam는 ‘nls_sort = sort'와 같은 형식을 가지며,
 여기서 sort는 linguistic sort sequence나 binary중의 하나이다.

【형식】
nlssort ( char [,'nlsparam'] )

【예제】
SQL> select * from emp
  2    order by nlssort(name, 'nls_sort=XDanish');

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1104 jijoe             220        100
      1103 kim               250        100

SQL>


1-10) NLS_UPPER 함수
--------------------------------------------------------------------------------

nls_upper(‘string’) 함수는 입력 문자열을 모두 소문자로 변환한 스트링을 반환한다.
  단어의 white space나 character가 알파뉴메릭이 아니더라도 상관없다.
nlsparam는 ‘nls_sort = sort'와 같은 형식을 가지며,
 여기서 sort는 linguistic sort sequence나 binary중의 하나이다.

【형식】
nls_upper ( char [,'nlsparam'] )

【예제】
SQL> select nls_upper('gro?e') from dual;

NLS_U
-----
gro?e

SQL> select nls_upper('gro?e','nls_sort=XGerman')
  2  from dual;

NLS_UP
------
grosse

SQL>


1-11) REPLACE 함수
--------------------------------------------------------------------------------

이 함수는 문자열에서 지정한 문자를 다른 문자로 치환한다.
  치환될 문자를 지정하지 않으면 해당 문자를 삭제한다.

【형식】
replace (char, search_string [, replacement_string] )

【예제】
SQL> select replace('aaabb','a','b') from dual;

REPLA
-----
bbbbb

SQL> select replace('aaabb','a') from dual;

RE
--
bb

SQL>


1-12) RPAD 함수
--------------------------------------------------------------------------------

rpad(char1,n,char2) 함수는 지정된 길이 n에서 문자 char1으로 채우고
남은 공간은 오른쪽부터 char2로 채워서 출력한다.

【형식】
rpad (char1, n [, char2] )

【예제】
SQL> select rpad('Corea',12,'*') from dual;

RPAD('COREA'
------------
Corea*******

SQL>


1-13) RTRIM 함수
--------------------------------------------------------------------------------

 RTRIM(문자열, 문자)함수는 문자열중
 우측으로부터 특정문자와 일치하는 문자를 제거하고 출력한다.

【형식】
rtrim(char [,set] )

【예제】
SQL> select RTRIM('BROWINGyxXxy','xy') "RTRIM example" from dual;

RTRIM exam
----------
BROWINGyxX

SQL>


1-14) SOUNDEX 함수
--------------------------------------------------------------------------------

soundex(‘char’) 함수는 char과 같은 발음의 이름을 표현한다.

【예제】
SQL> select name from emp;

NAME
----------
Cho
Joe
kim
jijoe

SQL> select name from emp
  2  where soundex(name) = soundex('jo');

NAME
----------
Joe

SQL>


1-15) SUBSTR 함수
--------------------------------------------------------------------------------

substr(str,m,n) 함수는 문자열 str 중에서 특정 위치 m으로부터 특정 길이n 만큼의 문자를 출력한다.
  m이 0이나 1이면 문자열의 첫글자를 의미하고,
  n이 생략되면 문자열의 끝까지를 의미한다.
  m이 음수이면 뒤쪽으로부터의 위치를 의미한다.

 SUBSTRB는 character 대신 byte를 사용하고,
 SUBSTDC는 unicode를 사용하며,
 SUBSTR2는 UCS2 codepoint를 사용하고,
 SUBSTR4는 UCS4 codepoint를 사용한다.

【형식】
{SUBSTR|SUBSTRB|SUBSTRC|SUNBSTD2|SUBSTR4}
  ( string, position [,substring_length] )

【예제】
SQL> select substr('abcdesfg', 3,2) from dual;

SU
--
cd

SQL> select substr('abcdefg',3) from dual;

SUBST
-----
cdefg

SQL> select substr('abcdefg', -3,2) from dual; ☜ 뒤에서 3번째부터 2글자를 의미한다.
SU
--
ef

SQL>


1-16) TRANSLATE 함수
--------------------------------------------------------------------------------

TRANSLATE (‘char’,‘from_string’,‘to_string’) 함수는
 char 내에 포함된 문자중 from_string에 지정한 모든 각각의 문자를
                         to_string문자로 각각 변경한다.

【형식】
TRANSLATE ('char','from_string','to_string')

【예제】
SQL> select translate('ababccc','c','d') from dual;

TRANSLA
-------
ababddd

SQL> select translate('2KRW229',
  2  '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
  3  '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') from dual;

TRANSLA
-------
9XXX999

SQL> select translate('2KRW229',
  2  '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789')
  3  from dual;

TRAN
----
2229

SQL>


1-17) TREAT 함수
--------------------------------------------------------------------------------

TREAT 함수는 선언된 타입을 변경함으로써, 수퍼타입을 서브타입인 것처럼 처리할 수 있도록 한다.

【형식】
TREAT ( expr AS [ REF] [schema . ] type )

【예제】
SQL> select x.p.empno from person_table p;
select x.p.empno from person_table p
       *
ERROR at line 1:
ORA-00904: "X"."P"."EMPNO": invalid identifier
 
SQL> select treat(x.p as employee).empno empno,
  2               x.p.last_name last_name
  3   from person_table x;
 
     EMPNO LAST_NAME
---------- --------------------
           Seoul
      1234 Inchon
      5678 Arirang
 
SQL>

【예제】
SQL> select name, TREAT(VALUE(p) AS employee_t).salary salary
  2   FROM person p;

NAME                        SALARY
----------------------   ---------
Bob   
Joe                         100000
Tim                           1000

SQL>


1-18) TRIM 함수
--------------------------------------------------------------------------------

 이 함수는 LTRIM과 RTRIM 함수를 결합한 형태로
  문자값의 왼쪽 또는 오른쪽 부분에 정의한 문자를 절삭하여 출력한다.
LEADING은 LTRIM처럼 문자열 왼쪽의 문자를 지정하여 절삭하고,
 TRAILING은 RTRIM처럼 문자열 오른쪽 문자를 지정하여 절삭한다.
 BOTH는 왼쪽과 오른쪽 문자를 지정하여 절삭한다.

【형식】
TRIM ([{{{LEADING|TRAILING|BOTH} [trim_char] } | trim_char} FROM]
      trim_source )

【예제】
SQL> select trim (0 from 000123400) from dual;

TRIM
----
1234

SQL> select trim(trailing 'a' from 'abca') from dual;

TRI
---
abc

SQL> select trim(leading 'a' from 'abca') from dual;

TRI
---
bca

SQL> select trim(both 'a' from 'abca') from dual;

TR
--
bc

SQL>


1-19) UPPER 함수
--------------------------------------------------------------------------------

upper(string) 함수는 입력된 문자열을 대문자로 반환한다.

【예제】
SQL> select upper('Beautiful COREA') from dual;

UPPER('BEAUTIFU
---------------
BEAUTIFUL COREA

SQL>


1-20) ASCII 함수
--------------------------------------------------------------------------------

ASCII
ascii(‘char’) 함수는 주어진 char의 첫 글자의 아스키 값을 반환한다.
 char의 타입은 char, varchar2, nchar, nvarchar2중의 하나이어야 한다.

【예제】
SQL> select ascii('Korea') from dual;

ASCII('KOREA')
--------------
            75

SQL> select ascii('K') from dual;

ASCII('K')
----------
        75

SQL>


1-21) INSTR 함수
--------------------------------------------------------------------------------

이 함수는 문자 스트링 중에서
지정한 문자가 가장 처음 나타나는 위치를 숫자로 출력한다.

【형식】
{INSTR|INSTRB|INSTRC|INSTR2|INSTR4}
  ( string, substring [, position [,occurrence] ] )

【예제】
SQL> select instr('Corea','e') from dual;

INSTR('COREA','E')
------------------
                 4

SQL> select instr('corporate floor','or',3,2) from dual;

INSTR('CORPORATEFLOOR','OR',3,2)
--------------------------------
                              14

SQL> select instrb('corporate floor','or',5,2) from dual;

INSTRB('CORPORATEFLOOR','OR',5,2)
---------------------------------
                               14

SQL>


1-22) LENGTH 함수
--------------------------------------------------------------------------------

 LENGTH(char) 함수는 char의 길이를 반환한다.
LENGTHB는 character 대신 byte를 사용하고,
LENGTHC는 unicode를 사용하며,
LENGTH2는 UCS2 codepoint를 사용하고,
LENGTH4는 UCS4 codepoint를 사용한다.

【형식】
{LENGTH| LENGTHB| LENGTHC| LENGTH2| LENGTH4} (char)

【예제】
SQL> select length('Corea') from dual;

LENGTH('COREA')
---------------
              5

SQL> select lengthb('Corea') from dual;

LENGTHB('COREA')
----------------
               5

SQL>



2-1) ADD_MONTHS 함수
--------------------------------------------------------------------------------

ADD_MONTHS
 ADD_MONTHS(d, n)는 날짜 d에 n 개월을 더한 일자를 반환한다.

【예제】
SQL> select current_date today, add_months(current_date,1) "next month"
  2  from dual;

TODAY     next mont
--------- ---------
29-JUL-04 29-AUG-04

SQL>


2-2) CURRENT_DATE 함수
--------------------------------------------------------------------------------


 이 함수는 현재 session의 날짜 정보를 반환한다.
【예제】
SQL> select current_date from dual;

CURRENT_D
---------
31-JUL-04

SQL> select sessiontimezone from dual;

SESSIONTIMEZONE
--------------------------------------------------------------------------
+09:00

SQL> alter session set NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';

Session altered.

SQL> select current_date from dual;

CURRENT_DATE
--------------------
31-JUL-2004 09:31:57

SQL> alter session set time_zone='-5:0';

Session altered.

SQL> select sessiontimezone from dual;

SESSIONTIMEZONE
--------------------------------------------------------------------------
-05:00

SQL>


2-3) URRENT_TIMESTAMP 함수
--------------------------------------------------------------------------------

 이 함수는 현재 session의 날짜와 시간 정보를 반환한다.
 current_timestamp는 time zone까지 출력되지만,
 localtimestamp는 time zone은 출력되지 않는다.
【예제】
SQL> select current_timestamp, localtimestamp,
  2  current_date from dual;

CURRENT_TIMESTAMP
--------------------------------------------------------------------------
LOCALTIMESTAMP
--------------------------------------------------------------------------
CURRENT_D
---------
04-AUG-04 11.17.40.768776 AM +09:00
04-AUG-04 11.17.40.768776 AM
04-AUG-04

SQL>


2-4) DBTIMEZONE 함수
--------------------------------------------------------------------------------


데이터베이스 timezone을 반환한다.
【예제】
SQL> select dbtimezone from dual;

DBTIME
------
-07:00

SQL> select sessiontimezone from dual;

SESSIONTIMEZONE
--------------------------------------------------------------------------
+09:00

SQL>


2-5) EXTRACT(datetime) 함수
--------------------------------------------------------------------------------

특정 날짜/시간 값이나 날짜 값을 가진 표현식으로부터
  원하는 날짜 영역을 추출하여 출력한다.

【형식】
EXTRACT ({year|month|day|hour|minute|second|
         timezone_hour|timezone_minute|
         timezone_region|timezone_abbr}
 FROM {datetime_value_expr|interval_value_rxpr})

【예제】
SQL> select extract(year from date '2004-8-2') from dual;

EXTRACT(YEARFROMDATE'2004-8-2')
-------------------------------
                           2004

SQL>


2-6) FROM_TZ 함수
--------------------------------------------------------------------------------

이 함수는 timestamp 값을 timestamp with time zone 값으로 변환한다.

【형식】
FROM_TZ ( timestamp_value, time_zone_value)

【예제】
SQL> select from_tz(timestamp '2004-8-11 08:00:00','3:00') from dual;

FROM_TZ(TIMESTAMP'2004-8-1108:00:00','3:00')
--------------------------------------------------------------------------
11-AUG-04 08.00.00.000000000 AM +03:00

SQL>


2-7) LAST_DAY 함수
--------------------------------------------------------------------------------

 이 함수는 지정한 달의 마지막 날을 출력한다.

【형식】
LAST_DAY ( date )

【예제】
SQL> select sysdate, last_day(sysdate) "last day",
  2  last_day(sysdate)- sysdate "Days Left"
  3  from dual;

SYSDATE   last day   Days Left
--------- --------- ----------
04-AUG-04 31-AUG-04         27

SQL>


2-8) LOCALTIMESTAMP 함수
--------------------------------------------------------------------------------

이 함수는 timestamp의 현재 날짜와 시각을 출력한다.
 current_timestamp는 time zone까지 출력되지만,
 localtimestamp는 time zone은 출력되지 않는다.

【형식】
localtimestamp [(timestamp_precision)]

【예제】
SQL> select current_timestamp, localtimestamp,
  2  current_date from dual;

CURRENT_TIMESTAMP
--------------------------------------------------------------------------
LOCALTIMESTAMP
--------------------------------------------------------------------------
CURRENT_D
---------
04-AUG-04 11.17.40.768776 AM +09:00
04-AUG-04 11.17.40.768776 AM
04-AUG-04

SQL>
 
【예제】오류가 발생하는 이유를 잘 이해하자.
SQL> CREATE TABLE local_test(col1 TIMESTAMP WITH LOCAL TIME ZONE);

Table created.

SQL> INSERT INTO local_test VALUES
  2  (TO_TIMESTAMP(LOCALTIMESTAMP, 'DD-MON-RR HH.MI.SSXFF'));
(TO_TIMESTAMP(LOCALTIMESTAMP, 'DD-MON-RR HH.MI.SSXFF'))
              *
ERROR at line 2:
ORA-01830: date format picture ends before converting entire input string

SQL> INSERT INTO local_test VALUES
  2  (TO_TIMESTAMP(LOCALTIMESTAMP, 'DD-MON-RR HH.MI.SSXFF PM'));

1 row created.

SQL> select * from local_test;

COL1
--------------------------------------------------------------------------
04-AUG-04 11.33.58.183398 AM

SQL>



2-9) MONTHS_BETWEEN 함수
--------------------------------------------------------------------------------

 MONTHS_BETWEEN(date1,date2) 함수는 date1과 date로 나타내는
 날짜와 날짜 사이의 개월 수를 출력한다.

【예제】
SQL> select months_between
  2  (to_date('02-02-2004','MM-DD-YYYY'),
  3   to_date('01-01-2003','MM-DD-YYYY') ) "Months"
  4  FROM dual;

    Months
----------
13.0322581

SQL>


2-10) NEW_TIME 함수
--------------------------------------------------------------------------------

NEW_TIME(date,zone1,zone2) 함수는 date, zone1 시간대를 zone2 시간대로 출력한다.
여기서 사용되는 zone은 다음 중의 하나이다.

 AST,ADT : Atlantic Standard or Daylight Time
 BST,BDT : Bering Standard or Daylight Time
 CST,CDT : Central Standard or Daylight Time
 EST,EDT : Eastern Standard or Daylight Time
 GMT : Greenwich Mean Time
 HST,HDT : Alaska-Hawaii Standard or Daylight Time
 MST,MDT : Mountain Standard or Daylight Time
 NST : Newfoundland Standard Time
 PST,PDT : Pacific Standard or Daylight Time
 YST,YDT : Yukon Standard or Daylight Time

【예제】
SQL> alter session set nls_date_format =
  2  'DD-MON-YYYY HH24:MI:SS';

Session altered.

SQL> select NEW_TIME(TO_DATE(
  2  '11-10-04 01:23:33', 'MM-DD-YY HH24:MI:SS'),
  3  'AST', 'PST') FROM DUAL;

NEW_TIME(TO_DATE('11
--------------------
09-NOV-2004 21:23:33

SQL>



2-11) NEXT_DAY 함수
--------------------------------------------------------------------------------

NEXT_DAY(date,char) 함수는 date로부터 char로 명시한 가장 최근의 날짜를 출력한다.

【예제】
SQL> select next_day('02-AUG-2004','MONDAY') from dual;

NEXT_DAY('02-AUG-200
--------------------
09-AUG-2004 00:00:00

SQL>



2-12) NUMTODSINTERVAL 함수
--------------------------------------------------------------------------------

 NUMTODSINTERVAL(n,'char_expr') 함수는 n을 interval day to second로 변환하여 출력한다.
 char_expr은 다음 중의 하나이다.
  ‘DAY’
  ‘HOUR’
  ‘MINUTE’
  ‘SECOND’

【예제】
SQL> select numtodsinterval(100,'MINUTE') from dual;

NUMTODSINTERVAL(100,'MINUTE')
--------------------------------------------------------------------------
+000000000 01:40:00.000000000

SQL>

【예제】
SQL> connect scott/tiger
Connected.
SQL> select ename, hiredate,
  2  numtodsinterval(100,'day')+hiredate from emp;

ENAME      HIREDATE  NUMTODSIN
---------- --------- ---------
SMITH      17-DEC-80 27-MAR-81
ALLEN      20-FEB-81 31-MAY-81
WARD       22-FEB-81 02-JUN-81
JONES      02-APR-81 11-JUL-81
MARTIN     28-SEP-81 06-JAN-82
BLAKE      01-MAY-81 09-AUG-81
CLARK      09-JUN-81 17-SEP-81
SCOTT      19-APR-87 28-JUL-87
KING       17-NOV-81 25-FEB-82
TURNER     08-SEP-81 17-DEC-81
ADAMS      23-MAY-87 31-AUG-87
JAMES      03-DEC-81 13-MAR-82
FORD       03-DEC-81 13-MAR-82
MILLER     23-JAN-82 03-MAY-82

14 rows selected.

SQL>


2-13) NUMTOYMINTERVAL 함수
--------------------------------------------------------------------------------

NUMTOYMINTERVAL(n,'char_expr') 함수는 n을 interval year to month로 변환하여 출력한다.
 char_expr은 다음 중의 하나이다.
  ‘YEAR’
  ‘MONTH’

【예제】
SQL> select numtoyminterval(30,'month') from dual;

NUMTOYMINTERVAL(30,'MONTH')
---------------------------------------------------------------------------
+000000002-06

SQL>

【예제】
SQL> connect scott/tiger
Connected.
SQL> select ename,hiredate,
  2  numtoyminterval(30,'month')+hiredate from emp;

ENAME      HIREDATE  NUMTOYMIN
---------- --------- ---------
SMITH      17-DEC-80 17-JUN-83
ALLEN      20-FEB-81 20-AUG-83
WARD       22-FEB-81 22-AUG-83
JONES      02-APR-81 02-OCT-83
MARTIN     28-SEP-81 28-MAR-84
BLAKE      01-MAY-81 01-NOV-83
CLARK      09-JUN-81 09-DEC-83
SCOTT      19-APR-87 19-OCT-89
KING       17-NOV-81 17-MAY-84
TURNER     08-SEP-81 08-MAR-84
ADAMS      23-MAY-87 23-NOV-89
JAMES      03-DEC-81 03-JUN-84
FORD       03-DEC-81 03-JUN-84
MILLER     23-JAN-82 23-JUL-84

14 rows selected.

SQL>



2-14) ROUND(date) 함수
--------------------------------------------------------------------------------

이 함수는 날짜를 주어진 형식으로 반올림하는 함수이다.
 날짜 형식이 없으면 가장 가까운 날을 출력한다.

【형식】
ROUND( date [,fmt] )

【예제】
SQL> select localtimestamp, round(sysdate,'year') from dual;

LOCALTIMESTAMP
--------------------------------------------------------------------------
ROUND(SYS
---------
04-AUG-04 01.26.24.197977 PM
01-JAN-05

SQL> select localtimestamp,round(sysdate,'day') from dual;

LOCALTIMESTAMP
--------------------------------------------------------------------------
ROUND(SYS
---------
04-AUG-04 01.29.57.839269 PM
08-AUG-04

SQL> select localtimestamp,round(sysdate) from dual;

LOCALTIMESTAMP
--------------------------------------------------------------------------
ROUND(SYS
---------
04-AUG-04 01.30.11.552050 PM
05-AUG-04

SQL>


2-15) SESSIONTIMEZONE 함수
--------------------------------------------------------------------------------

이 함수는 현재 세션의 시간대역을 출력한다.

【예제】
SQL> select sessiontimezone, current_timestamp from dual;

SESSIONTIMEZONE
--------------------------------------------------------------------------
CURRENT_TIMESTAMP
--------------------------------------------------------------------------
+09:00
04-AUG-04 01.37.13.355873 PM +09:00

SQL> select sessiontimezone, tz_offset(sessiontimezone) from dual;

SESSIONTIMEZONE
--------------------------------------------------------------------------
TZ_OFFS
-------
+09:00
+09:00

SQL>


2-16) SYS_EXTRACT_UTC 함수
--------------------------------------------------------------------------------

sys_extract_utc(datetime_with_timezone) 함수는
UTC(coordinated universal time: Greenwich mean time) 시각을 반환한다.

【예제】
SQL> select systimestamp, sys_extract_utc(systimestamp) from dual;

SYSTIMESTAMP
--------------------------------------------------------------------------
SYS_EXTRACT_UTC(SYSTIMESTAMP)
--------------------------------------------------------------------------
06-AUG-04 02.41.39.258976 PM +09:00
06-AUG-04 05.41.39.258976 AM


SQL>


2-17) SYSDATE 함수
--------------------------------------------------------------------------------

이 함수는 오늘 현재 날짜와 시각을 출력한다.

【예제】
SQL> select sysdate, current_timestamp from dual;

SYSDATE
---------
CURRENT_TIMESTAMP
--------------------------------------------------------------------------
04-AUG-04
04-AUG-04 01.51.39.767156 PM +09:00

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

TO_CHAR(SYSDATE,'MM
-------------------
08-04-2004 13:53:18

SQL>


2-18) SYSTIMESTAMP 함수
--------------------------------------------------------------------------------

이 함수는 시스템의 날짜를 출력한다.

【예제】
SQL> select sysdate,systimestamp,localtimestamp from dual;

SYSDATE
---------
SYSTIMESTAMP
--------------------------------------------------------------------------
LOCALTIMESTAMP
--------------------------------------------------------------------------
04-AUG-04
04-AUG-04 01.58.06.346528 PM +09:00
04-AUG-04 01.58.06.346552 PM

SQL>


2-19) TO_DSINTERVAL 함수
--------------------------------------------------------------------------------

이 함수는 문자열을 interval day to second 형식으로 변환하는 함수이다.

【형식】
to_dsinterval ( char [ ‘nlsparam’] )

【예제】
SQL> select sysdate,
  2  sysdate+to_dsinterval('003 17:00:00') as "3days 17hours later"
  3  from dual;

SYSDATE   3days 17h
--------- ---------
04-AUG-04 08-AUG-04

SQL>


2-20) TO_TIMESTAMP 함수
--------------------------------------------------------------------------------

이 함수는 문자열을 timestamp 형식으로 변환하여 출력한다

【형식】
to_timestamp ( char [,fmt ['nlsparam'] ] )

【예제】
SQL> select to_timestamp('2004-8-20 1:30:00', 'YYYY-MM-DD HH:MI:SS')
  2  from dual;

TO_TIMESTAMP('2004-8-201:30:00','YYYY-MM-DDHH:MI:SS')
--------------------------------------------------------------------------
20-AUG-04 01.30.00.000000000 AM

SQL>



2-21) TO_TIMESTAMP_TZ 함수
--------------------------------------------------------------------------------

이 함수는 문자열을 timestamp with time zone 형식으로 변환하여 출력한다.

【형식】
to_timestamp_tz ( char [,fmt ['nlsparam'] ] )

【예제】
SQL> select to_timestamp_tz('2004-8-20 1:30:00 -3:00',
  2  'YYYY-MM-DD HH:MI:SS TZH:TZM') from dual;

TO_TIMESTAMP_TZ('2004-8-201:30:00-3:00','YYYY-MM-DDHH:MI:SSTZH:TZM')
--------------------------------------------------------------------------
20-AUG-04 01.30.00.000000000 AM -03:00

SQL>


2-22) TO_YMINTERVAL 함수
--------------------------------------------------------------------------------

TO_YMINTERVAL ( char ) 함수는 문자열을 interval year to month 형식으로 변환하는 함수이다.

【예제】
SQL> select sysdate,
  2  sysdate+to_yminterval('01-03') "15Months later"
  3  from dual;

SYSDATE   15Months
--------- ---------
04-AUG-04 04-NOV-05

SQL>


2-23) TRUNC(date) 함수
--------------------------------------------------------------------------------

이 함수는 날짜를 절삭하여 출력한다.

【형식】
TRUNC ( date [.fmt] )

【예제】
SQL> select trunc(to_date('27-AUG-04','DD-MON-YY'), 'YEAR')
  2  from dual;

TRUNC(TO_
---------
01-JAN-04

SQL>


2-24) TZ_OFFSET 함수
--------------------------------------------------------------------------------

이 함수는 time zone의 offset 값을 출력한다.

【형식】
TZ_OFFSET ( {‘time_zone_name’ | SESSIONTIMEZONE | DBTIMEZONE |
             ‘{+|-} hh:mi’ } )

【예제】
SQL> select sessiontimezone, tz_offset('ROK') from dual;

SESSIONTIMEZONE
---------------------------------------------------------------------------
TZ_OFFS
-------
+09:00
+09:00

SQL>



3-1) ASCIISTR 함수
--------------------------------------------------------------------------------

 asciistr('string')의 string의 아스키 문자로 반환한다.
Ä
【예제】
SQL> select ascii('ABÄCDE') from dual;
☜ ABÄCDE의 두번째 Ä는 A에 움라우트(Umlaut)가 붙은 글씨이다.

ASCIIS
------
ABDCDE
           
SQL>



3-2) BIN_TO_NUM 함수
--------------------------------------------------------------------------------

 이 함수는 2진수 벡터를 10진수로 변환한다.

SQL> select bin_to_num(1,0,1,0) from dual;

BIN_TO_NUM(1,0,1,0)
-------------------
                 10

SQL>


3-3) CAST 함수
--------------------------------------------------------------------------------

 데이터형식이나 collection 형식을 다른 데이터형식이나 다른 collection 형식으로 변환한다.

【예제】데이터형식인 경우
SQL> select current_date from dual;

CURRENT_D
---------
30-JUL-04

SQL> select cast(current_date as timestamp) from dual;

CAST(CURRENT_DATEASTIMESTAMP)
---------------------------------------------------------------------------
30-JUL-04 12.29.15.000000 PM

SQL>


3-4) CHARTOROWID 함수
--------------------------------------------------------------------------------

 이 함수는 char, varchar2, nchar, ncharvar2형 데이터 타입을 rowid 형 데이터 타입으로 변경한다.
【예제】
SQL> select name from emp
  2  where rowid = chartorowid('AAAHZ+AABAAAMWiAAF');

NAME
----------
jijoe

SQL> select rowid,name from emp;

ROWID              NAME
------------------ ----------
AAAHZ+AABAAAMWiAAA Cho
AAAHZ+AABAAAMWiAAB Joe
AAAHZ+AABAAAMWiAAC kim
AAAHZ+AABAAAMWiAAF jijoe

SQL>


여기서 rowid의 의미는 다음과 같다.
AAAHZ+  AAB  AAAMWi  AAA 객체번호  테이블스페이스번호  블록번호  행번호



3-5) COMPOSE 함수
--------------------------------------------------------------------------------

 입력된 스트링을 unicode로 나타낸다.

【예제】
SQL> select compose('aa' || unistr('\0308') ) from dual;

CO
--
aa

SQL>


3-6) CONVERT 함수
--------------------------------------------------------------------------------

입력된 문자열을 지정한 코드로 변환한다.
공용 문자셋은 살펴보자.
US7ASCII  US 7-bit ASCII 문자 WE8DEC  서유럽 8비트 문자 WE8HP  HP 서유럽 레이져젯 8비트 문자 F7DEC  DEC 프랑스 7비트 문자 WE8EBCDIC500  IBM 서유럽 EBCDIC 코드 페이지 500 WE8PC850  IBM PC 코드 페이지 850 WE8ISO8859P1  ISO 8859 서유럽 8비트 문자

【예제】
SQL> select convert('arirang','we8pc850') from dual;

CONVERT
-------
arirang

SQL>


3-7) HEXTORAW 함수
--------------------------------------------------------------------------------

HEXTORAW(char) 함수는 char, varchar2, nchar, nvarchar2 따위의 문자로 주어지는
 hexadecimal digit을 raw 값으로 변환한다.

【예제】
SQL> create table test(raw_col RAW(10));

Table created.

SQL> insert into test VALUES (HEXTORAW('7D'));

1 row created.

SQL> select * from test;

RAW_COL
--------------------
7D

SQL>



3-8) NUMTODSINTERVAL 함수
--------------------------------------------------------------------------------

 NUMTODSINTERVAL(n,'char_expr') 함수는 n을 interval day to second로 변환하여 출력한다.
 char_expr은 다음 중의 하나이다.
  ‘DAY’
  ‘HOUR’
  ‘MINUTE’
  ‘SECOND’

【예제】
SQL> select numtodsinterval(100,'MINUTE') from dual;

NUMTODSINTERVAL(100,'MINUTE')
--------------------------------------------------------------------------
+000000000 01:40:00.000000000

SQL>

【예제】
SQL> connect scott/tiger
Connected.
SQL> select ename, hiredate,
  2  numtodsinterval(100,'day')+hiredate from emp;

ENAME      HIREDATE  NUMTODSIN
---------- --------- ---------
SMITH      17-DEC-80 27-MAR-81
ALLEN      20-FEB-81 31-MAY-81
WARD       22-FEB-81 02-JUN-81
JONES      02-APR-81 11-JUL-81
MARTIN     28-SEP-81 06-JAN-82
BLAKE      01-MAY-81 09-AUG-81
CLARK      09-JUN-81 17-SEP-81
SCOTT      19-APR-87 28-JUL-87
KING       17-NOV-81 25-FEB-82
TURNER     08-SEP-81 17-DEC-81
ADAMS      23-MAY-87 31-AUG-87
JAMES      03-DEC-81 13-MAR-82
FORD       03-DEC-81 13-MAR-82
MILLER     23-JAN-82 03-MAY-82

14 rows selected.

SQL>



3-9) NUMTOYMINTERVAL 함수
--------------------------------------------------------------------------------

NUMTOYMINTERVAL(n,'char_expr') 함수는 n을 interval year to month로 변환하여 출력한다.
 char_expr은 다음 중의 하나이다.
  ‘YEAR’
  ‘MONTH’

【예제】
SQL> select numtoyminterval(30,'month') from dual;

NUMTOYMINTERVAL(30,'MONTH')
---------------------------------------------------------------------------
+000000002-06

SQL>

【예제】
SQL> connect scott/tiger
Connected.
SQL> select ename,hiredate,
  2  numtoyminterval(30,'month')+hiredate from emp;

ENAME      HIREDATE  NUMTOYMIN
---------- --------- ---------
SMITH      17-DEC-80 17-JUN-83
ALLEN      20-FEB-81 20-AUG-83
WARD       22-FEB-81 22-AUG-83
JONES      02-APR-81 02-OCT-83
MARTIN     28-SEP-81 28-MAR-84
BLAKE      01-MAY-81 01-NOV-83
CLARK      09-JUN-81 09-DEC-83
SCOTT      19-APR-87 19-OCT-89
KING       17-NOV-81 17-MAY-84
TURNER     08-SEP-81 08-MAR-84
ADAMS      23-MAY-87 23-NOV-89
JAMES      03-DEC-81 03-JUN-84
FORD       03-DEC-81 03-JUN-84
MILLER     23-JAN-82 23-JUL-84

14 rows selected.

SQL>




3-10) RAWTOHEX 함수
--------------------------------------------------------------------------------

RAWTOHEX(raw) 함수는 raw 값을 hexadecimal 값으로 변환한다.

【예제】
SQL> create table test(raw_col RAW(10));

Table created.

SQL> insert into test VALUES (HEXTORAW('7D'));

1 row created.

SQL> select * from test;

RAW_COL
--------------------
7D

SQL> select rawtohex(raw_col) from test;

RAWTOHEX(RAW_COL)
--------------------
7D

SQL>


3-11) RAWTONHEX 함수
--------------------------------------------------------------------------------

RAWTONHEX(raw) 함수는 raw 값을 nvarchar2형 hexadecimal 값으로 변환한다.

【예제】
SQL> create table test(raw_col RAW(10));

Table created.

SQL> insert into test VALUES (HEXTORAW('7D'));

1 row created.

SQL> select * from test;

RAW_COL
--------------------
7D

SQL> select rawtonhex(raw_col) from test;

RAWTONHEX(RAW_COL)
--------------------
7D

SQL>


3-12) ROWIDTOCHAR 함수
--------------------------------------------------------------------------------

RAWIDTOCHAR(rowid) 함수는 rowid 값을 varchar2 형식의 데이터로 변환한다.

【예제】
SQL> select rowid from test;

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL> select rowid from test
  2  where rowidtochar(rowid) like '%AABAA%';

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL>

여기서 rowid의 의미는 다음과 같다.
AAAHbH  AAB  AAAMXC  AAA 객체번호  테이블스페이스번호  블록번호  행번호



3-13) ROWIDTONCHAR 함수
--------------------------------------------------------------------------------

RAWIDTONCHAR(rowid) 함수는 rowid 값을 nvarchar2 형식의 데이터로 변환한다.

【예제】
SQL> select rowid from test;

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL> select rowid from test
  2  where rowidtochar(rowid) like '%AABAA%';

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL> select lengthb(rowidtonchar(rowid)), rowidtonchar(rowid)
  2  from test;

LENGTHB(ROWIDTONCHAR(ROWID)) ROWIDTONCHAR(ROWID
---------------------------- ------------------
                          36 AAAHbHAABAAAMXCAAA

SQL>


여기서 rowid의 의미는 다음과 같다.
AAAHbH  AAB  AAAMXC  AAA 객체번호  테이블스페이스번호  블록번호  행번호



3-14) TO_CHAR(character) 함수
--------------------------------------------------------------------------------

 이 함수는 nchar, nvarchar2, clob, nclob 형식의 데이터를
데이터베이스 character set으로 변환한다. 즉, 문자로 변환한다.

【형식】
 TO_CHAR( nchar| clob | nclob)

【예제】
SQL> select to_char('01110') from dual;

TO_CH
-----
01110

SQL>



3-15) TO_CLOB 함수
--------------------------------------------------------------------------------

이 함수는 LOB 컬럼에 있는 NCLOB나 또는 다른 문자 스트링을 CLOB로 변환한다.

【형식】
 TO_CLOBR({ lob_column | char})

【예제】
SQL> select to_clob('corea') from dual;

TO_CLOB('COREA')
--------------------------------------------------------------------------
corea

SQL>



3-16) TO_DSINTERVAL 함수
--------------------------------------------------------------------------------

이 함수는 문자열을 interval day to second 형식으로 변환하는 함수이다.

【형식】
to_dsinterval ( char [ ‘nlsparam’] )

【예제】
SQL> select sysdate,
  2  sysdate+to_dsinterval('003 17:00:00') as "3days 17hours later"
  3  from dual;

SYSDATE   3days 17h
--------- ---------
04-AUG-04 08-AUG-04

SQL>


3-17) TO_LOB 함수
--------------------------------------------------------------------------------

 TO_LOB(long_column) 함수는 LONG, LONG RAW 컬럼의 데이터를 LOB 값으로 변환한다.

【예제】
SQL> create table test2(zz clob);

Table created.

SQL> insert into test2
  2  (select to_lob(p.raw_col) from test p);

SQL>


3-18) TO_MULTI_BYTE 함수
--------------------------------------------------------------------------------

TO_MULTI_BYTE(char) 함수는 싱글 바이트 문자를 포함한 모든 문자열을 다중바이트 문자열로 변환한다.

【예제】
SQL> select dump(to_multi_byte('Corea')) from dual;

DUMP(TO_MULTI_BYTE('COREA'))
-----------------------------------------------------
Typ=1 Len=10: 163,195,163,239,163,242,163,229,163,225

SQL>



3-19) TO_NCHAR(character) 함수
--------------------------------------------------------------------------------

 이 함수는 문자스트링, clob, nclob 형식의 데이터를 national character set,
 즉 nchar으로 변환한다. 이는 translate ... using 문의 경우와 같다.

【형식】
TO_NCHAR({char|clob|nclob} [,fmt [,'nlsparam']])

【예제】
SQL> select to_nchar('Corea') from dual;

TO_NC
-----
Corea

SQL>


3-20) TO_NCHAR(datetime) 함수
--------------------------------------------------------------------------------

 이 함수는 date, timestamp, timestamp with time zone, timestamp with local time zone,
 interval month to year, interval day to second 형식의 데이터를
 nchar 형식의 데이터로 변환한다.

【형식】
TO_NCHAR({datetime|interval} [,fmt [,'nlsparam']])

【예제】
SQL> select to_nchar(sysdate) from dual;

TO_NCHAR(SYSDATE)
------------------------------
05-AUG-04

SQL>



3-21) TO_NCHAR(number) 함수
--------------------------------------------------------------------------------

 이 함수는 숫자를 nvarchar2 형식의 데이터로 변환한다.

【형식】
TO_NCHAR(n [,fmt [,'nlsparam']])

【예제】
SQL> select to_nchar(1234) from dual;

TO_N
----
1234

SQL> select to_nchar(rownum) from test;

TO_NCHAR(ROWNUM)
----------------------------------------
1

SQL>



3-22) TO_NCLOB 함수
--------------------------------------------------------------------------------

이 함수는 clob, 문자열 형식의 데이터를 nclob 형식의 데이터로 변환한다.

【형식】
TO_NCLOB({char|lob_column})

【예제】
SQL> select to_nclob('Corea') from dual;

TO_NCLOB('COREA')
--------------------------------------------------------------------------
Corea

SQL>



3-23) TO_NUMBER 함수
--------------------------------------------------------------------------------

이 함수는 숫자를 포함하는 char, varchar2, nchar, nvarchar2 형식의
 문자 데이터를 number 형식의 숫자 데이터로 변환한다.

【형식】
TO_NUMBER(char [,fmt [,'nlsparam']])

【예제】
SQL> select to_number('1234') from dual;

TO_NUMBER('1234')
-----------------
             1234

SQL>


3-24) TO_SINGLE_BYTE 함수
--------------------------------------------------------------------------------

TO_SINGLE_BYTE(char) 함수는 다중 바이트 문자열을 single byte 문자로 변환한다.

【예제】
SQL> select dump(to_multi_byte('Corea')) from dual;

DUMP(TO_MULTI_BYTE('COREA'))
-----------------------------------------------------
Typ=1 Len=10: 163,195,163,239,163,242,163,229,163,225

SQL> select dump(to_single_byte('Corea')) from dual;

DUMP(TO_SINGLE_BYTE('COREA'))
------------------------------
Typ=1 Len=5: 67,111,114,101,97

SQL> select to_single_byte(chr(65)) from dual;

T
-
A

SQL>



3-25) TO_YMINTERVAL 함수
--------------------------------------------------------------------------------

TO_YMINTERVAL ( char ) 함수는 문자열을 interval year to month 형식으로 변환하는 함수이다.

【예제】
SQL> select sysdate,
  2  sysdate+to_yminterval('01-03') "15Months later"
  3  from dual;

SYSDATE   15Months
--------- ---------
04-AUG-04 04-NOV-05

SQL>


3-26) TRANSLATE ... USING 함수
--------------------------------------------------------------------------------

이 함수는 텍스트 형식의 데이터를 지정한 문자 형식의 데이터로 변환한다.

【형식】
TRANSLATE ( text USING {CHAR_CS|NCHAR_CS} )

【예제】
SQL> select translate('Corea' USING char_cs) from dual;

TRANS
-----
Corea

SQL> select to_nchar('Corea') from dual;

TO_NC
-----
Corea

SQL>


3-27) UNISTR 함수
--------------------------------------------------------------------------------

UNISTR('string') 함수는 스트링 형식의 데이터를 nchar 형식의 데이터로 변환한다.

【예제】
SQL> select unistr('abc\00e5\00f1\00f6') from dual;

UNISTR
------
abc??o

SQL> select unistr('Corea') from dual;

UNIST
-----
Corea

SQL>



4-1) BFILENAME 함수
--------------------------------------------------------------------------------

 서버 파일 시스템 상에 실제로 위치한 LOB 바이너리 파일의 위치한 BFILE locator를 반환한다.
【형식】
bfilename ('디렉토리‘,’파일이름‘)

【예제】BFILE을 insert하는 예
SQL> connect system/manager

SQL> host mkdir /export/home/oracle/bfile

SQL> create directory bfile_dir as '/export/home/oracle/bfile';

Directory created.

SQL> grant read on directory bfile_dir to jijoe;

Grant succeeded.

SQL> connect jijoe/joe_password

SQL> create table bfile_doc (id number, doc bfile);

SQL> insert into bfile_doc

   1    values(1111,bfilename('bfile_dir','unix.hwp'));

1 row created.

SQL>


4-2) COALESCE 함수
--------------------------------------------------------------------------------

이 함수는 나열된 값 중에서 NULL이 아닌 첫 번째 값을 반환한다.  

【예제】
SQL> select coalesce('','','arirang','kunsan') from dual;

COALESC
-------
arirang

SQL>



4-3) DECODE 함수
--------------------------------------------------------------------------------

DECODE는 일반적인 프로그래밍 언어의 IF문을 SQL 문자 또는 PL/SQL 안으로 끌어들여 사용하기 위하여 만들어진 오라클 함수이다.
따라서 일반 프로그래밍 언어의 IF문이 수행 할 수 있는 기능을 포함하고 있다.
  select시의 decode 사용은 from 절만 빼고 어디에서나 사용할 수 있다.
  일반 프로그래밍과 decode 함수를 서로 비교하여 보자.
IF문 Decode 함수 IF A=B THEN RETURN 'T';END IF; DECODE(A,B,'T') IF A=B THENRETURN 'T';ELSIF A=C THENRETURN 'F';ELSERETURN 'X';END IF; DECODE(A,B,'T',C,'F','X')
【형식】
DECODE(검색컬럼,조건1,결과값1,
                  조건2,결과값2,...,기본값);

【예제】
SQL> connect jijoe/jijoe_password
SQL> create table aa(
  2  pid        number(12) primary key,
  3  addr varchar2(20),
  4  name varchar2(10));

SQL> insert into aa values(1234,'kunsan','jijoe')
SQL> insert into aa values(3456,'seoul','sunny')

SQL> select * from aa;

       PID ADDR                 NAME
---------- -------------------- ----------
      1234 kunsan               jijoe
      3456 seoul                sunny

SQL> select decode(pid,1234,name) name from aa;

NAME
----------
jijoe


SQL>
【예제】
SQL> desc ddd
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NO                                                 NUMBER(4)
 NAME                                               VARCHAR2(10)
 HIRDATE                                            DATE
 DEPTNO                                             NUMBER(5)

SQL> select * from ddd;

        NO NAME       HIRDATE       DEPTNO
---------- ---------- --------- ----------
         1 student1   01-JAN-04         10
         2 student2   01-FEB-04         10
         3 student3   01-MAR-04         20
         4 student4   01-MAY-04         30

SQL> select count(decode(to_char(hirdate,'MM'),'01',1)) "JAN",
  2         count(decode(to_char(hirdate,'MM'),'02',1)) "FEB",
  3         count(decode(to_char(hirdate,'MM'),'03',1)) "MAR",
  4         count(*) "Total"
  5  from ddd
  6  where to_char(hirdate,'MM') >= '01' AND
  7        to_char(hirdate,'MM') <= '06';

       JAN        FEB        MAR      Total
---------- ---------- ---------- ----------
         1          1          1          4

SQL>



4-4) DEPTH 함수
--------------------------------------------------------------------------------

DEPTH( correlation_integer) 함수는 UNDER_PATH나 EQUALS_PATH 조건과 함께 사용되는 보조함수이다.
 이 함수는 UNDER_PATH 조건에 상관관계의 수치를 반환한다.

【예제】
SQL> select * from resource_view;
SQL> select path(1), depth(2)
  2  from resource_view
  3  where under_path(res, '/sys/schemas/PUBLIC/www.w3.org/2001', 1)=1
  4    and under_path(res, '/sys/schemas/PUBLIC/www.w3.org/2001', 2)=1;

PATH(1)                                      DEPTH(2)
------------------------------------------ ----------
/xml.xsd                                            1
        

SQL>


4-5) DUMP 함수
--------------------------------------------------------------------------------

지정한 데이터의 위치와 길이 따위를 지정한 형식으로 반환한다.
【형식】
DUMP(expr [,반환형식[,시작위치[,길이]]] )

【예제】
SQL> select dump('Corea', 1016) from dual;

DUMP('COREA',1016)
-----------------------------------------------------
Typ=96 Len=5 CharacterSet=KO16KSC5601: 43,6f,72,65,61

SQL> select dump('Corea', 8,3,2) "Octal" from dual;

Octal
---------------------
Typ=96 Len=5: 162,145

SQL> select dump('Corea',16,3,2) "ASCII" from dual;

ASCII
-------------------
Typ=96 Len=5: 72,65

SQL>


4-6) EMPTY_BLOB 함수
--------------------------------------------------------------------------------

EMPTY_BLOB () 함수는 LOB 변수를 초기화하기 위하여 쓰이거나,
 또는 INSERT 문이나 UPDATE 문에서 empty LOB 위치를 반환한다.

【예시】
UPDATE print_media SET ad_photo = EMPTY_BLOB();


4-7) EMPTY_CLOB 함수
--------------------------------------------------------------------------------

EMPTY_CLOB () 함수는 LOB 변수를 초기화하기 위하여 쓰이거나,
 또는 INSERT 문이나 UPDATE 문에서 empty LOB 위치를 반환한다.

【예시】
UPDATE print_media SET ad_photo = EMPTY_CLOB();


4-8) EXISTSNODE 함수
--------------------------------------------------------------------------------

이 함수는 node의 존재여부를 확인하여 그 결과를 반환한다.
 0은 노드가 남아 있지 않은 경우이고,
 1은 아직 노드가 존재하는 경우이다.

【형식】
EXISTSNODE(XMLType_instance, XPath_string [,namespace_string] )

【예제】
SQL> select * from resource_view;
SQL> select res,any_path
  2  from resource_view
  3  where existsnode(res, 'xdbconfig.xml') =0;

26 rows selected.
SQL>



4-9) EXTRACT(XML) 함수
--------------------------------------------------------------------------------

이 함수는 existsnode와 유사한 함수이다.

【형식】
EXTRACT(XMLType_instance, XPath_string [,namespace_string] )

【예제】
SQL> select * from resource_view;
SQL> select extract(res,'xdbconfig.xml')
  2  from resource_view;
 
26 rows selected.
SQL>



4-10) EXTRACTVALUE 함수
--------------------------------------------------------------------------------

이 함수는 existsnode와 유사한 함수로써 node의 스칼라 값을 반환한다.

【형식】
EXTRACTVALUE(XMLType_instance, XPath_string [,namespace_string] )

【예제】
SQL> select * from resource_view;
SQL> select extractvalue(res,'xdbconfig.xml')
  2  from resource_view;
 
26 rows selected.
SQL>


4-11) GREATEST 함수
--------------------------------------------------------------------------------

GREATEST (expr,...) 함수는 expr 중에서 가장 큰 값을 반환한다.

【예제】
SQL> select greatest(20,10,30) from dual;

GREATEST(20,10,30)
------------------
                30

SQL>


4-12) LEAST 함수
--------------------------------------------------------------------------------

LEAST (expr,...) 함수는 expr 중에서 가장 작은 값을 반환한다.

【예제】
SQL> select least(20,10,30) from dual;

GREATEST(20,10,30)
------------------
                10

SQL> select least('bb','aa','cc') from dual;

GR
--
aa

SQL>


4-13) NLS_CHARSET_DECL_LEN 함수
--------------------------------------------------------------------------------

NLS_CHARSET_DECL_LEN (byte_count , char_set_id) 함수는 nchar로 선언된 폭을 반환한다.

【예제】
SQL> select nls_charset_decl_len
  2  (200, nls_charset_id('ja16eucfixed')) from dual

NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EUCFIXED'))
--------------------------------------------------------
                                                     100

SQL>



4-14) NLS_CHARSET_ID 함수
--------------------------------------------------------------------------------

nls_charset_id('text') 함수는 문자셋 이름에 대응하는 ID 번호를 반환한다.
 여기서 text는 서버에서 지원되는 CHAR_CS나 NCHAR_CS이다.

【예제】
SQL> select nls_charset_id('ja16euc') from dual;

NLS_CHARSET_ID('JA16EUC')
-------------------------
                      830

SQL>


4-15) NLS_CHARSET_NAME 함수
--------------------------------------------------------------------------------

nls_charset_name('number') 함수는 문자섹 ID 번호에 대응하는 문자의 이름을 반환한다.

【예제】
SQL> select nls_charset_name(830) from dual;

NLS_CHA
-------
JA16EUC

SQL> select nls_charset_name(1) from dual;

NLS_CHAR
--------
US7ASCII

SQL>



4-16) NULLIF 함수
--------------------------------------------------------------------------------

NULLIF(expr1, expr2) 함수는
 expr1과 expr2를 비교하여
       같으면 null을 반환하고,
       같지 않으면 expr1을 반환한다.

이는 CASE 문으로 쓰면 다음과 같다.
  CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

【예제】
SQL> select nullif('aa','AA') from dual;

NU
--
aa

SQL> select nullif('aa','aa') from dual;

NU
--


SQL>



4-17) NVL2 함수
--------------------------------------------------------------------------------

NVL2(expr1, expr2, expr3) 함수는
   expr1이 null이 아니면 expr2를 반환하고,
   expr1이 null이면 expr3을 반환한다.

【예제】
SQL> select nvl2('','Corea','Korea') from dual;

NVL2(
-----
Korea

SQL> select nvl2('aa','Corea','Korea') from dual;

NVL2(
-----
Corea

SQL>



4-18) PATH 함수
--------------------------------------------------------------------------------

PATH(correlation_path) 함수는 under_path나 equals_path의 보조함수로서,
 자원의 관계경로를 반환한다.

【예제】
SQL> select * from resource_view;
SQL> select path(1), depth(2)
  2  from resource_view
  3  where under_path(res, '/sys/schemas/PUBLIC/www.w3.org/2001', 1)=1?
  4    and under_path(res, '/sys/schemas/PUBLIC/www.w3.org/2001', 2)=1;

PATH(1)                                      DEPTH(2)
------------------------------------------ ----------
/xml.xsd                                            1
        

SQL>



4-19) SYS_CONNECT_BY_PATH 함수
--------------------------------------------------------------------------------

SYS_CONNECT_BY_PATH(column, char) 함수는 계층적 쿼리에서만 유효하며,
 column의 절대 경로를 char로 지정한 문자로 분리하여 반환한다.

【예제】
SQL> select sys_connect_by_path(name, '/') from emp
  2  start with name='jijoe'
  3  connect by prior id=1101;

SYS_CONNECT_BY_PATH(NAME,'/')
-----------------------------
/jijoe

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


4-20) SYS_CONTEXT 함수
--------------------------------------------------------------------------------

 이 함수는 namespace와 관계되는 parameter의 값을 반환한다.

【형식】
SYS_CONTEXT('namespace','parameter' [,length])

【예제】
SQL> select sys_context('userenv','session_user') from dual;

SYS_CONTEXT('USERENV','SESSION_USER')
-------------------------------------
JIJOE

SQL> select sys_context('userenv','lang') from dual;

SYS_CONTEXT('USERENV','LANG')
-----------------------------
US

SQL>

 userenv에서 사용될 parameter는 다음과 같다.
AUDITED_CURSORID AUTHENTICATION_DATA BG_JOB_ID
CLIENT_IDENTIFIER CLIENT_INFO  CURRENT_SCHEMA
CURRENT_SCHEMAID CURRENT_SQL  CURRENT_USER
CURRENT_USERID  DB_DOMAIN  DB_NAME
ENTRY_ID  EXTERNAL_NAME  FG_JOB_ID
GLOBAL_CONTEXT_MEMORY HOST   INSTANCE
IP_ADDRESS  ISDBA   LANG
LANGUAGE  NETWORK_PROTOCOL NLS_CALENDAR
NLS_CURRENCY  NLS_DATE_FORMAT  NLS_DATE_LANGUAGE
NLS_SORT  NLS_TERRITORY  OS_USER
PROXY_USER  PROXY_USERID  SESSION_USER
SESSION_USERID  SESSIONID  TERMINAL



4-21) SYS_DBURIGEN 함수
--------------------------------------------------------------------------------

이 함수는 입력된 argument에 대한 DBURIType의 URL을 반환한다.

【형식】
SYS_DBURIGEN({column|attribute} [rowid],... [,'text()'])

【예제】
SQL> select sys_dburigen(id,name) from emp
  2  where name='jijoe';

SYS_DBURIGEN(ID,NAME)(URL, SPARE)
------------------------------------------------------------------------
DBURITYPE('/PUBLIC/EMP/ROW[ID=''1104'']/NAME', NULL)

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


4-22) SYS_EXTRACT_UTC 함수
--------------------------------------------------------------------------------

sys_extract_utc(datetime_with_timezone) 함수는
UTC(coordinated universal time: Greenwich mean time) 시각을 반환한다.

【예제】
SQL> select systimestamp, sys_extract_utc(systimestamp) from dual;

SYSTIMESTAMP
--------------------------------------------------------------------------
SYS_EXTRACT_UTC(SYSTIMESTAMP)
--------------------------------------------------------------------------
06-AUG-04 02.41.39.258976 PM +09:00
06-AUG-04 05.41.39.258976 AM


SQL>


4-23) SYS_GUID 함수
--------------------------------------------------------------------------------

sys_guid() 함수는 globally unique identifier를 반환한다.

【예제】
SQL> select sys_guid() from dual;

SYS_GUID()
--------------------------------
E0F6C6D5767C01ADE034080020B588F4

SQL>


4-24) SYS_XMLAGG 함수
--------------------------------------------------------------------------------

이 함수는 sys_xmlgen 문에서 만든 XML 문을 기본적으로 ROWSET 태그를 새로 추가 시킨다.

【형식】
SYS_XMLAGG( expr [fmt] )

【예제】
SQL> select sys_xmlagg(sys_xmlgen(name)) from emp
  2  where name like 'j%';

SYS_XMLAGG(SYS_XMLGEN(NAME))
--------------------------------------------------------------------------
<ROWSET>
  <NAME>jijoe</NAME>
</ROWSET>


SQL>


4-25) SYS_XMLGEN 함수
--------------------------------------------------------------------------------

이 함수는 지정한 행이나 열을 XML 문으로 만들어 반환한다.

【형식】
SYS_XMLGEN( expr [fmt] )

【예제】
SQL> select sys_xmlgen(name) from emp
  2  where name like 'j%';

SYS_XMLGEN(NAME)
--------------------------------------------------------------------------
<NAME>jijoe</NAME>

SQL>


4-26) UID 함수
--------------------------------------------------------------------------------

UID 함수는 사용자의 유일한 ID를 정수로 반환한다.

【예제】
SQL> select uid from dual;

       UID
----------
        93

SQL>


4-27) USER 함수
--------------------------------------------------------------------------------

이 함수는 사용자의 이름을 반환한다.

【예제】
SQL> select user,uid from dual;

USER                                  UID
------------------------------ ----------
JIJOE                                  93

SQL>



4-28) USERENV 함수
--------------------------------------------------------------------------------

USERENV('parameter') 함수는 사용자의 환경에 관한 정보를 반환한다.

 parameter는 다음과 같은 것이 있다.
CLIENT_INFO ENTRYID  ISDBA  LANG
LANGUAGE SESSIONID TERMINAL

【예제】
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.KO16KSC5601

SQL>



4-29) VSIZE 함수
--------------------------------------------------------------------------------

VSIZE('expr') 함수는 expr이 표시되는 바이트 수를 반환한다.

【예제】
SQL> select name, vsize(name) from emp
  2  where name like 'jijoe';

NAME       VSIZE(NAME)
---------- -----------
jijoe                5

SQL>

$ cat .profile
..........
NLS_LANG=AMERICAN_AMERICA.KO16KSC5601  ☜ 한글 문자셋으로 설정
export NLS_LANG
NLS_LANG=AMERICAN_AMERICA.UTF8  ☜ UNICODE로 설정
export NLS_LANG
$


테이블에서 저장된 데이터가 한글 문자셋인지 유니코드인지 식별하려면 다음과 같이 확인해 볼 수 있다.

    select 한글컬럼명, vsize(한글컬럼명) from 테이블명;

여기서 한글 컬럼에 한글이 3글자라면, vsize 결과가
    9이면 unicode이고,
    6이면 한글 문자셋으로 저장된 것임을 알 수 있다.

【예제】
SQL> select * from test;
 
        ID NAME
---------- ----------------------------------------
      1113 아리랑
      1112 쓰리랑
 
SQL> select name, vsize(name) from test;
 
NAME                                     VSIZE(NAME)
---------------------------------------- -----------
아리랑                                             6
쓰리랑                                             6
 
SQL>



4-30) XMLAGG 함수
--------------------------------------------------------------------------------

이 함수는 xmlelement에 의해서 XML 태그를 만든 문장을 모으는 기능이다.

【형식】
XMLAGG( XMLType_instance [order_by_clause])

【예제】
 SQL> select xmlagg(xmlelement("name",e.name)) from emp e;

XMLAGG(XMLELEMENT("NAME",E.NAME))
--------------------------------------------------------------------------
<name>Cho</name>
<name>Joe</name>
<name>kim</name>
<name>jijoe</name>

SQL>



4-31) XMLCOLATTVAL 함수
--------------------------------------------------------------------------------

이 함수는 XML fragment를 만드는 기능이다

【형식】
XMLCOLATTVAL( value_expr [AS c_alias],...)

【예제】
SQL> select xmlcolattval(e.name,e.id,e.salary) from emp e;

XMLCOLATTVAL(E.NAME,E.ID,E.SALARY)
--------------------------------------------------------------------------
<column name="NAME">Cho</column>
<column name="ID">1101</column>
<column name="S

<column name="NAME">Joe</column>
<column name="ID">1102</column>
<column name="S

<column name="NAME">kim</column>
<column name="ID">1103</column>
<column name="S

<column name="NAME">jijoe</column>
<column name="ID">1104</column>
<column name=


SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



4-32) XMLCONCAT 함수
--------------------------------------------------------------------------------

XMLCONCAT( XMLType_instance,...) 함수는 XMLType instance를 series로 넣어 만드는 기능이다.

【예제】
SQL> select xmlconcat(
  2    xmlelement("name",e.name),xmlelement("bonus",e.bonus))
  3  from emp e;

XMLCONCAT(XMLELEMENT("NAME",E.NAME),XMLELEMENT("BONUS",E.BONUS))
--------------------------------------------------------------------------
<name>Cho</name>
<bonus>125</bonus>

<name>Joe</name>
<bonus>100</bonus>

<name>kim</name>
<bonus>100</bonus>

<name>jijoe</name>
<bonus>100</bonus>

SQL>


4-33) XMLFOREST 함수
--------------------------------------------------------------------------------

이 함수는 각각의 argument parameter를  XML로 변환한다.

【형식】
XMLFOREST( value_expr [AS c_alias],...)

【예제】
SQL> select xmlelement("emp",
  2  xmlforest(e.id, e.name, e.bonus)) from emp e;

XMLELEMENT("EMP",XMLFOREST(E.ID,E.NAME,E.BONUS))
--------------------------------------------------------------------------
<emp>
  <ID>1101</ID>
  <NAME>Cho</NAME>
  <BONUS>125</BONUS>
</emp>

<emp>
  <ID>1102</ID>
  <NAME>Joe</NAME>
  <BONUS>100</BONUS>
</emp>

<emp>
  <ID>1103</ID>
  <NAME>kim</NAME>
  <BONUS>100</BONUS>
</emp>

<emp>
  <ID>1104</ID>
  <NAME>jijoe</NAME>
  <BONUS>100</BONUS>

</emp>

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>
 


4-34) XMLELEMENT 함수
--------------------------------------------------------------------------------

이 함수는 XML 태그를 붙이는 기능이다

【예제】
SQL> select xmlelement("name",e.name) from emp e
  2  where name like 'j%';

XMLELEMENT("NAME",E.NAME)
--------------------------------------------------------------------------
<name>jijoe</name>

SQL>



5-1) AVG* 함수
--------------------------------------------------------------------------------

조건을 만족하는 행(row)의 평균을 값을 반환하며,
 aggregate 함수나
 analytic 함수로 사용된다.

【형식】
AVG( [DISTINCT | ALL] 컬럼명)
   [ [OVER] (analytic 절)]

【예제】aggregate 예
SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL> select avg(salary) from emp;

AVG(SALARY)
-----------
        240

SQL>
【예제】analytic 예
SQL> select avg(distinct salary) over(partition by bonus)
  2  from emp;

AVG(DISTINCTSALARY)OVER(PARTITIONBYBONUS)
-----------------------------------------
                               236.666667
                               236.666667
                               236.666667
                                      250


SQL> select avg(salary) over(partition by bonus order by id
    2 rows between 1 preceding and 1 following) as avg  from emp;

       AVG
----------
       245
236.666667
       235
       250

SQL>



5-2) CORR* CORR* 함수
--------------------------------------------------------------------------------

집합 쌍의 상관관계 계수를 반환한다.

【형식】
CORR( expr1, expr2 ) [ [OVER] (analytic 절)]

【예제】
SQL> select corr(avg(bonus),max(bonus))
  2  from employees
  3  group by dept_no;

CORR(AVG(BONUS),MAX(BONUS))
---------------------------
                          1

SQL>


5-3) COUNT* 함수
--------------------------------------------------------------------------------


 쿼리한 행의 수를 반환한다.
【형식】
COUNT([*|DISTINCT|ALL] 컬럼명) [ [OVER] (analytic 절)]

【예제】
SQL> select count(*) from emp;

  COUNT(*)
----------
         4

SQL> select count (distinct dept_no) from employees;

COUNT(DISTINCTDEPT_NO)
----------------------
                     2

SQL> select count (all dept_no) from employees;

COUNT(ALLDEPT_NO)
-----------------
                4

SQL> select salary,count(*)
  2  over (order by salary)
  3  from emp;

    SALARY COUNT(*)OVER(ORDERBYSALARY)
---------- ---------------------------
       220                           1
       240                           2
       250                           4
       250                           4

SQL>



5-4) COVAR_POP 함수
--------------------------------------------------------------------------------

이 함수는 number 쌍의 집합에 대한 population covariance를 반환한다.

【형식】
COVAR_POP(expr1, expr2 [ OVER (analytic 절)] )

【예제】
SQL> select covar_pop(bonus,salary) from emp;

COVAR_POP(BONUS,SALARY)
-----------------------
                   62.5

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


5-5) COVAR_SAMP 함수
--------------------------------------------------------------------------------

이 함수는 number 쌍의 집합에 대한 sample covariance를 반환한다.

【형식】
COVAR_SAMP(expr1, expr2 [ OVER (analytic 절)] )

【예제】
SQL> select covar_samp(bonus,salary) from emp;

COVAR_SAMP(BONUS,SALARY)
------------------------
              83.3333333

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


5-6) CUME_DIST 함수
--------------------------------------------------------------------------------

이 함수는 그룹 값 내에서 어떤 값의 cumulative distribution(누적분포)을 계산한다.

【형식】
CUME_DIST(expr,... WITHIN GROUP (ORDER BY
     expr [DESC | ASC] [NULLS {FIRST|LAST}],...)
또는
CUME_DIST() over ([query_partition_clause] order_by_clause)

【예제】
SQL> select cume_dist(230) within group
  2  (order by salary ) from emp;

CUME_DIST(230)WITHINGROUP(ORDERBYSALARY)
----------------------------------------
                                      .4

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



5-7) DENSE_RANK 함수
--------------------------------------------------------------------------------


그룹 내에서 순위를 반환한다.

【예제】
SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL> select dense_rank(230, .05) within group
  2  (order by salary, bonus) "Dense Rank"
  3  from employees;

Dense Rank
----------
         2

SQL>



5-8) FIRST 함수
--------------------------------------------------------------------------------

first나 last 함수는 행을 서열화 시켜서 첫 번째나 마지막 행을 추출한다.
【형식】
집합함수 KEEP (
 DENSE_RANK FIRST ORDER BY
    expr [DESC|ASC][NULL{FIRST|LAST}],...)
【예제】
SQL> select
  2  min(salary) keep (dense_rank first order by salary) "Worst",
  3  max(salary) keep (dense_rank last order by salary) "Best"
  4  from employees
  5  order by id;

     Worst       Best
---------- ----------
       220        250

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-9) GROUP_ID 함수
--------------------------------------------------------------------------------

GROUP() 함수는 group by로 분리되어 복제된 번호로 복제 횟수를 구분하도록 출력한다.
번호가 0부터 시작되므로 n번 복제되었으면 n-1의 번호가 출력된다.

【예제】
SQL> select dept_no, group_id() from employees
  2  group by dept_no;

   DEPT_NO GROUP_ID()
---------- ----------
        10          0
        20          0

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-10) Grouping 함수
--------------------------------------------------------------------------------

Grouping 함수는 Rollup이나 cube 연산자랑 함께 사용하여
 grouping 함수에서 기술된 컬럼이 그룹핑시 사용되었는지 보여주는 함수이다.
특별히 연산의 기능은 없으며,
  rollup이나 cube 연산 후 출력된 결과에 대한 사용자의 이해를 높이기 위해 사용된다.
  즉, grouping 함수를 이용할 경우 출력되는 결과값 중 null 값이 있다면,
      이 null 값이 rollup이나 cube 연산의 결과로 생성된 값인지,
      원래 테이블상에 null 값으로 저장된 것인지 확인할 수 있다.

. grouping 함수는 인수로 하나의 값만을 가진다.
. grouping 함수에 사용된 인수는 group by 절에 기술된 값 중에 하나와 반드시 일치해야 한다.
. grouping 함수의 결과값으로 0 또는 1을 반환한다.
    0은 해당인수로 쓰인 값이 rollup이나 cube 연산에 사용되었음을 나타나고,
    1은 사용되지 않았음을 의미한다.
【형식】
SELECT   컬럼명,그룹함수(컬럼명), GROUPING(컬럼명)
FROM  테이블명
WHERE  조건
GROUP BY [ROLLUP | CUBE] 그룹핑하고자하는 컬럼명,...
HAVING  그룹조건
ORDER BY 컬럼명 또는 위치번호

【예제】
SQL> select grade,deptno,sum(salary),GROUPING(deptno)
  2  from aaa
  3  group by rollup(grade,deptno);

     GRADE     DEPTNO SUM(SALARY) GROUPING(DEPTNO)
---------- ---------- ----------- ----------------
         1         10         100                0
         1         20         500                0
         1         30         300                0
         1                    900                1
         2         10         400                0
         2         20         200                0
         2         30         600                0
         2                   1200                1
                             2100                1

9 rows selected.

SQL>


5-11) GROUPING_ID 함수
--------------------------------------------------------------------------------

GROUPING_ID(expr,...) 함수는 행과 관련되는 GROUPING 비트 벡터에 대응되는 수치를 반환한다.

【예제】
SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL> select sum(salary), grouping_id(dept_no)
  2  from employees
  3  group by dept_no;

SUM(SALARY) GROUPING_ID(DEPT_NO)
----------- --------------------
        500                    0
        460                    0

SQL>


5-12) LAST 함수
--------------------------------------------------------------------------------

first나 last 함수는 행을 서열화 시켜서 첫 번째나 마지막 행을 추출한다.
【형식】
집합함수 KEEP (
 DENSE_RANK LAST ORDER BY
    expr [DESC|ASC][NULL{FIRST|LAST}],...)
【예제】
SQL> select
  2  min(salary) keep (dense_rank first order by salary) "Worst",
  3  max(salary) keep (dense_rank last order by salary) "Best"
  4  from employees
  5  order by id;

     Worst       Best
---------- ----------
       220        250

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-13) MAX 함수
--------------------------------------------------------------------------------

이 함수는 최대 값을 반환한다.

【형식】
MAX ([{DISTINCT|ALL}] expr) [OVER(analytic_clause)]

【예제】
SQL> select max(salary) over (partition by dept_no)
  2  from employees;

MAX(SALARY)OVER(PARTITIONBYDEPT_NO)
-----------------------------------
                                250
                                250
                                240
                                240

SQL> select max(salary) from employees;

MAX(SALARY)
-----------
        250

SQL>


5-14) MIN 함수
--------------------------------------------------------------------------------

이 함수는 최소 값을 반환한다.

【형식】
MIN ([{DISTINCT|ALL}] expr) [OVER(analytic_clause)]

【예제】
SQL> select min(salary) over (partition by dept_no)
  2  from employees;

MIN(SALARY)OVER(PARTITIONBYDEPT_NO)
-----------------------------------
                                250
                                250
                                220
                                220

SQL> select min(salary) from employees;

MIN(SALARY)
-----------
        220

SQL>



5-15) PERCENTILE_CONT 함수
--------------------------------------------------------------------------------

이 함수는 연속 모델에 대한 inverse distribution function이다.

【형식】
PERCENTILE_CONT(expr) WITHIN GROUP (ORDER BY expr [{DESC|ASC}])
  [OVER (query_partition_cluause)]

【예제】
SQL> select dept_no,percentile_cont(0.5) within group
  2  (order by salary DESC)
  3  from employees GROUP BY dept_no;

   DEPT_NO PERCENTILE_CONT(0.5)WITHINGROUP(ORDERBYSALARYDESC)
---------- --------------------------------------------------
        10                                                250
        20                                                230

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-16) PERCENTILE_DISC 함수
--------------------------------------------------------------------------------

이 함수는 불연속 모델에 대한 inverse distribution function이다.

【형식】
PERCENTILE_DISC(expr) WITHIN GROUP (ORDER BY expr [{DESC|ASC}])
  [OVER (query_partition_cluause)]

【예제】
SQL> select dept_no,percentile_disc(0.5) within group
  2  (order by salary DESC)
  3  from employees GROUP BY  dept_no;

   DEPT_NO PERCENTILE_DISC(0.5)WITHINGROUP(ORDERBYSALARYDESC)
---------- --------------------------------------------------
        10                                                250
        20                                                240

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-17) PERCENT_RANK 함수
--------------------------------------------------------------------------------

이 함수는 CUME_DIST 함수와 유사하게 percent_rank 값을 반환한다.

【형식】
PERCENT_RANK(expr,...) WITHIN GROUP (ORDER BY expr [{DESC|ASC}]
  [NULLS {FIRST|LAST}],...)
또는
PERCENT_RANK() OVER( [query_partition_clause] order_by_clause)

【예제】
SQL> select percent_rank(230,0.05) within group
  2  (order by salary,bonus) from employees;

PERCENT_RANK(230,0.05)WITHINGROUP(ORDERBYSALARY,BONUS)
------------------------------------------------------
                                                   .25

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-18) RANK 함수
--------------------------------------------------------------------------------

이 함수는 그룹 내에서 위치를 반환한다.

【형식】
RANK(expr,...) WITHIN GROUP (ORDER BY expr [{DESC|ASC}]
  [NULLS {FIRST|LAST}],...)
또는
RANK() OVER( [query_partition_clause] order_by_clause)

【예제】
SQL> select rank(230,0.05) within group
  2 (order by salary,bonus) from employees;

RANK(230,0.05)WITHINGROUP(ORDERBYSALARY,BONUS)
----------------------------------------------
                                             2
SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-19) REGR_(linear regression) function* 함수
--------------------------------------------------------------------------------

선형 회귀(linear regression) 함수 ordinary-least squares regression line을 찾도록 한다.
 사용되는 회귀함수는 자음 중 하나이다.
 REGR_SLOPE REGR_INTERCEPT REGR_COUNT
 REGR_R2 REGR_AVGX REGR_AVGY
 REGR_SXX REGR_SYY REGR_SXY

【형식】
REGR { REGR_SLOPE|REGR_INTERCEPT|REGR_COUNT|REGR_R2|REGR_AVGX|
       REGR_AVGY|REGR_SXX|REGR_SYY|REGR_SXY}
    (expr1,expr2) [OVER (analytic_clause)]

【예제】
SQL> select regr_slope(salary,bonus) from employees

REGR_SLOPE(SALARY,BONUS)
------------------------
              .533333333

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



5-20) STDDEV 함수
--------------------------------------------------------------------------------

이 함수는 standard deviation을 반환한다.

【형식】
STDDEV [{DISTINCT|ALL}] (expr) [OVER (analytic_clause)]

【예제】
SQL> select stddev(salary) from emp;

STDDEV(SALARY)
--------------
    14.1421356

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



5-21) STDDEV_POP 함수
--------------------------------------------------------------------------------

이 함수는 population standard deviation을 반환한다.

【형식】
STDDEV_POP (expr) [OVER (analytic_clause)]

【예제】
SQL> select stddev_pop(salary) from emp;

STDDEV_POP(SALARY)
------------------
        12.2474487

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


5-22) STDDEV_SAMP 함수
--------------------------------------------------------------------------------

이 함수는 cumulative sample standard deviation을 반환한다.

【형식】
STDDEV_SAMP (expr) [OVER (analytic_clause)]

【예제】
SQL> select stddev_samp (salary) from emp;

STDDEV_SAMP(SALARY)
-------------------
         14.1421356

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100


SQL>



5-23) SUM 함수
--------------------------------------------------------------------------------

이 함수는 합계를 반환한다.

【형식】
SUM ([{DISTINCT|ALL}] expr) [OVER (analytic_clause)]

【예제】
SQL> select sum(salary) from emp;

SUM(SALARY)
-----------
        960

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



5-24) VAR_POP 함수
--------------------------------------------------------------------------------

이 함수는 population variance를 반환한다.

【형식】
VAR_POP (expr) [OVER (analytic_clause)]

【예제】
SQL> select var_pop(salary) from emp;

VAR_POP(SALARY)
---------------
            150

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100


SQL>



5-25) VAR_SAMP 함수
--------------------------------------------------------------------------------

이 함수는 sample variance를 반환한다.

【형식】
VAR_SAMP (expr) [OVER (analytic_clause)]

【예제】
SQL> select var_samp(salary) from emp;

VAR_SAMP(SALARY)
----------------
             200

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100


SQL>



5-26) VARIANCE 함수
--------------------------------------------------------------------------------

이 함수는 variance를 반환한다.

【형식】
VARIANCE ([{DISTINCT|ALL}] expr) [OVER (analytic_clause)]

【예제】
SQL> select variance(salary) from emp;

VARIANCE(SALARY)
----------------
             200

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



5-27) Grouping sets 함수
--------------------------------------------------------------------------------

Grouping sets 함수는 Group by의 확장된 형태로 하나의 쿼리문에서 원하는 그룹핑 조건을 여러 개 기술할 수 있으며,
 grouping sets 함수 사용이 불가능한 이전 버전에서
 복잡한 union all 연산자를 사용하여 기술하던 것을 간단하게
 한 문장 안에서 해결할 수 있어 검색시 효율성이 증대 된다.
 다시 말해서, grouping sets 함수를 사용하면,
              group by ... union all을 사용한 것보다
              SQL 문이 간단해지고 또한 실행시 성능이 빨라진다.
【형식】
SELECT   컬럼명,그룹함수(컬럼명), GROUPING(컬럼명)
FROM  테이블명
WHERE  조건
GROUP BY [ROLLUP | CUBE] 그룹핑하고자하는 컬럼명, ...
  [GROUPING SETS (컬럼명,컬럼명, ...), ...]
HAVING  그룹조건
ORDER BY 컬럼명 또는 위치번호

【예제】
SQL> select grade,deptno,sum(salary)
  2  from aaa
  3  group by grouping sets(grade,deptno);

     GRADE     DEPTNO SUM(SALARY)
---------- ---------- -----------
         1                    900
         2                   1200
                   10         500
                   20         700
                   30         900

SQL> select grade,deptno,sum(salary)
  2  from aaa
  3  group by grouping sets((grade,name),(deptno,name));

     GRADE     DEPTNO SUM(SALARY)
---------- ---------- -----------
         1                    100
         1                    300
         1                    500
         2                    200
         2                    400
         2                    600
                   10         100
                   20         200
                   30         300
                   10         400
                   20         500
                   30         600

12 rows selected.
SQL>
【예제】Union all을 사용한 경우
SQL> select grade,deptno,sum(salary)
  2  from aaa
  3  group by grade,deptno
  4  union all
  5  select grade,deptno,sum(salary)
  6  from aaa
  7  group by grade,deptno;

     GRADE     DEPTNO SUM(SALARY)
---------- ---------- -----------
         1         10         100
         1         20         500
         1         30         300
         2         10         400
         2         20         200
         2         30         600
         1         10         100
         1         20         500
         1         30         300
         2         10         400
         2         20         200
         2         30         600

12 rows selected.

SQL>

composite columns란 rollup, cube, grouping sets 절과 같은 기능을 사용하면
표현되는 각 컬럼이 하나가 아닌 복수 개의 컬럼으로 정의되는 경우이며
다음 표를 보고 이해하자.
composite column 문의 경우  group by 문의 경우 group by grouping sets(a,b,c)  group by a union allgroup by b union allgroup by c  group by grouping sets(a,b,(b,c))  group by a union allgroup by b union allgroup by b,c  group by grouping sets((a,b,c))  group by a,b,c  group by grouping sets(a,(b),())  group by a union allgroup by b union allgroup by ()  group by grouping sets(a,rollup(b,c))  group by a union allgroup by rollup(b,c)  group by rollup(a,b,c)  group by (a,b,c) union allgroup by (a,b) union allgroup by (a) union allgroup by ()  group by cube(a,b,c)  group by (a,b,c) union allgroup by (a,b) union allgroup by (a,c) union allgroup by (b,c) union allgroup by (a) union allgroup by (b) union allgroup by (c) union allgroup by () 



6-1) AVG* 함수
--------------------------------------------------------------------------------

조건을 만족하는 행(row)의 평균을 값을 반환하며,
 aggregate 함수나
 analytic 함수로 사용된다.

【형식】
AVG( [DISTINCT | ALL] 컬럼명)
   [ [OVER] (analytic 절)]

【예제】aggregate 예
SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL> select avg(salary) from emp;

AVG(SALARY)
-----------
        240

SQL>
【예제】analytic 예
SQL> select avg(distinct salary) over(partition by bonus)
  2  from emp;

AVG(DISTINCTSALARY)OVER(PARTITIONBYBONUS)
-----------------------------------------
                               236.666667
                               236.666667
                               236.666667
                                      250


SQL> select avg(salary) over(partition by bonus order by id
    2 rows between 1 preceding and 1 following) as avg  from emp;

       AVG
----------
       245
236.666667
       235
       250

SQL>



6-2) CORR* CORR* 함수
--------------------------------------------------------------------------------

집합 쌍의 상관관계 계수를 반환한다.

【형식】
CORR( expr1, expr2 ) [ [OVER] (analytic 절)]

【예제】
SQL> select corr(avg(bonus),max(bonus))
  2  from employees
  3  group by dept_no;

CORR(AVG(BONUS),MAX(BONUS))
---------------------------
                          1

SQL>


6-3) COUNT* 함수
--------------------------------------------------------------------------------


 쿼리한 행의 수를 반환한다.
【형식】
COUNT([*|DISTINCT|ALL] 컬럼명) [ [OVER] (analytic 절)]

【예제】
SQL> select count(*) from emp;

  COUNT(*)
----------
         4

SQL> select count (distinct dept_no) from employees;

COUNT(DISTINCTDEPT_NO)
----------------------
                     2

SQL> select count (all dept_no) from employees;

COUNT(ALLDEPT_NO)
-----------------
                4

SQL> select salary,count(*)
  2  over (order by salary)
  3  from emp;

    SALARY COUNT(*)OVER(ORDERBYSALARY)
---------- ---------------------------
       220                           1
       240                           2
       250                           4
       250                           4

SQL>



6-4) COVAR_SAMP 함수
--------------------------------------------------------------------------------

이 함수는 number 쌍의 집합에 대한 sample covariance를 반환한다.

【형식】
COVAR_SAMP(expr1, expr2 [ OVER (analytic 절)] )

【예제】
SQL> select covar_samp(bonus,salary) from emp;

COVAR_SAMP(BONUS,SALARY)
------------------------
              83.3333333

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>



6-5) CUME_DIST 함수
--------------------------------------------------------------------------------

이 함수는 그룹 값 내에서 어떤 값의 cumulative distribution(누적분포)을 계산한다.

【형식】
CUME_DIST(expr,... WITHIN GROUP (ORDER BY
     expr [DESC | ASC] [NULLS {FIRST|LAST}],...)
또는
CUME_DIST() over ([query_partition_clause] order_by_clause)

【예제】
SQL> select cume_dist(230) within group
  2  (order by salary ) from emp;

CUME_DIST(230)WITHINGROUP(ORDERBYSALARY)
----------------------------------------
                                      .4

SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL>


6-6) DENSE_RANK 함수
--------------------------------------------------------------------------------


그룹 내에서 순위를 반환한다.

【예제】
SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL> select dense_rank(230, .05) within group
  2  (order by salary, bonus) "Dense Rank"
  3  from employees;

Dense Rank
----------
         2

SQL>


6-7) FIRST 함수
--------------------------------------------------------------------------------

first나 last 함수는 행을 서열화 시켜서 첫 번째나 마지막 행을 추출한다.
【형식】
집합함수 KEEP (
 DENSE_RANK FIRST ORDER BY
    expr [DESC|ASC][NULL{FIRST|LAST}],...)
【예제】
SQL> select
  2  min(salary) keep (dense_rank first order by salary) "Worst",
  3  max(salary) keep (dense_rank last order by salary) "Best"
  4  from employees
  5  order by id;

     Worst       Best
---------- ----------
       220        250

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>


6-8) FIRST_VALUE 함수
--------------------------------------------------------------------------------

이 함수는 서열화된 값에서 첫 번째를 출력한다.

【형식】
FIRST_VALUE ( expr ) OVER ( analytic_절)

【예제】
SQL> select salary,first_value(name)
  2  over (order by salary asc)
  3  from (select * from employees
  4        where dept_no = 20
  5        order by salary);

    SALARY FIRST_VALU
---------- ----------
       220 jijoe
       240 jijoe

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>


6-9) LAG 함수
--------------------------------------------------------------------------------

이 함수는 analytic 함수로서,
self join하지 않고 하나의 테이블에서 동시에 한 행(row) 이상을 접근할 수 있도록 한다.

【형식】
LAG ( value_expr [,offset] [,default] )
     OVER ([query_partition_clause] order_by_clause )

【예제】
SQL> select name,salary,LAG(salary,1,0)    
  2   OVER (ORDER BY salary) FROM employees;

NAME           SALARY LAG(SALARY,1,0)OVER(ORDERBYSALARY)
---------- ---------- ----------------------------------
jijoe             220                                  0
Joe               240                                220
Cho               250                                240
kim               250                                250

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



6-10) LAST_VALUE 함수
--------------------------------------------------------------------------------

이 함수는 서열화된 값에서 마지막 번째를 출력한다.

【형식】
LAST_VALUE ( expr ) OVER ( analytic_절)

【예제】
SQL> select salary,last_value(name)
  2  over (order by salary asc)
  3  from (select * from employees
  4        where dept_no = 20
  5        order by salary);

    SALARY LAST_VALUE
---------- ----------
       220 jijoe
       240 Joe

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



6-11) LEAD 함수
--------------------------------------------------------------------------------

이 함수는 analytic 함수로서, self join하지 않고
하나의 테이블에서 동시에 한 행(row) 이상을 접근할 수 있도록 한다.

【형식】
LEAD ( value_expr [,offset] [,default] )
     OVER ([query_partition_clause] order_by_clause )

【예제】
SQL> select name,salary,LEAD(salary,1,0)   
  2   OVER (ORDER BY salary) FROM  employees;

NAME           SALARY LEAD(SALARY,1,0)OVER(ORDERBYSALARY)
---------- ---------- -----------------------------------
jijoe             220                                 240
Joe               240                                 250
Cho               250                                 250
kim               250                                   0

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>


6-12) NTILE 함수
--------------------------------------------------------------------------------

이 함수는 analytic 함수로서, 데이터를 주어진 bucket 수 expr로 분리한다.

【형식】
NTILE ( expr ) OVER ([query_partition_clause] order_by_clause )

【예제】
SQL> select name,salary,NTILE(3) OVER (ORDER BY salary DESC)
  2  FROM  employees;

NAME           SALARY NTILE(3)OVER(ORDERBYSALARYDESC)
---------- ---------- -------------------------------
Cho               250                               1
kim               250                               1
Joe               240                               2
jijoe             220                               3

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



6-13) RATIO_TO_REPORT 함수
--------------------------------------------------------------------------------

이 함수는 analytic 함수로서, 데이터 합에 대한 구성비를 계산한다.

【형식】
RATIO_TO_REPORT ( expr ) OVER ([query_partition_clause])

【예제】
SQL> select name,salary,RATIO_TO_REPORT(salary) OVER ()
  2   FROM  employees;

NAME           SALARY RATIO_TO_REPORT(SALARY)OVER()
---------- ---------- -----------------------------
Cho               250                    .260416667
Joe               240                           .25
kim               250                    .260416667
jijoe             220                    .229166667

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



6-14) ROW_NUMBER 함수
--------------------------------------------------------------------------------

이 함수는 analytic 함수로서, 각 행(row)에 unique 번호를 부여한다.

【형식】
ROW_NUMBER () OVER ([query_partition_clause] order_by_clause )

【예제】
SQL> SELECT ROW_NUMBER() OVER (ORDER BY salary DESC),name
  2    FROM  employees;

ROW_NUMBER()OVER(ORDERBYSALARYDESC) NAME      
----------------------------------- ----------
                                  1 Cho       
                                  2 kim       
                                  3 Joe       
                                  4 jijoe     

SQL> select * from employees;

        ID    DEPT_NO NAME           SALARY      BONUS
---------- ---------- ---------- ---------- ----------
      1101         10 Cho               250        125
      1102         20 Joe               240        100
      1103         10 kim               250        100
      1104         20 jijoe             220        100

SQL>



7-1) REF 타입
--------------------------------------------------------------------------------
테이블의 어떤 컬럼이 독립된 다른 객체 테이블을 참조하는 데이터 타입을 의미한다.
일반적으로 테이블을 만들때 사용하는 외부키(foreign-key)를 이용한 참조관계와 유사하다.
REF 타입의 컬럼 데이터를 읽을 때는 반드시 DEREF 함수를 사용한다.
REF 타입으로 정의된 컬럼에는 실제 데이터가 저장되는 것이 아니고 참조되는 객체가 존재하는 포인트정보만 가지고 있기 때문에 객체가 삭제 된다면, 해당 컬러은 정상적으로 검색되지 못한다.
이러한 현상을 REF의 Dangling 현상이고 한다.
이러한 dangling 현상을 방지하기 위해서는 삭제된 객체 정보를 참조하는 행의 컬럼 정보를 analyze 명령어를 이용하여 null 값으로 변경해 주어야 한다.
【예제】
SQL> connect jijoe/jijoe_password
connected

SQL> create type person_type as object(
  2  first_name         varchar2(10),
  3  last_name          varchar2(10),
  4  phone              varchar(12),
  5  birthday           varchar2(12));
  6  /

Type created.

SQL> create type emp_type as object (
  2  empno      number,
  3  emp        person_type);
  4  /

Type created.

SQL> create table emp2 of emp_type
  2  oidindex emp_oid;

Table created.

SQL> insert into emp2 values(
  2  emp_type(1000,person_type('junik','joe','123-1234','20-jul-04')));

1 row created.

SQL> create table dept(
  2  empno      number(4),
  3  ename      varchar2(15),
  4  mgr        REF emp_type SCOPE IS emp2);

Table created.

SQL> insert into dept
  2  select empno, 'SCOTT', REF(e)
  3  from emp2 e
  4  where empno=1000;

1 row created.


【예제】
SQL> select ename,empno from dept;

ENAME                EMPNO
--------------- ----------
SCOTT                 1000

SQL> select mgr, DEREF(mgr) from dept;

MGR
--------------------------------------------------------------------------------
DEREF(MGR)(EMPNO, EMP(FIRST_NAME, LAST_NAME, PHONE, BIRTHDAY))
--------------------------------------------------------------------------------
0000220208DFA05B27A63701D9E034080020B588F4DFA05B27A63601D9E034080020B588F4
EMP_TYPE(1000, PERSON_TYPE('junik', 'joe', '123-1234', '20-jul-04'))


SQL>

【예제】
SQL> select empno,ename,mgr
  2  from dept
  3  where mgr is dangling;

no rows selected

SQL> analyze table dept validate REF update set dangling to NULL;

Table analyzed.

SQL>


8-1) ROWID 컬럼
--------------------------------------------------------------------------------

오라클에서 내부적으로 사용되는 컬럼을 pseudocolumn이라고 하며,
ROWID, ROWNUM등이 있다.
ROWID는 데이터베이스에서 컬럼이 위치한 장소이다.

【예제】
SQL> select rowid from test;

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL> select rowid from test
  2  where rowidtochar(rowid) like '%AABAA%';

ROWID
------------------
AAAHbHAABAAAMXCAAA

SQL> select lengthb(rowidtonchar(rowid)), rowidtonchar(rowid)
  2  from test;

LENGTHB(ROWIDTONCHAR(ROWID)) ROWIDTONCHAR(ROWID
---------------------------- ------------------
                          36 AAAHbHAABAAAMXCAAA

SQL>


여기서 rowid의 의미는 다음과 같다.
AAAHbH  AAB  AAAMXC  AAA 객체번호  테이블스페이스번호  블록번호  행번호



8-2) ROWNUM 컬럼
--------------------------------------------------------------------------------

오라클에서 내부적으로 사용되는 컬럼을 pseudocolumn이라고 하며,
ROWID, ROWNUM등이 있다.
ROWNUM은 테이블에서 select 되어진 일련 번호임
【예제】
SQL> select rownum,ename from emp;
 
    ROWNUM ENAME
---------- ----------
         1 CLARK
         2 MILLER
         3 JONES
         4 ALLEN
         5 MARTIN
         6 CHAN
 
6 rows selected.
 
SQL> delete from emp where ename='JONES';
 
1 row deleted.
 
SQL> select rownum,ename from emp;
 
    ROWNUM ENAME
---------- ----------
         1 CLARK
         2 MILLER
         3 ALLEN
         4 MARTIN
         5 CHAN
 
SQL>

Posted by 1010
02.Oracle/DataBase2008. 12. 22. 22:07
반응형

$ sqlplus "/ as sysdba" -- 접속한다.


- archive log mode 인지 아닌지 상태 확인

SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence     2
Current log sequence           4


- spfile 로 startup 되는지 pfile(init_SID.ora)로 startup 되는지 확인한다.

SQL> show parameter spfile
NAME                                               TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                                                string

- spfile 로 startup 하지 않는 걸로 확인되었으므로, pfile(init_SID.ora)로 startup 되는 것으로 확인 됨.
모든 parameter 수정은 pfile(init_SID.ora)에서 하면 됨.


1. parameter 수정

initSID.ora 에서 아래 부분을 주석(#)을 제거하고 적절한 값으로 설정 후 저장합니다.

log_archive_start = true
log_archive_dest = "/u01/app/oracle/oradata/TSH1/arch/ reopen=60"
log_archive_format = "SID_arch_%t_%s_%r.arc"


!) oracle10g 에서는

# *.log_archive_start = true --  주석처리
*.log_archive_dest_1 = "location=/oracle/oradata/ORCL/archive reopen=60"   (아카이브파일의 경로)
*.log_archive_format = SID_arch_%t_%s_%r.arc --  file 형식을 이와 같이 설정


 문제 : ORA-32004: obsolete and/or deprecated parameter(s) specified
 해결 : Remove the log_archive_start parameter.
 설명 : As of 10g the log_archive_start parameter has been deprecated.
         When placing the database into archive log mode the starting of the ARCH process is implictly set to auto.
         It is no longer possible to have a database in archive log mode but not have automatic archiving enabled.


2. DB shutdown
SQL> shutdown immediate


3. startup mount
SQL> startup mount


4. archive log mode 변경
SQL> alter database archivelog;


5. DB open
SQL> alter database open;


6. DB shutdown
SQL> shutdown immediate
가능하다면 이 시점에서 DB를 Shutdown 한 뒤  cold backup 을 받고 사용하세요.


- DB startup 후 archive file 이 정상적으로 쌓이는지 확인
SQL> ALTER SYSTEM SWITCH LOGFILE;


- 설정한 경로에 아카이브 파일이 생성되었는지 확인한다.
SQL> !

# ls /u01/app/oracle/oradata/TSH1/arch



### 만약, spfile 로 DB start 시...

- DB open 상태에서

SQL> alter system set log_archive_start=true scope=spfile;

SQL> alter system set log_archive_dest='/Backup/oradata/ORA9/ARC' scope=spfile;
SQL> alter system set log_archive_format='ORA9_%s.arc' scope=spfile;


!) oracle 10g 일 때

SQL> alter system set log_archive_dest='/Backup/oradata/ORA10/ARC' scope=spfile; -

SQL> alter system set log_archive_format='ORA10_%t_%s_%r.arc' scope=spfile; -


SQL> shutdown immediate;

SQL> startup mount;

SQL> archive log list

SQL> alter database archivelog;

SQL> archive log list

SQL> alter database open ;

Posted by 1010
02.Oracle/DataBase2008. 12. 22. 09:38
반응형

오라클 9i 임포트 가이드

2008.7.1 고진우 mr.big


*설명
익스포트한 덤프파일이 있는경우 새로 셋팅된 오라클디비에 임포트로 데이터를 밀어넣는 작업
새로 설치한 오라클디비명은 익스포트한 디비명과 동일하게 설치해야 함

*순서
1.오라클설치
2.리스너가동
3.sys계정으로 오라클 로그인
4.오라클인스턴스시작
5.테이블스페이스 생성
6.유저 생성
7.유저 권한부여
8.임포트

*정의
TESTUSER = 유저명
TESTUSER_TS = 테이블스페이스명
TESTUSER01.dbf = 테이블스페이스 실제 파일명

-------------------------------------------

1.오라클 설치 - 생략

2.리스너 가동
/home/oracle/9i/bin/lsnrctl start

3.sys계정으로 오라클 로그인
4.오라클인스턴스시작
[oracle@localhost ~]$su - oracle
[oracle@localhost ~]$sqlplus '/as sysdba'
SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jul 1 15:53:04 2008
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
SQL>startup;


5.테이블스페이스 생성
CREATE TABLESPACE TESTUSER_TS
DATAFILE '/home/oracle/oradata/MEDICAL/TESTUSER01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;

6.유저 생성
CREATE USER TESTUSER
IDENTIFIED BY "패스워드"
DEFAULT TABLESPACE "TESTUSER_TS"
temporary tablespace temp;

7.유저 권한부여
GRANT CREATE SESSION TO TESTUSER;
GRANT CREATE TABLE TO TESTUSER;
GRANT CREATE ANY INDEX TO TESTUSER;
GRANT CREATE TABLESPACE TO TESTUSER;
GRANT CREATE SEQUENCE TO TESTUSER;
GRANT CREATE VIEW,RESOURCE TO TESTUSER;


*참고 - 재작업시 유저삭제
//DROP USER TESTUSER CASCADE;


8.임포트
대화형 임포트로 작업
[oracle@localhost ~]$ imp
 
Import: Release 9.2.0.4.0 - Production on Tue Jul 1 15:15:22 2008
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
Username: TESTUSER
Password: 패스워드
 
Connected to: Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
 
Import file: expdat.dmp > /home/oracle/export파일명.dmp
 
Enter insert buffer size (minimum is 8192) 30720>
 
Export file created by EXPORT:V09.02.00 via conventional path
import done in KO16KSC5601 character set and AL16UTF16 NCHAR character set
import server uses WE8ISO8859P1 character set (possible charset conversion)
List contents of import file only (yes/no): no >
 
Ignore create error due to object existence (yes/no): no > yes
 
Import grants (yes/no): yes >
 
Import table data (yes/no): yes >
 
Import entire export file (yes/no): no >
Username: TESTUSER
 
Enter table(T) or partition(T:P) names. Null list means all tables for user
Enter table(T) or partition(T:P) name or . if done:
 
. importing TESTUSER's objects into TESTUSER
. . importing table                    "CATEGORY"        11 rows imported
. . importing table                      "MAPPING"        83 rows imported
. . importing table                        "BOARD"      1739 rows imported
. . importing table                "SPECIAL_LIST"        278 rows imported
. . importing table                  "TEST_TABLE"          0 rows imported
Import terminated successfully without warnings.

임포트를 완료하였습니다


-------------------

자세한 임포트문서가 없기에 몇번삽질후 문서로 만들어 봤습니다~
삽질하지 마시고 한방에 성공하시길 염원합니다 ^^



출처 : http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=61927&page=1


이건 먹는건가...

Posted by 1010
02.Oracle/DataBase2008. 12. 16. 15:14
반응형

Oracle® Database

Quick Installation Guide

11g Release 1 (11.1) for Solaris Operating System

B32313-02

August 2008

This guide describes how to quickly install Oracle Database 11g on Solaris systems. It includes information about the following:

1 Reviewing Information About This Guide

This guide describes how to install Oracle Database by using the default installation options.

Tasks Described in This Guide

The procedures in this guide describe how to:

  • Configure your system to support Oracle Database

  • Install Oracle Database on a local file system by using the Basic Installation option

  • Configure a general-purpose Oracle Database installation that uses the local file system for database file storage

Results of a Successful Installation

After you successfully install Oracle Database:

  • The database that you created and the default Oracle Net listener process run on the system.

  • Oracle Enterprise Manager Database Control run and can be accessed by using a Web browser.

Tasks Not Described in This Guide

This guide covers the Basic Installation scenario and does not describe how to complete the following tasks:

  • Using the Advanced Installation option to install the software

  • Installing the software on a system that has an existing Oracle software installation

  • Installing Oracle Clusterware and Oracle Real Application Clusters (RAC) on a cluster

  • Enabling Enterprise Manager e-mail notifications or automated backups

  • Using alternative storage options such as Automatic Storage Management or raw devices for database storage

Where to Get Additional Installation Information

For more information about installing Oracle Database, including information about the tasks not described in this guide, refer to one of the following guides:

Both these guides are available on the product disc. To access them, use a Web browser to open the welcome.htm file located in the top-level directory of the installation media, and then select the Documentation tab.

2 Logging In to the System as root

Before you install Oracle Database, you must complete several tasks as the root user. To log in as the root user, complete one of the following procedures:

Note:

You must install the software from an X Window System workstation, an X terminal, or a PC or other system with X server software installed.
  • If you are installing the software from an X Window System workstation or X terminal, then:

    1. Start a local terminal session, for example, an X terminal (xterm).

    2. If you are not installing the software on the local system, then enter the following command to enable the remote host to display X applications on the local X server:

      $ xhost fully_qualified_remote_host_name
      

      For example:

      $ xhost somehost.us.example.com
      
    3. If you are not installing the software on the local system, then use the ssh, rlogin, or telnet command to connect to the system where you want to install the software:

      $ telnet fully_qualified_remote_host_name
      
    4. If you are not logged in as the root user, then enter the following command to switch user to root:

      $ su -
      password:
      #
      
  • If you are installing the software from a PC or other system with X server software installed, then:

    Note:

    If necessary, refer to your X server documentation for more information about completing this procedure. Depending on the X server software that you are using, you may need to complete the tasks in a different order.
    1. Start the X server software.

    2. Configure the security settings of the X server software to permit remote hosts to display X applications on the local system.

    3. Connect to the remote system where you want to install the software, and start a terminal session on that system, for example, an X terminal (xterm).

    4. If you are not logged in as the root user on the remote system, then enter the following command to switch user to root:

      $ su -
      password:
      #
      

3 Checking the Hardware Requirements

The system must meet the following minimum hardware requirements:

3.1 Memory Requirements

The following are the memory requirements for installing Oracle Database 11g Release 1:

  • At least 1 GB of RAM

    To determine the physical RAM size, enter the following command:

    # /usr/sbin/prtconf | grep "Memory size"
    

    If the size of the physical RAM is less than the required size, then you must install more memory before continuing.

  • The following table describes the relationship between installed RAM and the configured swap space requirement:

    RAM Swap Space
    Between 1024 MB and 2048 MB 1.5 times the size of RAM
    Between 2049 MB and 8192 MB Equal to the size of RAM
    More than 8192 MB 0.75 times the size of RAM

    To determine the size of the configured swap space, enter the following command:

    # /usr/sbin/swap -s
    

    If necessary, refer to the operating system documentation for information about how to configure additional swap space.

  • To determine the available RAM and swap space, enter the following command:

    # sar -r -i n 
    

    where, n is the number of seconds to delay for the next iterations and i is the number of iterations you want to test.

Note:

Oracle recommends that you take multiple values for the available RAM and swap space before freezing on a value. This is because the available RAM and swap space keep changing depending on the user interactions with the computer.

3.2 System Architecture

To determine whether the system architecture can run the software, enter the following command:

# /bin/isainfo -kv

Note:

This command displays the processor type. Verify that the processor architecture matches the Oracle software release that you want to install. If you do not see the expected output, then you cannot install the software on this system.

3.3 Disk Space Requirements

The following are the disk space requirements for installing Oracle Database 11g Release 1:

  • Between 225 and 275 MB of disk space in the /tmp directory

    To determine the amount of disk space available in the /tmp directory, enter the following command:

    On Solaris 10:

    # df -h /tmp
    

    Other Solaris Platforms:

    # df -k /tmp
    

    If there is less than 400 MB of free disk space available in the /tmp directory, then complete one of the following steps:

    • Delete unnecessary files from the /tmp directory to meet the disk space requirement.

    • Set the TMP and TMPDIR environment variables when setting the oracle user's environment (described later).

    • Extend the file system that contains the /tmp directory. If necessary, contact the system administrator for information about extending file systems.

  • To determine the amount of free disk space on the system, enter the following command:

    On Solaris 10:

    # df -h
    

    Other Solaris Platforms:

    # df -k
    
  • The following table shows the approximate disk space requirements for software files for each installation type:

    Installation Type Requirement for Software Files (GB)
    Enterprise Edition 4.68
    Standard Edition 4.62
    Custom (maximum) 4.71

  • Between 1.5 GB and 2 GB of disk space is required for preconfigured database that uses file system storage (optional)

    Note:

    The disk space requirement for databases that use Automatic Storage Management is described later in this chapter.

    Additional disk space, either on a file system or in an Automatic Storage Management disk group, is required for the flash recovery area if you choose to configure automated backups.

4 Checking the Software Requirements

Depending on the products that you intend to install, verify that the following software are installed on the system.

Note:

Oracle Universal Installer performs checks on the system to verify that it meets the listed requirements. To ensure that these checks pass, verify the requirements before you start Oracle Universal Installer.

4.1 Operating System Requirements

The following are the operating system requirements for Oracle Database 11g Release 1:

  • Solaris 9 Update 7 or later

  • Solaris 10

To determine the distribution and version of Solaris installed, enter the following command:

# uname -r
5.9

In this example, the version shown is Solaris 9 (5.9). If necessary, refer to your operating system documentation for information about upgrading the operating system.

To determine the update level of Solaris installed, enter the following command:

$ cat /etc/release
Solaris 9 4/03 s9s_u3wos_

In the output of the command, _u3 refers to update 3 of Solaris 9.

4.2 Package Requirements

The following packages (or later versions) must be installed:

SUNWarc
SUNWbtool
SUNWhea
SUNWlibC
SUNWlibm
SUNWlibms
SUNWsprot
SUNWtoo
SUNWi1of
SUNWi1cs
SUNWi15cs
SUNWxwfnt
SUNWsprox

Note:

The SUNWsprox package is not supported on Solaris 10.

You may also require additional font packages for Java, depending on your locale. Refer to the following Web site for more information:

http://java.sun.com/j2se/1.4.2/font-requirements.html

To determine whether the required packages are installed, enter commands similar to the following:

# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \
 SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

If a package is not installed, then install it. Refer to your operating system or software documentation for information about installing packages.

4.3 Compiler Requirements

Starting with Oracle Database 11g release 1, Sun One Studio 11 is the supported compiler for Pro*C/C++ , Oracle Call Interface, Oracle C++ Call Interface, and Oracle XML Developer's Kit (XDK) with Oracle Database 11g release 1.

4.4 Additional Software Requirements

Depending on the components you want to use, you must ensure that the following software are installed:

4.4.1 Oracle Messaging Gateway

Oracle Messaging Gateway supports the integration of Oracle Streams Advanced Queuing (AQ) with the following software:

  • IBM MQSeries V6, client and server

  • TIBCO Rendezvous 7.2

If you require a CSD for WebSphere MQ, then refer to the following Web site for download and installation information:

http://www-306.ibm.com/software/integration/wmq/support

4.4.2 Oracle JDBC/OCI Drivers

You can use the following optional JDK versions with the Oracle JDBC/OCI drivers. However, these are not mandatory for the installation:

Sun JDK 1.5.0

4.4.3 Browser Requirements

Web browsers must support Java Script and the HTML 4.0 and CSS 1.0 standards. The following browsers meet these requirements. On Oracle Enterprise Manager Database Control:

  • Netscape Navigator 7.2

  • Netscape Navigator 8.1

  • Mozilla version 1.7

  • Microsoft Internet Explorer 6.0 SP2

  • Microsoft Internet Explorer 7.0

  • Firefox 1.0.4

  • Firefox 1.5

  • Firefox 2.0

4.5 Patch Requirements

The following are the list of patches required for Oracle Database 11g Release 1.

4.5.1 Operating system-specific patches

Installation Type or Product Requirement
All installations Patches for Solaris 9:
  • 112233-11, SunOS 5.9: Kernel Patch

  • 118558-22, SunOS 5.9: Kernel Patch

  • 111722-04, SunOS 5.9: Math Library (libm) patch

  • 112874-39 SunOS 5.9 : libc patch

The following additional patches are required for Numa Systems:

  • 115675-01, SunOS 5.9: liblgrp API

  • 113471-08, SunOS 5.9: Miscellaneous SunOS Commands Patch

  • 115675-01, SunOS 5.9: /usr/lib/liblgrp.so Patch

Patches for Solaris 10:

  • 127111-02 SunOS 5.10: libc patch

  • 137111-04 SunOS 5.10: kernel patch

Pro*C/C++, Pro*FORTRAN, Oracle Call Interface, Oracle C++ Call Interface, Oracle XML Developer's Kit (XDK) Patch for Solaris 9 :

112760-05, C 5.5: Patch for S1S8CC C compiler

Patches For Solaris 10:

  • 117837-05: C++ compiler optimizer patch

  • 117846-08: C++ compiler Optimization patch

  • 118682-01


To determine whether an operating system patch is installed, enter a command similar to the following:

# /usr/sbin/patchadd -p | grep patch_number(without version number)

For example, to determine if any version of the 111713 patch is installed, use the following command:

# /usr/sbin/patchadd -p | grep 111713

If an operating system patch is not installed, then download it from the following Web site and install it:

http://sunsolve.sun.com

5 Creating Required Operating System Groups and User

The following local operating system groups and users are required if you are installing Oracle Database:

  • The Oracle Inventory group (oinstall)

  • The OSDBA group (dba)

  • The Oracle software owner (oracle)

To determine whether these groups and users already exist, and if necessary, to create them, follow these steps:

  1. To determine whether the oinstall group exists, enter the following command:

    # more /var/opt/oracle/oraInst.loc
    

    If the output of this command shows the oinstall group name, then the group already exists.

    Note:

    In Oracle documentation, Oracle Inventory group is called oinstall. However, it is not mandatory to use the same name, you can enter a different name for the group.

    If the oraInst.loc file exists, then the output from this command is similar to the following:

    inventory_loc=/u01/app/oracle/oraInventory
    inst_group=oinstall
    

    The inst_group parameter shows the name of the Oracle Inventory group, oinstall.

  2. To determine whether the dba group exists, enter the following command:

    # grep dba /etc/group
    

    If the output from this commands shows the dba group name, then the group already exists.

  3. If necessary, enter the following commands to create the oinstall and dba groups:

    # /usr/sbin/groupadd oinstall
    # /usr/sbin/groupadd dba
    
  4. To determine whether the oracle user exists and belongs to the correct groups, enter the following command:

    # id -a oracle
    

    If the oracle user exists, this command displays information about the groups to which the user belongs. The output should be similar to the following, indicating that oinstall is the primary group and dba is a secondary group:

    uid=440(oracle) gid=200(oinstall) groups=201(dba),202(oper)
    
  5. If necessary, complete one of the following actions:

    • If the oracle user exists, but its primary group is not oinstall or it is not a member of the dba group, then enter the following command:

      # /usr/sbin/usermod -g oinstall -G dba oracle
      
    • If the oracle user does not exist, enter the following command to create it:

      # /usr/sbin/useradd -g oinstall -G dba oracle
      

      This command creates the oracle user and specifies oinstall as the primary group and dba as the secondary group.

  6. Enter the following command to set the password of the oracle user:

    # passwd -r files oracle
    

6 Configuring Kernel Parameters

Note:

The kernel parameter and shell limit values shown in the following section are recommended values only. For production database systems, Oracle recommends that you tune these values to optimize the performance of the system. Refer to your operating system documentation for more information about tuning kernel parameters.

Verify that the kernel parameters shown in the following table are set to values greater than or equal to the recommended value shown on Solaris 9 operating systems. The procedure following the table describes how to verify and set the values.

6.1 Configuring Kernel Parameters On Solaris 9

On Solaris Operating System (SPARC 64-bit) installations running Solaris 9, verify that the kernel parameters shown in the following table are set to values greater than or equal to the recommended value:

Parameter Recommended Value
noexec_user_stack 1
semsys:seminfo_semmni 100
semsys:seminfo_semmns 1024
semsys:seminfo_semmsl 256
semsys:seminfo_semvmx 32767
shmsys:shminfo_shmmax 4294967296
shmsys:shminfo_shmmni 100

Use the following procedure to view the current value specified for resource controls, and to change them if necessary:

  1. To view the current values of these parameters, enter the following commands:

    # grep noexec_user_stack /etc/system
    # /usr/sbin/sysdef | grep SEM
    # /usr/sbin/sysdef | grep SHM
    
  2. If you must change any of the current values, then:

    1. Create a backup copy of the /etc/system file, for example:

      # cp /etc/system /etc/system.orig
      
    2. Open the /etc/system file in any text editor and, if necessary, add lines similar to the following (edit the lines if the file already contains them):

      set noexec_user_stack=1
      set semsys:seminfo_semmni=100
      set semsys:seminfo_semmns=1024
      set semsys:seminfo_semmsl=256
      set semsys:seminfo_semvmx=32767
      set shmsys:shminfo_shmmax=4294967296
      set shmsys:shminfo_shmmni=100
      
    3. Enter the following command to restart the system:

      # /usr/sbin/reboot
      
    4. When the system restarts, log in and switch user to root.

  3. Repeat this procedure on all other nodes in the cluster.

6.2 Configuring Kernel Parameters on Solaris 10

On Solaris 10, verify that the kernel parameters shown in the following table are set to values greater than or equal to the recommended value shown. The table also contains the resource controls that replace the /etc/system file for a specific kernel parameter. As Oracle Database does not set project information when starting processes, some /etc/system processes that are deprecated but not removed must still be set for Oracle Database.

Note:

In Solaris 10, you are not required to make changes to the /etc/system file to implement the System V IPC. Solaris 10 uses the resource control facility for its implementation. However, Oracle recommends that you set both resource control and /etc/system/ parameters. Operating system parameters not replaced by resource controls continue to affect performance and security on Solaris 10 systems. For further information, contact your Sun vendor.
Parameter Replaced by Resource Control Recommended Value
noexec_user_stack NA 1
semsys:seminfo_semmni project.max-sem-ids 100
semsys:seminfo_semmns NA 1024
semsys:seminfo_semmsl process.max-sem-nsems 256
semsys:seminfo_semvmx NA 32767
shmsys:shminfo_shmmax project.max-shm-memory 4294967296
shmsys:shminfo_shmmni project.max-shm-ids 100

On Solaris 10, use the following procedure to view the current value specified for resource controls, and to change them if necessary:

  1. To view the current values of the resource control, enter the following commands:

    # id -p // to verify the project id
    uid=0(root) gid=0(root) projid=1 (user.root)
    # prctl -n project.max-shm-memory -i project user.root
    # prctl -n project.max-sem-ids -i project user.root
    
  2. If you must change any of the current values, then:

    1. To modify the value of max-shm-memory to 6 GB:

      # prctl -n project.max-shm-memory -v 6gb -r -i project user.root
      
    2. To modify the value of max-sem-ids to 256:

      # prctl -n project.max-sem-ids -v 256 -r -i project user.root
      

Note:

When you use the prctl command (Resource Control) to change system parameters, you do not need to restart the system for these parameter changes to take effect. However, the changed parameters do not persist after a system restart.

Use the following procedure to modify the resource control project settings, so that they persist after a system restart:

  1. By default, Oracle instances are run as the oracle user of the dba group. A project with the name group.dba is created to serve as the default project for the oracle user. Run the command id to verify the default project for the oracle user:

    # su - oracle
    $ id -p
    uid=100(oracle) gid=100(dba) projid=100(group.dba)
    $ exit
    
  2. To set the maximum shared memory size to 2 GB, run the projmod command:

    # projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba
    

    Alternatively, add the resource control value project.max-shm-memory=(privileged,2147483648,deny) to the last field of the project entries for the Oracle project.

  3. After these steps are complete, check the values for the /etc/project file using the following command:

    # cat /etc/project
    

    The output should be similar to the following:

    system:0::::
    user.root:1::::
    noproject:2::::
    default:3::::
    group.staff:10::::
    group.dba:100:Oracle default
    project:::project.max-shmmemory=(privileged,2147483648,deny)
        
    
  4. To verify that the resource control is active, check process ownership, and run the commands id and prctl, as in the following example:

    # su - oracle
    $ id -p
    uid=100(oracle) gid=100(dba) projid=100(group.dba)
    $ prctl -n project.max-shm-memory -i process $$
    process: 5754: -bash
    NAME                    PRIVILEGE     VALUE     FLAG     ACTION    RECIPIENT
    project.max-shm-memory  privileged    2.00GB     -       deny 
    

    Note:

    The value for the maximum shared memory depends on the SGA requierments and should be set to a value greater than the SGA size.

    For additional information, refer to the Solaris Tunable Parameters Reference Manual.

7 Creating Required Directories

Create directories with names similar to the following, and specify the correct owner, group, and permissions for them:

  • The Oracle base directory

  • An optional Oracle data file directory (optional)

The Oracle base directory must have 3 GB of free disk space, or 4 GB of free disk space if you choose not to create a separate Oracle data file directory.

Note:

If you do not want to create a separate Oracle data file directory, you can install the data files in a subdirectory of the Oracle base directory. However, this is not recommended for production databases.

To determine where to create these directories:

  1. Enter the following command to display information about all mounted file systems:

    # df -k
    

    This command displays information about all the file systems mounted on the system, including:

    • The physical device name

    • The total amount, used amount, and available amount of disk space, in kilobytes

    • The mount point directory for that file system

  2. From the display, identify either one or two file systems that meet the following requirements:

    • A single file system with at least 1.2 GB of free disk space

    • Two or more file systems with at least 1.2 GB of free disk space in total

  3. Note the name of the mount point directory for each file system that you identified.

In the following examples, /u01 is the mount point directory used for the software, and /u02 is the mount point directory used for the Oracle data file directory. You must specify the appropriate mount point directories for the file systems on your system.

To create the required directories and specify the correct owner, group, and permissions for them:

Note:

In the following procedure, replace /u01 and /u02 with the appropriate mount point directories that you identified in Step 3 previously.
  1. Enter the following command to create subdirectories in the mount point directory that you identified for the Oracle base directory:

    # mkdir -p /u01/app/oracle
    
  2. If you intend to use a second file system for the Oracle Database files, then create an oradata subdirectory in the mount point directory that you identified for the Oracle data file directory (shown as /u02 in the examples):

    # mkdir /u02/oradata
    
  3. Change the owner and group of the directories that you created to the oracle user and the oinstall group:

    # chown -R oracle:oinstall /u01/app/oracle
    # chown -R oracle:oinstall /u02/oradata
    
  4. Change the permissions on the directories that you created to 775:

    # chmod -R 775 /u01/app/oracle
    # chmod -R 775 /u02/oradata
    

8 Configuring the oracle User's Environment

You run Oracle Universal Installer from the oracle account. However, before you start Oracle Universal Installer, you must configure the environment of the oracle user. To configure the environment, you must:

  • Set the default file mode creation mask (umask) to 022 in the shell startup file.

  • Set the DISPLAY environment variable.

To set the oracle user's environment:

  1. Start a new terminal session.

  2. Enter the following command to ensure that X Window applications can display on this system:

    $ xhost fully_qualified_remote_host_name
    
  3. Complete one of the following steps:

    • If the terminal session is not connected to the system where you want to install the software, then log in to that system as the oracle user.

    • If the terminal session is connected to the system where you want to install the software, then switch user to oracle:

      $ su - oracle
      
  4. To determine the default shell for the oracle user, enter the following command:

    $ echo $SHELL
    
  5. Open the oracle user's shell startup file in any text editor:

    • C shell (csh or tcsh):

      % vi .login
      
  6. Enter or edit the following line in the shell startup file, specifying a value of 022 for the default file mode creation mask:

    umask 022
    
  7. If the ORACLE_SID, ORACLE_HOME, or ORACLE_BASE environment variable is set in the file, then remove the appropriate lines from the file.

  8. Save the file, and exit from the editor.

  9. To run the shell startup script, enter the following command:

    • Bourne shell, Bash shell on SUSE, or Korn shell:

      $ . ./.profile
      
    • C shell:

      % source ./.login
      
  10. If you are not installing the software on the local computer, then run the following command on the remote computer to set the DISPLAY variable:

    • Bourne, Bash or Korn shell:

      $ export DISPLAY=local_host:0.0    
      
    • C shell:

      % setenv DISPLAY local_host:0.0
      

    In this example, local_host is the host name or IP address of the local computer that you want to use to display Oracle Universal Installer.

    Run the following command on the remote computer to check if the shell and the DISPLAY environmental variable are set correctly:

    echo $SHELL
    echo $DISPLAY
    

    Now to enable X applications, run the following commands on the local computer:

    $ xhost + fully_qualified_remote_host_name
    

    To verify that X applications display is set properly, run a X11 based program that comes with the operating system such as xclock:

    $ xclock_path
    

    In this example, xclock_path is the directory path. For example, you can find xclock at /usr/X11R6/bin/xclocks. If the DISPLAY variable is set properly, then you can see xclock on your computer screen.

    See Also:

    PC-X Server or Operating System vendor documents for further assistance
  11. If you determined that the /tmp directory had insufficient free disk space when checking the hardware requirements, then enter the following commands to set the TMP and TMPDIR environment variables. Specify a directory on a file system with sufficient free disk space.

    • Bourne, Bash, or Korn shell:

      $ TMP=/directory
      $ TMPDIR=/directory
      $ export TMP TMPDIR
      
    • C shell:

      % setenv TEMP /directory
      % setenv TMPDIR /directory
      
  12. Enter commands similar to the following to set the ORACLE_BASE and ORACLE_SID environment variables:

    • Bourne, Bash, or Korn shell:

      $ ORACLE_BASE=/u01/app/oracle
      $ ORACLE_SID=sales
      $ export ORACLE_BASE ORACLE_SID
      
    • C shell:

      % setenv ORACLE_BASE /u01/app/oracle
      % setenv ORACLE_SID sales
      

    In these examples, /u01/app/oracle is the Oracle base directory that you created earlier, and sales is the name that you want to call the database (typically no more than five characters).

  13. Enter the following commands to ensure that the ORACLE_HOME and TNS_ADMIN environment variables are not set:

    • Bourne, Bash, or Korn shell:

      $ unset ORACLE_HOME
      $ unset TNS_ADMIN
      
    • C shell:

      % unsetenv ORACLE_HOME
      % unsetenv TNS_ADMIN
      
  14. To verify that the environment has been set correctly, enter the following commands:

    $ umask
    $ env | more
    

    Verify that the umask command displays a value of 22, 022, or 0022 and the environment variables that you set in this section have the correct values.

9 Mounting the Product Disc

On most Solaris systems, the product disc mounts automatically when you insert it into the drive. If the disc does not mount automatically, then follow these steps to mount it:

  1. Switch user to root:

    $ su - root
    
  2. If necessary, enter a command similar to the following to eject the currently mounted disc, then remove it from the drive:

    # eject
    
  3. Insert the disc into the disc drive.

  4. To verify that the disc mounted automatically, enter a command similar to the following:

    # ls /dvd/dvd0
    
  5. If this command fails to display the contents of the disc, then enter a command similar to the following:

    # /usr/sbin/mount -r -F hsfs /dev/dsk/cxtydzs2 /dvd
    

    In this example, /dvd is the disc mount point directory and /dev/dsk/cxtydzs2 is the device name for the disc device, for example /dev/dsk/c0t2d0s2.

  6. If Oracle Universal Installer displays the Disk Location dialog box, then enter the disc mount point directory path. For example:

    • Disc mounted automatically:

      /dvd/dvd0
      
    • Disc mounted manually:

      /dvd
      

10 Installing Oracle Database

After configuring the oracle user's environment, start Oracle Universal Installer and install Oracle Database as follows:

  1. To start Oracle Universal Installer, enter the following command:

    $ /mount_point/db/runInstaller
    

    If Oracle Universal Installer does not start, then refer to Oracle Database Installation Guide for Solaris Operating System for information about how to troubleshoot X Window display problems.

  2. The following table describes the recommended action for each Oracle Universal Installer screen. Use the following guidelines to complete the installation:

    Note:

    • If you have completed the tasks listed previously, then you can complete the installation by choosing the default values on most screens.
    • In Oracle documentation, Oracle Inventory group is called oinstall. However, it is not mandatory to use the same name, you can enter a different name for the group.

    Screen Recommended Action
    Select a Product to Install This screen enables you to install any one for the following products:
    • Oracle Database 11g

    • Oracle Client

    • Oracle Clusterware

    Click Next.

    Select Installation Method The Basic Installation option is selected by default.

    Specify the directory path of the Oracle home. Ensure that the oinstall group is selected. If you want to create a starter database, then specify a name and password for it. Then, click Next.

    Specify Inventory Directory and Credentials This screen is displayed only during the first installation of Oracle products on a system.

    Specify the full path of the Oracle Inventory directory. Ensure that the operating system group selected is oinstall. Then, click Next.

    Product-Specific Prerequisite Checks Verify that all of the prerequisite checks succeed, and then click Next.

    Oracle Universal Installer checks the system to verify that it is configured correctly to run Oracle software. If you have completed all of the preinstallation steps in this guide, all of the checks should pass.

    If a check fails, then review the cause of the failure listed for that check on the screen. If possible, rectify the problem and rerun the check. Alternatively, if you are satisfied that your system meets the requirements, then you can select the check box for the failed check to manually verify the requirement.

    Oracle Configuration Manager Enter the Customer Identification Number, Metalink User Name, Country code, and Click Next. The new screen prompts you to accept the license agreement. Click Accept license Agreement to accept the agreement.

    If you decline this agreement, then Oracle Configuration Manager is installed but not configured.

    Summary Review the information displayed on this screen, and then click Install.
    Install This screen displays status information while the product is installed.
    Configuration Assistants This screen displays status information for the configuration assistants that configure the software and create a database. When the message is displayed at the end of this process, click OK to continue.
    Execute Configuration Scripts When prompted, read the instructions and then run the scripts mentioned on this screen. Click OK to continue.
    End of Installation The configuration assistants configure several Web-based applications, including Oracle Enterprise Manager Database Control. This screen displays the URLs configured for these applications. Make a note of the URLs used. The port numbers used in these URLs are also recorded in the following file:
    oracle_home/install/portlist.ini
    

    To exit from Oracle Universal Installer, click Exit and then click Yes.


11 Installing Oracle Database Examples

If you plan to use the following products or features, then download and install the products from the Oracle Database Examples media:

  • Oracle JDBC Development Drivers

  • Oracle Database Examples

  • Oracle Context Companion

  • Various Oracle product demonstrations

For information about installing software and various Oracle product demonstrations from the Oracle Database Examples media, refer to Oracle Database Examples Installation Guide.

12 What to Do Next?

To become familiar with this release of Oracle Database, it is recommended that you complete the following tasks:

  • Log in to Oracle Enterprise Manager Database Control using a Web browser.

    Oracle Enterprise Manager Database Control is a Web-based application that you can use to manage a single Oracle Database installation. The default URL for Database Control is similar to the following:

    http://host.domain:1158/em/
    

    To log in, use the user name SYS and connect as SYSDBA. Use the password that you specified for this user during the Oracle Database 10g installation.

  • Refer to Oracle Database Installation Guide for Solaris Operating System for information about required and optional postinstallation tasks, depending on the products that you want to use.

  • Refer to Oracle Database Installation Guide for Solaris Operating System for information about how to use Database Control to learn about the configuration of your installed database.

  • To learn more about using Oracle Enterprise Manager Database Control to administer a database, refer to Oracle Database 2 Day DBA.

    This guide, designed for new Oracle DBAs, describes how to use Database Control to manage all aspects of an Oracle Database installation. It also provides information about how to enable e-mail notifications and automated backups, which you might not have configured during the installation.

13 Additional Information

This section contains information about the following:

Product Licenses

You are welcome to install and evaluate the products included in this media pack for 30 days under the terms of the Trial License Agreement. However, you must purchase a program license if you want to continue using any product after the 30 day evaluation period. See the following section for information about purchasing program licenses.

Purchasing Licenses, Version Updates, and Documentation

You can purchase program licenses, updated versions of Oracle products, and printed versions of Oracle documentation from the Oracle Store Web site:

http://oraclestore.oracle.com

Contacting Oracle Support Services

If you have purchased Oracle Product Support, you can call Oracle Support Services for assistance 24 hours a day, seven days a week. For information about purchasing Oracle Product Support or contacting Oracle Support Services, go to the Oracle Support Services Web site:

http://www.oracle.com/support

Locating Product Documentation

Documentation for Oracle products is available in both HTML and Adobe portable document format (PDF) formats from several locations:

  • On discs in the media pack:

    • Platform-specific documentation is available on the product discs. To access this documentation, see the welcome.htm file located in the top-level directory of the installation media.

    • Generic product documentation is available in the Oracle Documentation Library.

  • From the Oracle Technology Network Web site:

    http://www.oracle.com/technology/documentation/index.html

To view PDF documents, download the free Adobe Acrobat Reader from the Adobe Web site, if necessary:

http://www.adobe.com

14 Documentation Accessibility

Our goal is to make Oracle products, services, and supporting documentation accessible, with good usability, to the disabled community. To that end, our documentation includes features that make information available to users of assistive technology. This documentation is available in HTML format, and contains markup to facilitate access by the disabled community. Accessibility standards will continue to evolve over time, and Oracle is actively engaged with other market-leading technology vendors to address technical obstacles so that our documentation can be accessible to all of our customers. For more information, visit the Oracle Accessibility Program Web site at http://www.oracle.com/accessibility/.

Accessibility of Code Examples in Documentation

Screen readers may not always correctly read the code examples in this document. The conventions for writing code require that closing braces should appear on an otherwise empty line; however, some screen readers may not always read a line of text that consists solely of a bracket or brace.

Accessibility of Links to External Web Sites in Documentation

This documentation may contain links to Web sites of other companies or organizations that Oracle does not own or control. Oracle neither evaluates nor makes any representations regarding the accessibility of these Web sites.

TTY Access to Oracle Support Services

Oracle provides dedicated Text Telephone (TTY) access to Oracle Support Services within the United States of America 24 hours a day, 7 days a week. For TTY support, call 800.446.2398. Outside the United States, call +1.407.458.2479.


Oracle Database Client Installation Guide, 11g Release 1 (11.1) for Solaris Operating System

B32313-02

Copyright © 2008, Oracle. All rights reserved.

The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited.

The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose.

If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software—Restricted Rights (June 1987). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065

The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs.

Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party.

Posted by 1010
02.Oracle/DataBase2008. 12. 16. 15:06
반응형

Solaris Installation Guides

Release Notes for Solaris Operating System HTML PDF
Quick Installation Guide for Solaris Operating System (SPARC) HTML PDF
Installation Guide for Solaris Operating System HTML PDF
Client Quick Installation Guide for Solaris Operating System (SPARC) HTML PDF
Client Installation Guide for Solaris Operating System HTML PDF
Clusterware Installation Guide for Solaris Operating System HTML PDF
Real Application Clusters Installation Guide for Linux and UNIX HTML PDF

HP-UX Installation Guides

Release Notes for HP-UX HTML PDF
Quick Installation Guide for HP-UX Itanium HTML PDF
Quick Installation Guide for HP-UX PA-RISC (64-Bit) HTML PDF
Installation Guide for HP-UX HTML PDF
Client Quick Installation Guide for HP-UX Itanium HTML PDF
Client Quick Installation Guide for HP-UX PA-RISC (64-Bit) HTML PDF
Client Installation Guide for HP-UX HTML PDF
Clusterware Installation Guide for HP-UX HTML PDF
Real Application Clusters Installation Guide for Linux and UNIX HTML PDF

AIX Installation Guides

Release Notes for AIX Based Systems HTML PDF
Quick Installation Guide for AIX Based Systems HTML PDF
Installation Guide for AIX Based Systems HTML PDF
Client Quick Installation Guide for AIX Based Systems HTML PDF
Client Installation Guide for AIX Based Systems HTML PDF
Clusterware Installation Guide for AIX Based Systems HTML PDF
Real Application Clusters Installation Guide for Linux and UNIX HTML PDF

Supplementary Installation Guides

Products installed separately from the database.

Examples Installation Guide HTML PDF
Gateway for APPC Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX PA-RISC (64-Bit), Solaris Operating System (SPARC 64-Bit), and Linux x86 HTML PDF
Gateway for APPC Installation and Configuration Guide for Microsoft Windows HTML PDF
Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX PA-RISC (64-Bit), Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64 HTML PDF
Gateway for IMS, VSAM, and Adabas Installation and Configuration Guide for Microsoft Windows HTML PDF
Gateway Installation and Configuration Guide for AIX 5L Based Systems (64-Bit), HP-UX PA-RISC (64-Bit), Solaris Operating System (SPARC 64-Bit), Linux x86, and Linux x86-64 HTML PDF
Gateway Installation and Configuration Guide for Microsoft Windows HTML PDF
Warehouse Builder Installation and Administration Installation and Administration Guide for Windows and UNIX HTML PDF
Posted by 1010
02.Oracle/DataBase2008. 12. 8. 10:06
반응형
자바 jdbc 드라이버를 이용해서 oracle로 부터 취득하는
Number 타입은 전부 BigDeicimal 타입으로 받아 온다.
잊어 버리지 말자
Posted by 1010
02.Oracle/DataBase2008. 12. 2. 19:01
반응형
Posted by 1010
02.Oracle/DataBase2008. 11. 28. 17:11
반응형

예 kfm08ot1이라는 테이블의 bnk_cd ='04' 인 데이터를 실수로 삭제를 했다.

commit; 도 완료된 상태라면..


앞이 막막할것이다.

이럴땐 이렇게 데이터를 불러보자..


SELECT * FROM KFM08OT1
 as of timestamp ( systimestamp - interval '10' minute)
where bnk_cd = '04'
조회후  파일을 txt나 엑셀로 저장후..

다시 임포트 해야 합니다.


아래와같은 방법으로 해보니 된다....ㅋㅋ 엑셀로 임포트 작업안해도됨!!

INSERT INTO EMP (SELECT *
        FROM EMP
     AS OF TIMESTAMP ( SYSTIMESTAMP - INTERVAL '1' MINUTE))



출처 : http://okjsp.pe.kr/seq/99832
Posted by 1010
02.Oracle/DataBase2008. 11. 28. 17:03
반응형

1) 에디터 플러스 에서 블럭 지정후 ctrl + H 키로 바꾸기 선택

2) 정규식 체크(확장)

3) 찾을말 (.*) : 모든 문자열을 찾는다

4) sql.append("\1"); : ""안에 \1은 현재 문자열 상태

5) 모두바꿈...

Posted by 1010
02.Oracle/DataBase2008. 11. 28. 17:02
반응형
sourceforge.net에서 JDBC를 사용하는 모든 어플리케이션의 간단한 설정으로 소스의 변경없이 모든 Database의 Transaction에 대한
SQL을 parameter matched된 로그를 보여주는 lib가 있네요...
개발시 개발성능향상에 많은 도움이 될것같습니다.
http://log4sql.sourceforge.net 에 가보면 한글/영문 메뉴얼이 다 있군요.
아래는 링크와 해당 lib에대한 내용입니다.

In develope we use many framework and tools.
Developer's important work is developing PL/SQL.
Many tools and Framework support All Layers.
View, Model, and Controller or DataAcess Layer... so developer can concentrate business logic. And i think business logics is PL/SQL.
All PL/SQL works repeat Make query And executioning And debugging.
In that case we can use jdbc or Connection Pooling(Apache DBCP) or support 2PC (JTA,JOTM) and etc...
In many case Also we use ORM(Object Relation Mapping) ibatis or springJDBC or hibernate...
Then problem occurs "My Query How to Works! And Parameters are correct?"
I'm sure log4sql is easy And simple Configuration change But Very Usefull for you!

You can download log4sql from here(http://sourceforge.net/project/showfiles.php?group_id=209296 )log4sql Sourceforge.net



출처 : http://okjsp.pe.kr/seq/106707
Posted by 1010
02.Oracle/DataBase2008. 11. 28. 17:00
반응형
select x.*, CEIL((x.D_DIFF + x.DAYOFWEEK)/7)||'주' week_name
from (
select sdate,TO_CHAR(TO_DATE(SUBSTR(to_char(sdate,'yyyymmdd'), 1, 6) || '01', 'YYYYMMDD'), 'D') - 1 AS DAYOFWEEK,
TO_NUMBER(to_char(sdate,'yyyymmdd')) - TO_NUMBER(SUBSTR(to_char(sdate,'yyyymmdd'), 1, 6) || '01') AS D_DIFF
from (
 select sysdate + b.rnum as sdate
 from dual, (select rownum rnum
    from   user_tables
    where rownum <=30) b
  )
) x


출처 : http://okjsp.pe.kr/seq/107699
Posted by 1010
02.Oracle/DataBase2008. 11. 26. 14:40
반응형
SELECT a.table_name, a.comments
FROM USER_TAB_COMMENTS a, tab b
WHERE a.table_name=b.tname;
Posted by 1010