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

  1. 2012.09.02 [펌] 다양한 검색조건의 튜닝방법
  2. 2012.09.02 [펌] SQL튜닝 방법론
  3. 2012.05.16 oracle 한글 에러코드 1
  4. 2012.05.02 html5 한글명세서
  5. 2012.03.26 oracle 채번
  6. 2012.03.26 Group By 에서 문자열 합치기 - 버전별 정리
  7. 2012.03.16 집합 쿼리(UNION, INTERSECT, MINUS)
  8. 2011.07.26 오라클 숫자를 한글로 표시 (금액단위) 1
  9. 2010.12.10 oracle 세로 출력값을 가로로 출력하기
  10. 2010.11.30 ms-sql 백업과 복원 (펌)
  11. 2010.10.29 oracle_sql강좌.pdf
  12. 2010.08.20 oracle null sum
  13. 2010.08.16 weblogic.jdbc.extensions.ConnectionDeadSQLException
  14. 2010.06.24 Oracle의 문자열비교
  15. 2010.06.16 오라클 튜닝 관련
  16. 2010.06.16 [DB]여러개의 로우를 하나의 컬럼으로 변환
  17. 2010.04.19 [오라클] like 연산에서 %, _ 문자로 검색하기 1
  18. 2010.04.05 oracle commit 후 복구
  19. 2009.12.09 오라클 데이타딕셔너리
  20. 2009.11.27 SQL문 튜닝 개요
  21. 2009.11.25 오라클 드라이버 버전 및 크기
  22. 2009.11.05 [[oracle_tablespace_copy
  23. 2009.11.05 imp시 tables 틀릴경우 ,10G DATAPUMP: REMAP TABLESPACE 기능
  24. 2009.10.20 [oracle]ORA-12541 TNS:리스너가 아닙니다
  25. 2009.10.20 [oracle]lock걸린 table 및 sql찾기
  26. 2009.10.20 오라클 테이블 락 ( Table lock )
  27. 2009.10.19 토드에서 save as를 통한 엑셀 저장시 한글깨짐 현상발생시 아래와 같은방법을 사용한다
  28. 2009.10.19 토드(toad)에서 한글이 깨져보일때
  29. 2009.09.24 ORA-02069: global_names parameter must be set to TRUE for this operation
  30. 2009.09.03 오라클에서의 데이터 암호화 기능
02.Oracle/DataBase2012. 9. 2. 07:59
반응형

출처: http://scidb.tistory.com/entry/다양한-검색조건의-튜닝방법

 

다양한 검색조건의 튜닝방법

업무적으로 볼때 조회화면의 검색조건들의 조합은 참으로 다양하다.
아래의 SQL 을 보면 WHERE 절의 모든 변수(:v_grade , :v_loc , :v_hiredate )에 값이 생략이 가능하다.
즉 모든 변수에 값이 들어올수도 있고 일부만 들어올수도 있고 전체가 안들어 올수도 있다.
where 절의 대부분이 그런조건이라고 가정하면 그런 SQL 들은 튜닝하기가 참 난감하다.
이럴때 당신이라면 어떻게 할것인가?
전통적인 튜닝 방법인 UNION ALL 로 모두 쪼개서 분리 할것인가?
아래의 인덱스 구조와 SQL 을 보자.

EMP 인덱스:
1) PK_EMP ( EMPNO )
2) EMP_IDX1 ( SAL )
3) EMP_IDX2 ( HIREDATE )
4) EMP_IDX3 ( DEPTNO )

DEPT 인덱스 :
1) PK_DEPT ( DEPTNO )
2) DEPT_IDX1 ( LOC )

SALGRADE 인덱스:
1) PK_SALGRADE( GRADE )
2) SALGRADE( HISAL, LOSAL)

1. 다양한 조건검색을 OR 로 처리할경우(원본 SQL)

SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and (c.grade = :v_grade or :v_grade is null) --> 변수에 NULL 대입
and (b.loc = :v_loc or :v_loc is null) --> 변수에 NULL 대입
and (a.hiredate = :v_hiredate or :v_hiredate is null); --> 변수 :v_hiredate 에 '1980-12-17' 값을 대입한다.


 

물론 위의 SQL 을 아래처럼 나타태도 PLAN 상으로는 같다.

SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and c.grade LIKE :v_grade||'%' --> 변수에 NULL 대입
and b.loc LIKE :v_loc||'%' --> 변수에 NULL 대입
and a.hiredate LIKE :v_hiredate||'%'; --> 변수 :v_hiredate 에 '1980-12-17' 값을 대입한다.



-------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | A-Rows | A-Time | Buffers |
-------------------------------------------------------------------------------------------
| 1 | NESTED LOOPS | | 1 | 1 |00:00:00.01 | 21 |
| 2 | NESTED LOOPS | | 1 | 1 |00:00:00.01 | 19 |
|* 3 | TABLE ACCESS FULL | SALGRADE | 1 | 5 |00:00:00.01 | 8 |
|* 4 | TABLE ACCESS BY INDEX ROWID| EMP | 5 | 1 |00:00:00.01 | 11 |
|* 5 | INDEX RANGE SCAN | EMP_IDX1 | 5 | 14 |00:00:00.01 | 3 |
|* 6 | TABLE ACCESS BY INDEX ROWID | DEPT | 1 | 1 |00:00:00.01 | 2 |
|* 7 | INDEX UNIQUE SCAN | PK_DEPT | 1 | 1 |00:00:00.01 | 1 |
-------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

3 - filter((:V_GRADE IS NULL OR "C"."GRADE"=TO_NUMBER(:V_GRADE)))
4 - filter((:V_HIREDATE IS NULL OR "A"."HIREDATE"=TO_DATE(:V_HIREDATE,'YYYY-MM-DD')))
5 - access("A"."SAL">="C"."LOSAL" AND "A"."SAL"<="C"."HISAL")
6 - filter(("B"."LOC"=:V_LOC OR :V_LOC IS NULL))
7 - access("A"."DEPTNO"="B"."DEPTNO")


해석 : 위 PLAN 을 보면 :v_hiredate 에 값이 들어 왔으므로 당연히 EMP_IDX2 인덱스를 먼저
ACCESS 해야 하지만 엉뚱한 테이블 부터 ACCESS 하여서 비효율이 발생 하였다.
즉 동적으로 변수값이 들어옴에 따라 PLAN 을 최적화 하지 못한다는 의미이다.
물론 버젼이 11g 라면 동적으로 최적화 할수 있는 기능(Adaptive Cursor sharing)이 있지만
항상 그렇게 되는건 아니다.
그러면 이런 문제를 해결하기위해 어떻게 해야 할까?
아래의 2~4 번에 해답이 있다.

2.엑세스 형태별로 UNION ALL 로 분리함

먼저 UNION ALL 로 분리하는 기준은 똑똑한 조건에 먼저 우선순위를 주었다.
다시말하면 :v_hiredate 는 굉장히 똑똑한 조건이므로 값이 들어오면 :v_grade 나 :v_loc 에 값이
들어오던 들어오지 않던 대세에 지장이 없다는 의미이다.
마찬가지 방법으로 :v_hiredate 가 들어오지 않는 상황에서는 두번째로 똑똑한 조건인 :v_grade 에
값이 들어오면 :v_loc 이 들어오던 들어오지 않던 중요하지 않다는 의미이다.
따라서 순서는 :v_hiredate --> :v_grade --> :v_loc 로 하였다.
실행시에 다른변수에는 값을 넣지않고 :v_hiredate 만 '1980-12-17' 값을 대입한다.


SELECT .... --> :v_hiredate 가 들어 왔을때
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and (c.grade = :v_grade or :v_grade is null)
and (b.loc = :v_loc or :v_loc is null)
and a.hiredate = :v_hiredate and :v_hiredate is not null
UNION ALL
SELECT .... --> :v_hiredate 가 안들어 오고 :v_grade 가 들어올때
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and c.grade = :v_grade
and (b.loc = :v_loc or :v_loc is null)
and :v_hiredate is null and :v_grade is not null
UNION ALL
SELECT .... --> :v_hiredate 가 안들어 오고 :v_grade 가 안들어오고 :v_loc 가 들어올때
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal때
and c.grade = :v_grade
and b.loc =:v_loc
and :v_hiredate is null and :v_grade is null and :v_loc is not null
UNION ALL
SELECT .... --> 변수에 아무것도 안들어 왔을때
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and :v_hiredate is null
and :v_grade is null
and :v_loc is null ;


---------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | A-Rows | A-Time | Buffers |
---------------------------------------------------------------------------------------------------
| 1 | UNION-ALL | | 1 | 1 |00:00:00.05 | 8 |
|* 2 | FILTER | | 1 | 1 |00:00:00.05 | 8 |
|* 3 | TABLE ACCESS BY INDEX ROWID | SALGRADE | 1 | 1 |00:00:00.05 | 8 |
| 4 | NESTED LOOPS | | 1 | 3 |00:00:00.08 | 7 |
| 5 | NESTED LOOPS | | 1 | 1 |00:00:00.04 | 5 |
| 6 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 1 |00:00:00.02 | 3 |
|* 7 | INDEX RANGE SCAN | EMP_IDX2 | 1 | 1 |00:00:00.01 | 2 |
|* 8 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 1 |00:00:00.02 | 2 |
|* 9 | INDEX UNIQUE SCAN | PK_DEPT | 1 | 1 |00:00:00.01 | 1 |
|* 10 | INDEX RANGE SCAN | SALGRADE_IDX1 | 1 | 1 |00:00:00.01 | 2 |
|* 11 | FILTER | | 1 | 0 |00:00:00.01 | 0 |
| 12 | NESTED LOOPS | | 0 | 0 |00:00:00.01 | 0 |
| 13 | NESTED LOOPS | | 0 | 0 |00:00:00.01 | 0 |
| 14 | TABLE ACCESS BY INDEX ROWID | SALGRADE | 0 | 0 |00:00:00.01 | 0 |
|* 15 | INDEX RANGE SCAN | PK_SALGRADE | 0 | 0 |00:00:00.01 | 0 |
| 16 | TABLE ACCESS BY INDEX ROWID | EMP | 0 | 0 |00:00:00.01 | 0 |
|* 17 | INDEX RANGE SCAN | EMP_IDX1 | 0 | 0 |00:00:00.01 | 0 |
|* 18 | TABLE ACCESS BY INDEX ROWID | DEPT | 0 | 0 |00:00:00.01 | 0 |
|* 19 | INDEX UNIQUE SCAN | PK_DEPT | 0 | 0 |00:00:00.01 | 0 |
|* 20 | FILTER | | 1 | 0 |00:00:00.01 | 0 |
|* 21 | TABLE ACCESS BY INDEX ROWID | SALGRADE | 0 | 0 |00:00:00.01 | 0 |
| 22 | NESTED LOOPS | | 0 | 0 |00:00:00.01 | 0 |
| 23 | NESTED LOOPS | | 0 | 0 |00:00:00.01 | 0 |
| 24 | TABLE ACCESS BY INDEX ROWID| DEPT | 0 | 0 |00:00:00.01 | 0 |
|* 25 | INDEX RANGE SCAN | DEPT_IDX1 | 0 | 0 |00:00:00.01 | 0 |
| 26 | TABLE ACCESS BY INDEX ROWID| EMP | 0 | 0 |00:00:00.01 | 0 |
|* 27 | INDEX RANGE SCAN | EMP_IDX3 | 0 | 0 |00:00:00.01 | 0 |
|* 28 | INDEX RANGE SCAN | PK_SALGRADE | 0 | 0 |00:00:00.01 | 0 |
|* 29 | FILTER | | 1 | 0 |00:00:00.01 | 0 |
| 30 | MERGE JOIN | | 0 | 0 |00:00:00.01 | 0 |
| 31 | SORT JOIN | | 0 | 0 |00:00:00.01 | 0 |
|* 32 | HASH JOIN | | 0 | 0 |00:00:00.01 | 0 |
| 33 | TABLE ACCESS FULL | DEPT | 0 | 0 |00:00:00.01 | 0 |
| 34 | TABLE ACCESS FULL | EMP | 0 | 0 |00:00:00.01 | 0 |
|* 35 | FILTER | | 0 | 0 |00:00:00.01 | 0 |
|* 36 | SORT JOIN | | 0 | 0 |00:00:00.01 | 0 |
| 37 | INDEX FULL SCAN | SALGRADE_IDX1 | 0 | 0 |00:00:00.01 | 0 |
---------------------------------------------------------------------------------------------------

Predicate Information (지면관계상 생략)

해석 : PLAN 이 개발자가 의도한대로 분리되었고 A-Rows 와 Buffers 를 보면 분리된 SQL 중에서 첫번째
SQL 만 값이 있다.
하지만 최적의 SQL 이 되려면 아직도 멀었다.

3.UNION ALL 로 분리된 각각의 SQL 최적화

:v_grade 에 값이 들어오지 않는다면 더이상 SALGRADE 테이블은 필요가 없다.
과감히 FROM 절에서 삭제하자.
물론 a.sal 컬럼의 값에 NULL 이 있다면 답이 달라지므로 주의해야 한다.

SELECT ....
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and (c.grade = :v_grade or :v_grade is null)
and (b.loc = :v_loc or :v_loc is null)
and a.hiredate = :v_hiredate
and :v_hiredate is not null
UNION ALL
SELECT ....
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and c.grade = :v_grade
and (b.loc = :v_loc or :v_loc is null)
and :v_hiredate is null
and :v_grade is not null
UNION ALL
SELECT ....
FROM EMP a,
DEPT b -->
SALGRADE 테이블은 필요가 없음
WHERE a.deptno = b.deptno
and b.loc =:v_loc
and :v_hiredate is null
and :v_grade is null
and :v_loc is not null
UNION ALL
SELECT ....
FROM EMP a,
DEPT b -->
SALGRADE 테이블은 필요가 없음
WHERE a.deptno = b.deptno
and :v_hiredate is null
and :v_grade is null
and :v_loc is null ;


PLAN 정보 및 Predicate Information (지면관계상 생략)


4.NVL 혹은 DECODE 함수의 활용

UNION ALL 로 분리하면 옵티마이져 입장에서는 환영할 일이지만 개발자 입장에서 보면 반복적인 코딩이 증가하고 유지보수시 일량이 늘어나는 단점이 있다.
그렇다면 코딩량을 줄일수 있는 최적의 방법은 없는것일까?

물론 방법이 있다.
아래의 SQL 을 보자.
아래의 SQL 은 UNION ALL로 분리된 SQL 중에서 마지막 2개의 SQL 을 합친 것이다.

SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b
WHERE a.deptno = b.deptno
and b.loc = decode(:v_loc, null, b.loc, :v_loc) --:V_LOC 에 'CHICAGO' 대입
and :v_hiredate is null
and :v_grade is null
and :v_loc is not null


----------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | A-Rows | A-Time | Buffers |
----------------------------------------------------------------------------------------------
| 1 | CONCATENATION | | 1 | 6 |00:00:00.03 | 7 |
|* 2 | FILTER | | 1 | 0 |00:00:00.01 | 0 |
| 3 | TABLE ACCESS BY INDEX ROWID | EMP | 0 | 0 |00:00:00.01 | 0 |
| 4 | NESTED LOOPS | | 0 | 0 |00:00:00.01 | 0 |
| 5 | TABLE ACCESS BY INDEX ROWID| DEPT | 0 | 0 |00:00:00.01 | 0 |
|* 6 | INDEX FULL SCAN | DEPT_IDX1 | 0 | 0 |00:00:00.01 | 0 |
|* 7 | INDEX RANGE SCAN | EMP_IDX3 | 0 | 0 |00:00:00.01 | 0 |
|* 8 | FILTER | | 1 | 6 |00:00:00.03 | 7 |
| 9 | TABLE ACCESS BY INDEX ROWID | EMP | 1 | 6 |00:00:00.03 | 7 |
| 10 | NESTED LOOPS | | 1 | 8 |00:00:00.15 | 5 |
| 11 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 1 |00:00:00.01 | 3 |
|* 12 | INDEX RANGE SCAN | DEPT_IDX1 | 1 | 1 |00:00:00.01 | 2 |
|* 13 | INDEX RANGE SCAN | EMP_IDX3 | 1 | 6 |00:00:00.01 | 2 |
----------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - filter((:V_LOC IS NOT NULL AND :V_GRADE IS NULL AND :V_HIREDATE IS NULL AND :V_LOC IS NULL))
6 - filter("B"."LOC" IS NOT NULL)
7 - access("A"."DEPTNO"="B"."DEPTNO")
8 - filter((:V_LOC IS NOT NULL AND :V_GRADE IS NULL AND :V_HIREDATE IS NULL AND :V_LOC IS NOT NULL))
12 - access("B"."LOC"=:V_LOC)
13 - access("A"."DEPTNO"="B"."DEPTNO")


해석 : DECODE 함수를 사용함으로써 맨마지막 2개의 SQL 을 합쳤으나 옵티마이져가 조건이 들어오는 경우와
들어오지 않는경우를 옵티마이져는 자동으로 UNION ALL 로 분리하였다.
그러나 항상 이렇게 분리되는것은 아니므로 주의를 요한다.

5.SQL 의 최종모습

SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and (c.grade = :v_grade or :v_grade is null)
and (b.loc = :v_loc or :v_loc is null)
and a.hiredate = :v_hiredate
and :v_hiredate is not null
UNION ALL
SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b,
SALGRADE c
WHERE a.deptno = b.deptno
and a.sal between c.losal and c.hisal
and c.grade = :v_grade
and (b.loc = :v_loc or :v_loc is null)
and :v_hiredate is null
and :v_grade is not null

UNION ALL
SELECT a.empno, a.ename, a.job, b.dname, a.sal
FROM EMP a,
DEPT b
WHERE a.deptno = b.deptno
and b.loc = nvl(:v_loc, b.loc)
and :v_hiredate is null
and :v_grade is null ;


결론 : 검색화면의 경우 다양한 검색조건들이 들어올수 있다.
기본적인 전략은 아래와 같이 순서대로 3가지 이다.
1.똑똑한 조건을 기준으로 UNION ALL 로 분리한다.(2번에 해당)
2.UNION ALL 로 분리된 각각의 SQL 을 최적화 한다.(3번에 해당) --> FROM 절의 테이블 갯수가 달라진다.
3.DECODE 나 NVL 을 사용함으로서 과도한 UNION ALL 로 분리되어 거대해지고
Shared Pool 에 무리를 줄수도 있는 SQL 을 통합하여 하나로 만든다.(4번에 해당)

Posted by 1010
02.Oracle/DataBase2012. 9. 2. 07:50
반응형

출처 : http://scidb.tistory.com/entry/SQL%ED%8A%9C%EB%8B%9D-%EB%B0%A9%EB%B2%95%EB%A1%A0

 

SQL튜닝 방법론

 

SQL 튜닝책을 세 권정도 읽은 신입사원이 SQL 튜닝방법론을 요청하였다. 이유는 튜닝책에 방법론이 없다는 것이다. 튜닝 방법론이란 “SQL을 튜닝 해달라고 요청 받았을 때 내가 무엇 무엇을 해야 하나?” 이다. SQL 튜닝시의 To-Do 리스트(체크리스트)를 요구한 것이다.

SQL 튜닝을 자주 하면서도, 그 안에 몇 가지 작업이 있는지 생각하지 못했다. 누가 그랬던가? 일상을 낯설게 느껴보라고… SQL 튜닝요청을 받았을 때 내가 어떤 일을 하는지 가르쳐 주면 되겠구나 하는 생각이 들었다. 그 결과 7가지 방법이 결론으로 도출되었다. 만약 7가지 방법을 모두 적용할 수 있는 경우임에도 불구하고 하나라도 빠진다면 최적화된 SQL을 만들 수 없다.

아래는 필자와 신입사원의 대화이다.

신입사원 : SQL 튜닝의 원칙 몇 가지를 저에게 일러 주실 수 있나요? 튜닝책도 몇 가지 보았고, 강의도 많이 들었지만 이 원칙만 지키면 100점 만점에 90점은 맞는다.” 는 원칙 같은 것은 없더군요. 저는 이제 입문하는 단계이므로 모든 경우에 100점을 맞을 필요는 없습니다.

필자 : 온라인 SQL이냐 대용량 배치 SQL이냐에 따라 튜닝방법이 달라지므로 설명하기가 힘들군요.

신입사원 : 걱정 하실 것 없습니다. 대용량 배치는 프로그램이 많지 않으므로 제외하고, 온라인 SQL 튜닝 원칙을 몇 가지 일러주세요.

필자 : 온라인 SQL이라 하더라도 관점에 따라 튜닝방법이 다릅니다. 예를 들어 Peak Time Insert 문이나 Update , Select문이 집중적으로 몰릴 때의 튜닝방법이 있고, 단순히 SQL 하나에 에 집중해서 응답시간을 최소화 하는 튜닝방법이 있습니다.

신입사원 : 그런 것을 지금 모두 알아야 할 필요는 없습니다. 제가 튜닝 프로젝트에 투입되었다고 가정하고, 성능이 느린 Select문 하나를 받았을 때 튜닝을 어떻게 해야 하는지에 대해서만 설명해주시면 됩니다.

고단수 신입사원

이렇게 해서 신입사원에게 말려들게 되었다. , 초보라도 몇 가지 원칙만 지키면 온라인 Select문에 대한 튜닝을 100점 만점에 90점을 맞을 수 있는 방법을 요구하는 것이다. 사실 이런 질문에 가장 적합한 답변은 “SQL 튜닝책을 읽어보라는 것이다. 그런데 신입사원이 필자와 대화과정(튜닝책도 몇 가지 보았고 ~)에서 이런 답변을 못하도록 교묘히 막고 있다. 고단수이다. 몇 가지 방법만 알게 된다면 90점을 받는다고? 처음부터 그런 방법은 없다고 할 걸 그랬나? 후회가 된다. 어찌되었든 약속처럼 되어버렸으므로 이 글을 쓰게 되었다. …..머리가 아파온다.

온라인 Select문 튜닝 방법론

온라인 SQL의 튜닝방법은 여러 가지가 있을 수 있다. 하지만 그 중에서 가장 기초적이고, 기본적인 방법을 공개한다. 아래의 7가지 항목을 점검하고 약한 곳을 보강하면 된다. 이 글은 SQL 튜닝책을 두 권 정도 본 사람들을 위한 것이다. 튜닝에 자신있는 사람들은 볼 필요가 없다.

1. 적절한 인덱스를 사용하여 Block I/O를 최소화 하라

조인이 없는 경우는 적절한 인덱스를 사용하는 것 만으로도 상당한 효과를 볼 수 있다. 조인이 있는 경우는 특히 Driving(선행) 집합에 신경을 써야 한다. 왜냐하면 Nested Loop 조인을 사용했고, 선행집합의 건수가 많다면, 후행집합의 조인의 시도횟수가 증가하므로 성능이 느려진다. 따라서 적절한 인덱스를 이용하여 선행집합의 건수를 줄인다면, 혹은 가장 적은 집합을 선행으로 놓는다면, 후행집합으로의 조인건수는 줄어든다. 물론 이때에도 후행집합의 적절한 인덱스는 필수 조건이다. Driving 집합의 Block I/O를 줄이기 위하여 최적화된 인덱스가 없다면 생성하고, 있다면 그것을 사용하라. 다시 말해 최적의 Access Path를 만들어라.

운영중인 시스템이라면 최적의 Access Path를 위해 인덱스를 변경하거나 생성할 때는 주의해야 한다. 현재 튜닝하고 있는 SQL에 최적화된 인덱스를 생성하더라도 다른 SQL에 악영향을 줄 수 있기 때문이다. 인덱스를 생성하거나 변경할 때는 그 테이블을 사용하는 다른 SQL의 실행계획이 변경되지 않는지 각별히 신경을 써야 한다. 이런 이유 때문에 개발과정에서 효율적인 인덱스 설계가 중요시 된다.

2. 조인방법과 조인순서를 최적화 하라

온라인에서 사용하는 Select문은 좁은 범위를 검색하는 경우가 많다. 이럴 때는 대부분 Nested Loop Join이 유리하다. 그러므로 조인건수가 소량인 SQL Hash Join이나 Sort Merge Join이 발견되면 Nested Loop Join으로 변경하는 것이 더 유리한지 검토해야 한다. 물론 여기서도 Nested Loop 조인에 관해서만 다룬다.

Nested Loop 조인에서 가장 중요한 것은 조인순서이다. From절에 테이블(집합)이 두 개라면 후행집합의 관점에서는 적절한 인덱스만 존재한다면 그것으로 족하다. 만약 From절에 테이블(집합)이 세 개 이상이라면 조인순서를 변경할 수 있는지에 대한 두 가지 원리를 사용하라. 두 가지 원리는 아래의 단락에서 소개된다. 아무리 조인할 집합이 많다고 하더라도 이 두 가지의 원리는 동일하게 적용될 수 있다. 두 가지 원리를 이용할 때 필요하다면 Leading 힌트를 사용해야 한다.

첫 번째, 후행집합에 적절한 인덱스가 없는 경우에 조인순서를 바꾸면, 최적의 인덱스를 사용할 수 있는 경우가 많다. 예컨대, 튜닝전의 조인순서가 Aà B à C 라고 하면, 중간집합인 B에 적절한 인덱스가 없고 오히려 C에 적절한 인덱스가 존재하는 경우가 있다. 이럴 때는 B에 인덱스를 무작정 생성하지 말고, 조인순서를 A à C à B로 바꿀 수 있는지, 바꾸는 것이 더 효율적인지 검증하라. 조인순서만 바꾸어 주어도 일량이 획기적으로 줄어드는 경우가 많다. 만약 조인순서를 바꿀 수 없거나, C를 중간집합으로 하는 것이 비효율적이라면, B를 중간집합으로 유지하고 적절한 인덱스를 사용해야 한다.

두 번째, 조인되는 집합 중 특정 인덱스에서 Block I/O가 증가하는 경우에 조인순서의 변경을 검토하라. 이때 10046 Trace DBMS_XPLAN.Display_Corsor를 이용하면 조인집합들의 Block I/O량을 관찰할 수 있다. 예를 들어, 튜닝전의 조인순서가 Aà B à C 라고 하고, 집합 B에서 Block I/O량이 증가하면 A à C à B로 바꾸면 일량이 줄어드는 경우가 많다. C를 먼저 조인(Filter)하여 선행집합(B의 입장에서는 C가 선행이다)의 건수를 줄이고 B에 조인하면 성능이 향상된다.

3. Table Access(Random Access)를 최소화 하라

Random Access rowid로 테이블을 엑세스하는 것을 말한다. 1번과 2번을 최적화 했다면 Random Access도 자동으로 많이 줄어들었을 것이다. 하지만 그것이 끝은 아니다. 여전히 성능이 만족스럽지 못하다면 Random Access 횟수를 줄이는 것을 간과해서는 안 된다.

인덱스를 사용하면 rowid가 자동으로 획득된다. 만약 인덱스에 없는 컬럼을 Select 해야 한다면 rowid로 테이블을 엑세스 해야 한다. 이때 테이블로 엑세스 해야 할 건수가 많고, 인덱스의 컬럼순으로 테이블이 sort되어있지 않다면 성능이 매우 저하된다. 왜냐하면 테이블이 인덱스 기준으로 sort되어 있지 않기 때문에 테이블을 방문할 때마다 서로 다른 블럭을 읽어야 하기 때문이다.

비유적으로 설명해보자. 우리가 심부름을 할 때 세 군대의 상점(A,B,C)을 들러야 한다고 치자. 그 상점들이 모두 한 건물 내부에 존재한다면 얼마나 좋겠는가? 그 심부름은 매우 빠른 시간에 끝날 것이다. 하지만 반대로 상점 A는 부산에 있고 상점 B는 대구에 있고, 상점 C는 서울에 있다면? 만약 당신의 성격이 매우 좋아서 그 심부름을 한다고 해도 시간이 많이 걸릴 것이다. Random Access도 마찬가지이다. 인덱스의 rowid로 테이블을 방문할 때, 테이블이 인덱스기준으로 sort되어 상점처럼 다닥다닥 붙어있다면 성능은 매우 빠르고, 흩어져 있을수록 성능이 느려진다. (오라클에서는 테이블이 인덱스 기준으로 sort 되어 있는 정도를 Clustering Factor라고 한다.) 바로 이런 이유 때문에 index scan보다는 Table Scan이 느린 것이다. 따라서 우리는 Random Access의 부하를 최소화 해야 한다.

Random Access의 부하를 줄이는 방법은 네 가지이다. 첫 번째, 테이블의 종류를 변경하는 방법이다. IOT나 클러스터를 이용하면 Clustering Factor가 극단적으로 좋아진다. 또한 파티션을 이용하면 같은 범위의 데이터를 밀집시킬 수 있다. 두 번째, 효율적인 인덱스를 사용하거나 조인방법과 순서를 조정하여 Table Access를 최소화 하는 방법이다. 이 방법은 1번과 2번에서 이미 설명 되었다. 세 번째, 인덱스에 컬럼을 추가하여 Table Access를 방지하는 방법이다. 예를 들어 Select절의 특정 컬럼 때문에 테이블이 엑세스 된다면, 인덱스의 마지막에 그 컬럼을 추가하면 된다. 네 번째, 인덱스만 엑세스 하고 테이블로의 엑세스는 모든 조인을 끝내고 마지막에 시도하여 Random Access의 횟수를 줄이는 방법이다. 해당 을 참조하라.

4. Sort Hash 작업을 최소화 하라

1,2,3번을 통하여 최적의 Access Path Join을 사용했다면, Block I/O의 관점에서는 튜닝이 끝난 것이다. 하지만 1,2,3번이 모두 해결되었다 해도 Order by Group By 때문에 성능이 저하 될 수 있다. 특히 결과가 많은 경우, sort는 치명적이다.

인덱스가 sort 되어있다는 특성을 이용하면 order by 작업을 대신할 수 있다. Group By sort 가 발생하는데 group by 단위와 인덱스의 컬럼이 동일 하다면 sort는 발생하지 않는다. 최적의 인덱스를 사용하면 Access Path를 개선하는 효과뿐만 아니라 Sort의 부하도 없어진다.

Union All
을 제외한 집합연산(Union, Minus, Intersect)를 사용하면 Sort Unique 혹은 Hash Unique가 발생한다. Union Union All로 바꿀 수 없는지 검토해야 하고, Minus Not Exists 서브쿼리를 이용하여 Anti Join으로 바꿀 수 없는지 고려해야 한다. Intersect는 교집합이므로 조인으로 바꿀 수 있는지 검토해야 한다. 아주 가끔 Distinct를 사용한 SQL이 눈에 뛰는데 이 또한 Sort Unique 혹은 Hash Unique를 발생시킨다. 모델러나 설계자에게 문의하여 Distinct를 제거할 방법이 없는지 문의해야 한다.

Oracle 10g부터는 Hash Group By가 발생할 수 있는데, 이미 적절한 인덱스를 사용하는 경우라면 Hash Group By를 사용할 필요는 없다. 이런 경우 NO_USE_HASH_AGGREGATION 힌트를 사용하면 Sort Group By로 바꿀 수 있다. 이렇게 해주면 실행계획에 “SORT GROUP BY NOSORT” Operation이 발생하며, Sort Hashing 작업이 전혀 발생하지 않는다. Group By의 부하를 해결하는 또 하나의 방법은 스칼라 서브쿼리를 사용하는 것이다. 조인을 사용하면 Sum 값을 구하기 위해 Group By가 필수적이다. 하지만 스칼라 서브쿼리를 사용하면 Group By를 사용하지 않고도 sum 이나 Min/Max 값을 구할 수 있다. 또한 분석함수의 Ranking Family(rank, dens_rank, row_number)를 최적화된 인덱스와 같이 사용하면 Group By Sort를 하지 않고도 Min/Max 값을 구할 수 있다. 이때는 실행계획에 “WINDOW NOSORT” Operation이 발생한다. 관련 글을 참조하기 바란다.

5. 한 블록은 한번만 Scan하고 끝내라

같은 데이터를 반복적으로 Scan하는 SQL이 의외로 많다. 대표적인 경우가 Union All로 분리되었지만 실제로는 그럴 필요가 없는 경우이다. 예를 들어 Where 절에 구분코드가 1일 때 , 2일 때, 3일 때 별로 SQL이 나누어져 있는 경우이다. Where 절을 구분코드 in (1,2,3) 으로 처리하고, Select절에서 Decode Case 문을 사용하여 구분코드별로 처리해준다면 Union All은 필요 없다. Union All을 사용하는 또 한가지의 경우는 Sub Total(소계) Grand Total(총계)를 구해야 하는 경우이다. 이 경우도 Rollup/Cube Grouping Sets Group By절에 사용한다면 소계나 총계를 위한 별도의 Select문을 실행 시킬 필요는 없다. 1~4번의 과정은 SQL문의 변경이 없거나 최소화 된다. 하지만 5번의 경우는 SQL을 통합시켜야 하기 때문에 시간이 많이 소모되며, 많은 사고가 요구되는 창조적인 과정이다. 여기까지 했다면 진행되었다면 원본 SQL 자체의 튜닝은 완료 된 셈이다.

6. 온라인의 조회화면이라면 페이징처리는 필수이다

부분범위 처리를 해야 한다. 물론 전체 건을 처리해야 하는 경우는 있을 것이다. 하지만 조회화면이라면 몇 십만 건 혹은 몇 만 건이나 되는 결과를 모두 볼 수 없다. 따라서 볼 수 있는 단위로 끊어서 출력해야 한다. 예를 들어 결과 건수가 10만 건이라고 해도 최초의 50건을 화면에 먼저 뿌린다면 1,2,3,4 번에서 설명했던 모든 부하(Block I/O의 부하, 조인의 부하, Random Access의 부하, Sort의 부하)를 한꺼번에 감소시킬 수 있다. 따라서 가능하면 개발자를 설득하거나 책임자를 설득하여 페이징 처리를 하는 것이 바람직하다.

페이징 처리를 해도 효과를 볼 수 없는 몇 가지 예외가 있다. 분석함수를 사용하거나, Connect By + Start With를 사용한다면 페이징 처리의 효과는 없다. 분석함수의 경우 인라인뷰의 외부로 뺄 수 있다면 부분범위 처리가 가능하다. 이에 관해서는 해당 을 참조하기 바란다. Connect By + Start With를 사용한 경우는 부분범위처리가 불가능하다. 하지만 11g R2의 신기능인 Recursive With절을 사용한다면 페이징 처리의 효과를 볼 수 있다. 이때, Recursive With절에 Search(Order By절과 같은 기능)을 사용한다면 Connect By와 마찬가지로 페이징 처리의 효과가 없으니 주의해야 한다. 즉 인덱스의 구성을 적절히 하여 Sort를 대신해야 한다. Recursive With가 무엇인지 궁금한 사람은 관련 을 참조하기 바란다.

7. 답이 틀리면 안 된다. SQL을 검증하라

7번은 SQL 자체를 튜닝하는 것은 아니다. 하지만 7번을 튜닝 방법에 추가한 이유는 있다. 튜닝을 하였음에도 답이 틀린다면, 튜닝을 하지 않은 것 보다 못하다. 그러므로 튜닝 후에 답이 옳은지 항상 검증해야 한다. 1~ 7번 중에 가장 중요한 것이 7번이다.

방법론 정리

1. 적절한 인덱스를 사용하여 Block I/O를 최소화 하라.

2. 조인방법과 조인순서를 최적화 하라.

3. Table Access(Random Access)를 최소화 하라

4. Sort Hash 작업을 최소화 하라

5. 한 블록은 한번만 Scan하고 끝내라

6. 온라인의 조회화면이라면 페이징처리는 필수이다

7. 답이 틀리면 안 된다. SQL을 검증하라

방법론의 의미

만약 1~7번을 모두 적용할 수 있는 경우임에도 불구하고 하나라도 빠진다면 그것은 최적화된 SQL이 아니다. 물론 튜닝을 할 때 위의 1~6번을 항상 적용할 수 있는 것은 아니다. 경우에 따라서는 하나만 적용될 수도 있고, 두 개만 적용할 수 있는 SQL도 있다. 하지만 1~6번을 모두 적용할 수 있는지 꼼꼼히 살펴야 한다.

이 글은 튜닝 입문하여 관련 책들을 몇 권 본 사람들을 위한 기본적인 튜닝방법에 관한 것이다. 1번부터 7번까지의 방법은 기본 중에 기본이다. 이것들만 알아도 온라인 조회화면에서 사용하는 SQL을 튜닝하는데 어려움이 없을 것이다. 다시 말해 90%는 해결 할 수 있다. 그렇다면 나머지 10%? 그것들은 그때 그때 마다 다르게(On the fly 모드) 처리된다. 또한 그것들은 책이나 매뉴얼에 나와있지 않기 때문에 경험치 이거나 실험과 연구의 결과로 알아내는 것들이다.

일상을 낯설게 느껴보니 좋은 점이 많다. 언제 필자의 다른 일상(모델링, 시스템분석/진단)에 대한 방법론도 만들어 보려고 한다.


 

Posted by 1010
02.Oracle/DataBase2012. 5. 16. 02:02
반응형

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는 직접 로드 상태입니다.

less..

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 가 필요합니다. 
ORA-02190 키워드 TABLES를 지정해 주십시오 
ORA-02191 올바른 구문: SET TRANSACTION USE ROLLBACK SEGMENT 
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 BLOCK SIZE , ...)유형이어야 합니다. 
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 은 사용할 수 없습니다. 
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_.dbf)을 열 수 없습니다. 
ORA-02751 osnfsmmap: 공유메모리 화일을 배치할 수 없습니다. 
ORA-02752 osnfsmmap: 부당한 공유메모리 번지입니다. 
ORA-02753 osnfsmmap: 공유메모리 화일을 닫을 수 없습니다. 
ORA-02754 osnfsmmap: 공유메모리의 형질을 변경할 수 없습니다. 
ORA-02755 osnfsmcre: 공유메모리 화일(?/dbs/ftt_.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 송신오류 
ORA-06779 TLI Driver: ccode 읽기오류 
ORA-06780 TLI Driver: recv 오류코드 실패 
ORA-06781 TLI Driver: 교섭 스트링 읽기오류 
ORA-06790 TLI Driver: 폴 실패 
ORA-06791 TLI Driver: 폴이 오류 상황을 리턴했습니다. 
ORA-06792 TLI Driver: 서버가 오라클을 수행할 수 없습니다. 
ORA-06793 TLI Driver: 서버가 새로운 프로세스를 생성할 수 없습니다. 
ORA-06794 TLI Driver: 섀도우 프로세스가 프로토콜 정보를 추출할 수 없습니다. 
ORA-06800 TLI Driver: SQL*Net SPX 클라이언트가 재연결하는 동안 사라졌습니다. 
ORA-06801 TLI Driver: SPX 서버의 재연결을 위한 리슨이 실패했습니다. 
ORA-06802 TLI Driver: /etc/netware/yellowpages 화일을 열 수 없습니다. 
ORA-06803 TLI Driver: IPX 디바이스 화일을 열 수 없습니다. 
ORA-06804 TLI Driver: 초기화시 IPX 번지를 바인드할 수 없습니다. 
ORA-06805 TLI Driver: SPX를 위한 데이타그램 SAP 패킷을 송신할 수 없습니다. 
ORA-06806 TLI Driver: SPX를 위한 프로토콜 초기화를 마감할 수 없습니다. 
ORA-06807 TLI Driver: 이더네트 디바이스 드라이버 화일을 열 수 없습니다. 
ORA-06808 TLI Driver: IPX와 이더네트 스트림을 연결할 수 없습니다. 
ORA-06809 TLI Driver: 초기화시에 IPX 이더네트 SAP를 클리어할 수 없습니다. 
ORA-06810 TLI Driver: 초기화시에 IPX 이더네트 SAP를 설정할 수 없습니다. 
ORA-06811 TLI Driver: 초기화시에 IPX 네트워크 번호를 설정할 수 없습니다. 
ORA-06812 TLI Driver: 이더네트 드라이버의 노드번지를 읽을 수 없습니다. 
ORA-06813 TLI Driver: 설정된 이더네트 번지가 틀립니다. 
ORA-06814 TLI Driver: SPX 디바이스 화일을 열 수 없습니다. 
ORA-06815 TLI Driver: SPX 와 IPX 스트림을 연결할 수 없습니다. 
ORA-06816 TLI Driver: SPX SAP 번지를 설정할 수 없습니다. 
ORA-06817 TLI Driver: 노벨 네트워크 번지를 읽을 수 없습니다. 
ORA-06900 CMX: tns 디렉토리를 읽을 수 없습니다. 
ORA-06901 CMX: 로컬 어플리케션에 로컬명이 할당되지 않았습니다. 
ORA-06902 CMX: cmx 서브시스템을 첨부 할 수 없습니다. 
ORA-06903 CMX: 원격 어플리케션의 트랜스포트 번지를 읽을 수 없습니다. 
ORA-06904 CMX: 원격 어플리케션이 이용할 수 있는 트랜스포트 번지가 없습니다. 
ORA-06905 CMX: 연결 오류 
ORA-06906 CMX: CMX로 부터 최대 패킷 크기를 결정할 수 없습니다. 
ORA-06907 CMX: 연결 확인중 오류 
ORA-06908 CMX: ORACLE_SID 전송중 오류 
ORA-06909 CMX: ORACLE_SID의 인식중 오류 
ORA-06910 CMX: 원격 기계에서 오라클 프로세스를 기동시킬수 없습니다. 
ORA-06911 CMX: t_event가 오류를 리턴 
ORA-06912 CMX: datarq에서 쓰기 오류 
ORA-06913 CMX: 연결의 재방향 설정중 오류 
ORA-06914 CMX: 오라클 기동중 비정상 이벤트 발생 
ORA-06915 CMX: datarq에서 미확인 t_event 발생 
ORA-06916 CMX: 데이타 읽기(t_datain)에서 오류 
ORA-06917 CMX: 데이타 읽기(읽을 문자수 초과)에서 오류 
ORA-06918 CMX: 읽기 이벤트 대기중 T_NOEVENT 발생 
ORA-06919 CMX: 쓰기 요구(미확인 이벤트)중 오류 
ORA-06920 CMX: getbrkmsg의 부적합한 데이타형 
ORA-06921 CMX: getdatmsg의 부적합한 데이타형 
ORA-06922 CMX: 쓰기 길이 오류 
ORA-06923 CMX: 부적합한 브레이크 상태 
ORA-06924 CMX: 브레이크 메세지 길이 오류 
ORA-06925 CMX: 연결 요구중 단락 
ORA-06926 CMX: 데이타 읽기중 T_ERROR 발생 
ORA-06927 CMX: 데이타를 모두 쓰기전에 T_DATAIN을 수신 
ORA-06928 CMX: ORACLE_SID 오류 
ORA-06929 CMX: ORACLE_SID 송신시 오류 
ORA-06930 CMX: ORACLE_SID 확인시 오류 
ORA-06931 CMX: 서버를 위한 읽기-특성 지정시 오류 
ORA-06932 CMX: 로컬 이름에서 오류 
ORA-06933 CMX: 첨부중 오류 
ORA-06950 오류없음 
ORA-06951 운영 시스템 호출 오류 
ORA-06952 통신의 상대편에서 forward-reset 패킷을 발생시켰습니다 
ORA-06953 가상 메모리 부족 
ORA-06954 부적합한 화일명 
ORA-06955 데이타베이스 서버의 수가 제한치를 초과 했습니다. 
ORA-06956 로컬 호스트 이름을 얻는데 실패 했습니다. 
ORA-06957 현재 이용 가능한 SID가 없습니다. 
ORA-06958 구성 화일을 액세스 하는데 실패 했습니다. 
ORA-06959 버퍼 입출력 쿼터가 너무 적습니다. 
ORA-06960 로그 화일을 엑세스 하는데 실패 했습니다. 
ORA-06961 이 작업에 대한 권한이 없습니다. 
ORA-06970 X.25 Driver: 원격 호스트명을 인지할 수 없습니다. 
ORA-06971 X.25 Driver: 데이타 수신시 오류 
ORA-06972 X.25 Driver: 데이타 송신시 오류 
ORA-06973 X.25 Driver: 부적절한 버퍼 크기입니다. 
ORA-06974 X.25 Driver: SID 찾기 실패 
ORA-06975 X.25 Driver: 호스트로의 연결에 실패했습니다. 
ORA-06976 X.25 Driver: 마감점 생성에 실패했습니다. 
ORA-06977 X.25 Driver: X.25 레벨 2 실패 
ORA-06978 X.25 Driver: 콜백 시도가 너무 많습니다. 
ORA-06979 X.25 Driver: 서버가 오라클을 기동시킬 수 없습니다. 
ORA-07200 slsid: oracle_sid가 설정되지 않았습니다. 
ORA-07201 slhom: oracle_home이 환경에 설정되어있지 않습니다. 
ORA-07202 sltln: sltln에 부적절한 파라미터입니다. 
ORA-07203 sltln: 긴 환경변수를 변환하려 했습니다. 
ORA-07204 sltln: 출력 버퍼영역의 부족으로 이름의 변환에 실패했습니다. 
ORA-07205 slgtd: 시간오류 , 시간을 획득할 수 없습니다. 
ORA-07206 slgtd: gettimeofday 오류, 시간을 획득할 수 없습니다. 
ORA-07207 sigpidu: 프로세스 ID 스트링이 내부버퍼를 초과할 수 없습니다. 
ORA-07208 sfwfb: 더티 버퍼를 디스크에 반영하는데 실패했습니다. 
ORA-07209 sfofi: 화일 크기제한을 초과했습니다. 
ORA-07210 slcpu: getrusage 오류, cpu 시간을 얻을 수 없습니다. 
ORA-07211 slgcs: gettimeofday 오류, 벽시계를 얻을 수 없습니다. 
ORA-07212 slcpu: times 오류, cpu 시간을 얻을 수 없습니다. 
ORA-07213 slgcs: times 오류, cpu 시간을 얻을 수 없습니다. 
ORA-07214 slgunm: uname 오류, 시스템 정보를 얻을 수 없습니다. 
ORA-07215 slsget: getrusage 오류. 
ORA-07216 slghst: gethostname 오류, 현 호스트의 이름을 얻을 수 없습니다. 
ORA-07217 sltln: 환경 변수의 값을 구할 수 없습니다. 
ORA-07218 slkhst: 호스트의 작업을 수행할 수 없습니다. 
ORA-07219 slspool: 스풀러 인수 버퍼를 할당할 수 없습니다. 
ORA-07220 slspool: 대기 오류 
ORA-07221 slspool: exec 오류, 스풀러 프로그램을 시작할 수 없습니다. 
ORA-07222 slspool: 줄 프린터 스풀러 명령이 오류 종료했습니다. 
ORA-07223 slspool: fork 오류, 스풀 프로세스를 띄울 수 없습니다. 
ORA-07224 sfnfy: 화일 크기의 제한을 알 수 없음; 오류번호 = %s 
ORA-07225 sldext: 변환 오류, 화일명을 확장할 수 없습니다. 
ORA-07226 rtneco: 터미널 모드를 얻을 수 없습니다. 
ORA-07227 rtneco: 반향금지 모드를 얻을 수 없습니다. 
ORA-07228 rtecho: 터미널을 반향 모드로 복원할 수 없습니다. 
ORA-07229 slcpuc: CPU 갯수를 얻는데 실패했습니다. 
ORA-07230 slemcr: fopen 오류, 오류화일을 열 수 없습니다. 
ORA-07231 slemcc: 부적절한 화일처리, 함수가 잘못된 인수로 요구되었습니다. 
ORA-07232 slemcc: fclose 오류. 
ORA-07233 slemcw: 부적절한 화일처리, 함수가 잘못된 인수로 요구되었습니다. 
ORA-07234 slemcw: fseek 오류 
ORA-07235 slemcw: fwrite 오류 
ORA-07236 slemop: open 오류 
ORA-07237 slemcl: 부적절한 화일처리, 함수가 잘못된 인수로 요구되었습니다. 
ORA-07238 slemcl: close 오류 
ORA-07239 slemrd: 부적절한 화일처리, 함수가 잘못된 인수로 요구되었습니다. 
ORA-07240 slemrd: seek 오류 
ORA-07241 slemrd: read 오류 
ORA-07242 slembfn: 변환 오류, 오류 화일명을 변환할 수 없습니다. 
ORA-07243 sftget: 제공된 버퍼가 전체 줄을 포함하기에 충분하지 않습니다. 
ORA-07244 ssfccf: 화일 생성실패, 화일크기 제한치에 도달했습니다. 
ORA-07245 sfccf: 최후 블록을 lseek 및 write할 수 없습니다. 
ORA-07246 sfofi: open 오류: 데이타베이스 화일을 열 수 없습니다. 
ORA-07247 sfrfb: read 오류: 데이타베이스 화일로부터 요구된 블록을 읽을 수 없습니다. 
ORA-07248 sfwfb: write 오류: 데이타베이스 블록을 기록할 수 없습니다. 
ORA-07250 spcre: semget오류, 최초 세마포 세트를 얻을 수 없습니다. 
ORA-07251 spcre: semget오류, 어떤 세마포도 할당할 수 없습니다. 
ORA-07252 spcre: semget오류, 세마포를 할당할 수 없습니다. 
ORA-07253 spdes: semctl오류, 세마포를 할당할 수 없습니다. 
ORA-07254 spdcr: ?/bin/oracle을 확장하는 동안 변환 오류가 발생했습니다. 
ORA-07255 spini: 신호 처리기를 구축할 수 없습니다. 
ORA-07256 sptrap: 예외를 감지하기 위한 신호 처리기를 구축할 수 없습니다. 
ORA-07257 spdcr: 프로그램명의 확장시 변환오류 
ORA-07258 spdcr: 포크 오류, 프로세스를 생성할 수 없습니다. 
ORA-07259 spdcr: 수행오류, 기동시 분리된 프로세스가 실패했습니다. 
ORA-07260 spdcr: 대기 오류 
ORA-07261 spdde: kill 오류, 프로세스에 신호를 보낼 수 없습니다. 
ORA-07262 sptpa: sptpa가 부적절한 프로세스 id에서 호출되었습니다. 
ORA-07263 sptpa: kill 오류 
ORA-07264 spwat: semop 오류, 세마포를 줄일 수 없습니다. 
ORA-07265 sppst: semop 오류, 세마포를 늘릴 수 없습니다. 
ORA-07266 sppst: 부적절한 프로세스 번호가 sppst로 넘겨졌습니다. 
ORA-07267 spwat: 부적절한 프로세스 번호 
ORA-07268 spgun: getpwuid 오류. 
ORA-07269 spdcr: exec후 분리된 프로세스가 죽었습니다. 
ORA-07270 spalck: setitimer오류, 인터벌 타이머를 설정할 수 없습니다. 
ORA-07271 spwat: 오라클 프로세스 번호가 부적절합니다. 
ORA-07272 spwat: 부적절한 세마포 세트 id입니다. 
ORA-07273 sppst: 부적절한 세마포 id입니다. 
ORA-07274 spdcr: 액세스 오류, 오라클의 액세스가 거절되었습니다. 
ORA-07275 프로세스로 시그널을 송신할 수 없습니다. 
ORA-07276 spdba: /etc/group내에 dba 그룹이 없습니다. 
ORA-07277 spdde: 부당한 pid가 인수로 넘겨졌습니다. 
ORA-07278 splon: ops$username이 버퍼길이를 초과했습니다. 
ORA-07279 spcre: semget오류, 최초의 세마포 세트를 얻을 수 없습니다. 
ORA-07280 soarch: 화일 대 화일 복사를 위한 임시 버퍼의 malloc에 실패했습니다. 
ORA-07281 soarch: 인터럽트가 발생했습니다. 
ORA-07282 soaprd: 스트링 오버플로우 
ORA-07283 soaprd: 아카이브 수신지에 대한 볼륨 크기가 부적절합니다. 
ORA-07284 soaprd: 볼륨크기 지정이 적절하게 종료되지 않았습니다. 
ORA-07285 soaprd: 디스크 화일에 대해서는 볼륨크기를 지정할 수 없습니다. 
ORA-07286 soagdi: 디바이스 정보를 획득할 수 없습니다. 
ORA-07287 soagdi: 로그 아카이브를 할 수 없는 디바이스입니다. 
ORA-07288 soabfn: 화일명 구성시 스트링 오버플로우입니다. 
ORA-07289 soafls: 테이프로의 기록에 실패했습니다. 
ORA-07290 soagdi: 아카이브를 위해 지정된 디렉토리가 없습니다. 
ORA-07292 soaotp: 로그 화일에 부합되기에는 화일이 너무 작습니다. 
ORA-07293 soaotp: 현재의 테이프 볼륨을 열 수 없습니다. 
ORA-07294 soaotp: 테이프 기록을 위한 버퍼를 할당할 수 없습니다. 
ORA-07295 soaotp: 로그 화일의 상태를 발견할 수 없습니다. 
ORA-07296 soaotp: lseek 오류, 로그 화일의 시작을 찾을 수 없습니다. 
ORA-07297 soaotp: read 오류, 헤더 블록을 읽을 수 없습니다. 
ORA-07298 soacls: 이미 닫힌 화일을 닫으려했습니다. 
ORA-07299 soacls: 테이프 디바이스의 닫기 실패 
ORA-07300 smscre: ?/dbs/sgadef.dbf 화일의 확장시 변환오류입니다. 
ORA-07301 smscre: sga 생성시 ?/dbs/sgadef@.dbf 화일이 이미 존재합니다. 
ORA-07302 smscre: ?/dbs/sgadef@.dbf의 생성에 실패했습니다. 
ORA-07303 smscre: 부당한 데이타베이스 버퍼 크기입니다. 
ORA-07304 smscre: 부당한 재실행 버퍼 크기입니다. 
ORA-07305 sms1sg: sga 생성시 ftok 오류 
ORA-07306 sms1sg: shmget 오류, 공유메모리 세그먼트를 획득할 수 없습니다. 
ORA-07307 sms1sg: shmat 오류, sga를 첨부할 수 없습니다. 
ORA-07308 smscre: ?/dbs/sgadef@.dbf 화일에 기록시 기록오류가 발생했습니다. 
ORA-07309 smscre: close 오류, ?/dbs/sgadef@.dbf 화일을 닫을 수 없습니다. 
ORA-07310 smscre: sga를 읽을 수 없습니다. 
ORA-07311 smsdes: sgadef.dbf 화일명의 이름변환 오류. 
ORA-07312 smsdes: 열기 오류, sgadef.dbf 화일을 열 수 없습니다. 
ORA-07313 smsdes: 읽기 오류, sgadef.dbf 화일을 읽을 수 없습니다. 
ORA-07314 smsdes: 공유메모리 파기 시도시 shmctl 오류가 발생했습니다. 
ORA-07315 smsdes: 닫기 오류, sgadef.dbf 화일을 닫을 수 없습니다. 
ORA-07316 smsdes: unlink 오류, sgadef.dbf 파기할 수 없습니다. 
ORA-07317 smsget: sgadef.dbf 화일명의 확장시 변환 오류가 발생했습니다. 
ORA-07318 smsget: sgadef.dbf 화일의 개방 오류 
ORA-07319 smsget: sgadef.dbf 읽기 오류 
ORA-07320 smsget: sga의 첨부 시도중 shmat 오류가 발생했습니다. 
ORA-07321 smsget: shmat 오류, 요구된 번지로 sga를 첨부할 수 없습니다. 
ORA-07322 smsget: 닫기 오류, sgadef.dbf 화일을 닫을 수 없습니다. 
ORA-07323 smsfre: shmdt 오류, sga를 지울 수 없습니다. 
ORA-07324 smpall: pga 할당시 malloc 오류가 발생했습니다. 
ORA-07325 smsacx: 문맥 영역 할당시 malloc 오류가 발생했습니다. 
ORA-07326 smsfre: 매핑되지 않은 SGA를 해제하려 했습니다. 
ORA-07327 smpdal: 매핑되지 않은 PGA를 파기하려 했습니다. 
ORA-07328 smsmax: 세그먼트에 대한 최대 크기를 추정할 수 없습니다. 
ORA-07329 smscsg: 너무 많은 공유메모리 세그먼트입니다. 
ORA-07330 smsnsg: SGA의 고정영역을 할당할 수 없습니다. 
ORA-07331 smsnsg: SGA의 가변영역을 할당할 수 없습니다. 
ORA-07332 smsnsg: 재실행 버퍼를 할당할 수 없습니다. 
ORA-07333 smsnsg: 데이타베이스 버퍼를 할당할 수 없습니다. 
ORA-07334 smsnsg: 너무 많은 공유메모리 세그먼트입니다. 
ORA-07335 smsmat: sga 생성시 ftok 오류 
ORA-07336 smsmat: shmget 오류, 공유메모리 세그먼트를 얻을 수 없습니다. 
ORA-07337 smsmat: shmat 오류, sga를 첨부할 수 없습니다. 
ORA-07338 smscre: sga 화일의 존재여부를 테스트할 수 없습니다. 
ORA-07339 spcre: 세마포 세트의 최대수를 초과했습니다. 
ORA-07340 sfccf: fstat 오류, 화일 상태를 획득할 수 없습니다. 
ORA-07341 sfsrd: 부당한 블록 번호입니다. 
ORA-07342 sfsrd: lseek 오류, 요구된 블록을 찾을 수 없습니다. 
ORA-07343 sfsrd: read 오류, 요구된 블록을 찾을 수 없습니다. 
ORA-07344 sfsrd: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07347 sfsrd: 용도를 실험에 대한 모의 오류입니다. 
ORA-07350 sfccf: 논리 블록크기가 부당합니다. 
ORA-07351 sfccf: malloc 오류, 기록 버퍼를 할당할 수 없습니다. 
ORA-07352 sfccf: create 오류, 화일을 생성할 수 없습니다. 
ORA-07353 sfccf: close 오류, 화일을 닫을 수 없습니다. 
ORA-07354 sfccf: open 오류, 화일을 열 수 없습니다. 
ORA-07355 sfccf: fstat 오류, 화일 상태를 획득할 수 없습니다. 
ORA-07356 sfccf: lseek 오류, 화일의 시작위치를 찾을 수 없습니다. 
ORA-07357 sfccf: 기록 오류, 데이타베이스 헤더블록에 기록할 수 없습니다. 
ORA-07358 sfccf: 기록 오류, 화일에 기록할 수 없습니다. 
ORA-07359 sfifi: 부당한 논리 블록크기 
ORA-07360 sfifi: stat 오류, 화일에 대한 정보를 얻을 수 없습니다. 
ORA-07361 sfifi: malloc 오류, 헤더블록에 대한 버퍼를 할당할 수 없습니다. 
ORA-07362 sfifi: 열기 오류, 화일을 열 수 없습니다. 
ORA-07363 sfifi: lseek 오류, 화일의 시작위치를 찾을 수 없습니다. 
ORA-07364 sfifi: 읽기 오류, 헤더블록을 읽을 수 없습니다. 
ORA-07365 sfifi: 닫기 오류 
ORA-07366 sfifi: 유효하지 않은 화일, 화일이 정당한 헤더블록을 가지지 않습니다. 
ORA-07367 sfifi: 논리블록 크기가 일치하지 않습니다. 
ORA-07368 sfofi: 열기 오류, 화일을 열 수가 없습니다. 
ORA-07369 sfcfi: 닫기 오류, 데이타베이스 화일을 닫을 수 없습니다. 
ORA-07370 sfrfb: 부당한 블록 번호 
ORA-07371 sfrfb: lseek 오류, 요구된 블록을 찾을 수 없습니다. 
ORA-07372 sfrfb: 읽기 오류, 요구된 블록을 데이타베이스 화일에서 읽을 수 없습니다. 
ORA-07373 sfrfb: 읽기시 잘못된 수의 바이트가 리턴되었습니다. 
ORA-07374 sfwfb: 부당한 블록 번호 
ORA-07375 sfwfb: lseek 오류, 요구된 블록을 찾을 수 없습니다. 
ORA-07376 sfwfb: 기록 오류, 데이타베이스 블록에 기록할 수 없습니다. 
ORA-07377 sfwfb: 쓰기시 잘못된 수의 바이트가 리턴되었습니다. 
ORA-07378 sfcmf: 변환 오류, 화일명을 확장할 수 없습니다. 
ORA-07379 sfcmf: 새로운 화일이 존재합니다. 
ORA-07380 sfcmf: 변환 오류, 기존의 화일명을 확장할 수 없습니다. 
ORA-07381 sfccf: 변환 오류, 화일명을 확장할 수 없습니다. 
ORA-07382 sfifi: 변환 오류, 화일명을 확장할 수 없습니다. 
ORA-07383 sfgfs: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07384 sfgfn: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07385 sfcfi: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07386 sfrfb: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07387 sfwfb: 함수가 잘못된 인수로 요구되었습니다. 
ORA-07388 sfccf: 재사용이 지정되었으나 화일이 존재하지 않습니다. 
ORA-07389 sfccf: 열기 오류, 재사용하기 위해 화일을 열 수 없습니다. 
ORA-07390 sftopn: 변환 오류, 화일명을 변환할 수 없습니다. 
ORA-07391 sftopn: fopen 오류, 텍스트 화일을 열 수 없습니다. 
ORA-07392 sftcls: fclose 오류, 텍스트 화일을 닫을 수 없습니다. 
ORA-07393 sfccf: 화일 불일치, 다른크기의 화일을 재사용하려 했습니다. 
ORA-07394 sfccf: 화일 불일치, 다른 블록크기의 화일을 재사용하려 했습니다. 
ORA-07395 sfccf: 부당한 옵션으로 화일이 재사용되었습니다. 
ORA-07396 sfccf: lseek 오류, 재사용 화일의 시작위치를 찾을 수 없습니다. 
ORA-07397 sfccf: 읽기 오류, 화일의 헤더블록을 읽을 수 없습니다. 
ORA-07398 sfccf: 부당한 헤더 정보, 화일이 정당한 데이타베이스 화일이 아닙니다. 
ORA-07399 sfccf: 화일이 존재합니다. 
ORA-07400 slemtr: 메시지 화일의 변환명이 너무 깁니다. 
ORA-07401 sptrap: 사용자의 예외 처리기를 복원할 수 없습니다. 
ORA-07402 sprst: 사용자의 신호 처리기를 복원할 수 없습니다. 
ORA-07403 sfanfy: db_writers 파라미터가 정당하지 않습니다. 
ORA-07404 sfareq: 요구가 종료하기를 기다리는 동안 타임아웃 됐습니다. 
ORA-07405 sfcfi: 데이타베이스 기록자중 하나에서 닫기실패 
ORA-07406 slbtpd: 부당한 번호입니다. 
ORA-07407 slbtpd: 부당한 지수입니다. 
ORA-07408 slbtpd: 팩형 십진수로 변환시 오버플로우 
ORA-07409 slpdtb: 잘못된 팩형 십진수 
ORA-07410 slpdtb: 제공된 버퍼에 비해 수치가 너무 큽니다. 
ORA-07411 slgfn: 제공된 버퍼에 비해 패스명이 너무 깁니다. 
ORA-07412 sfaslv: 비동기 기록 배열 엔트리의 획득오류 
ORA-07413 sfcopy: 원천과 수신 논리블록 크기가 일치하지 않습니다. 
ORA-07414 sfcopy: 메모리 버퍼의 할당실패 
ORA-07415 slpath: 메모리 버퍼의 할당실패 
ORA-07416 slpath: 패스명의 구성실패; 결과 버퍼 영역이 부족합니다. 
ORA-07417 sfareq: 하나 이상의 데이타베이스 기록자가 가동중이 아닙니다. 
ORA-07418 sfareq: 데이타베이스 기록자가 timing 함수내에 오류를 가집니다. 
ORA-07419 sfareq: 데이타베이스 기록자가 timing 함수내에 오류를 가집니다. 
ORA-07420 sfccf: 부당한 화일형니다. 
ORA-07421 sfcopy: 복제시 원본 화일의 읽기에 실패했습니다. 
ORA-07422 sfcopy: 복제시 수신 화일의 쓰기에 실패했습니다. 
ORA-07423 sfrfb: 버퍼가 적절하게 정렬(align)되지 않아서 읽기에 실패했습니다. 
ORA-07424 sfwfb: 버퍼가 적절하게 정렬(align)되지 않아서 쓰기에 실패했습니다. 
ORA-07425 sdpri: dump 화일 위치 해석시 오류 %s가 발생했습니다. 
ORA-07426 spstp: dbs 디렉토리의 위치를 찾을 수 없습니다. 
ORA-07427 spstp: dbs로 디렉토리를 변경할 수 없습니다. 
ORA-07428 smsgsg: ftok()가 sga에 대한 키의 계산시 오류를 리턴했습니다. 
ORA-07429 smsgsg: shmget()이 세그먼트를 얻는데 실패했습니다. 
ORA-07430 smsgsg: 계산된 키와 저장된 키가 일치하지 않습니다. 
ORA-07431 실패된 포크 
ORA-07432 이미 자고 있는 것을 또 다시 수행할 수 없습니다. 
ORA-07433 sfrnms: 미러쪽 상태 파라미터가 부적당합니다. 
ORA-07434 sfgmsn: 미러쪽 상태 파라미터가 부적당합니다. 
ORA-07435 부적당한 파라미터가 함수를 테스트하는데 보내졌습니다. 
ORA-07440 WMON 프로세스가 오류와 함께 종료되었습니다. 
ORA-07441 함수 주소는 %s 바이트 경계선에서 정렬되어야 합니다. 
ORA-07442 함수 주소는 %s 에서 %s 범위에 있어야 합니다. 
ORA-07443 함수 %s 가 없습니다. 
ORA-07444 함수 주소 %s 은 읽기가능한 것이 아닙니다. 
ORA-07445 예외 발견: 코아 덤프 [%s] [%s] [%s] [%s] [%s] [%s] 
ORA-07446 sdnfy: 잘못된 %s값이 %s 파라미터에 있습니다. 
ORA-07447 ssarena: usinit 실패 
ORA-07448 ssarena: 공유 영역의 최대수를 초과했습니다. 
ORA-07449 sc: usnewlock 실패 
ORA-07450 sms1sg: vm_mapmem 오류, 공유메모리를 생성할 수 없습니다. 
ORA-07451 sms1sg: 공유된 메모리에 틀린 번지가 첨부되었습니다. 
ORA-07452 sms1sg: SGA 형질 변경에 실패했습니다. 
ORA-07453 smsmat: vm_mapmem 오류, 공유메모리를 생성할 수 없습니다. 
ORA-07454 smsmat: 공유된 메모리에 틀린 번지가 첨부되었습니다. 
ORA-07455 smsmat: SGA 형질 변경에 실패했습니다. 
ORA-07456 smsmax: 클러스터 크기를 얻을 수 없습니다. 
ORA-07457 smsdes: sgadef.dbf 화일명의 해석 실패 
ORA-07458 smsdes: 닫기 오류, sgadef.dbf를 닫을 수가 없습니다. 
ORA-07459 smsvmfcre: sgadef.dbf 화일명의 해석 실패 
ORA-07460 smsvmfcre: SGA 생성시 sgadef.dbf 화일이 이미 존재합니다. 
ORA-07461 smsvmfcre: sgadef.dbf 화일의 생성 실패 
ORA-07462 smsget: sgadef.dbf 화일명의 해석 오류 
ORA-07463 smsget: sgadef@.dbf 화일의 열기 오류 
ORA-07464 smsget: SGA 첨부 시도중 vm_mapmem 혹은 vm_allocate 오류. 
ORA-07465 smsget: 공유된 메모리에 틀린 번지가 첨부되었습니다. 
ORA-07466 smsget: SGA의 상속 세그먼트를 변경하는데 실패했습니다. 
ORA-07467 smsget: 닫기 오류, sgadef.dbf를 닫을 수가 없습니다. 
ORA-07468 spwat: mset 오류, 세마포를 설정할 수 없습니다. 
ORA-07469 sppst: mclear 오류, 세마포를 소거할 수 없습니다. 
ORA-07470 snclget: 클러스터 번호를 얻을 수 없습니다. 
ORA-07471 snclrd: sgadef.dbf 화일명의 해석 오류 
ORA-07472 snclrd: sgadef.dbf 화일의 열기 오류 
ORA-07473 snclrd: sgadef.dbf 화일의 읽기 시도중 읽기 오류 
ORA-07474 snclrd: 닫기 오류, sgadef.dbf 화일을 닫을 수가 없습니다. 
ORA-07475 slsget: vm 통계를 얻을 수가 없습니다. 
ORA-07476 slsget: 메모리의 맵(map) 통계를 얻을 수가 없습니다. 
ORA-07477 scgcmn: 잠금 관리자가 초기화되지 않았습니다. 
ORA-07478 scgcmn: 잠금 상태를 얻을 수가 없습니다. 
ORA-07479 scgcmn: 잠금을 열거나 전환할 수 없습니다. 
ORA-07480 snchmod: ?/dbs/sgalm.dbf에 대한 허가를 변경할 수 없습니다. 
ORA-07481 snlmatt: 잠금 관리자 인스턴스에 첨부할 수 없습니다. 
ORA-07482 snlmini: 잠금 관리자 인스턴스를 생성할 수 없습니다. 
ORA-07483 snlkget: 잠금을 변환(get)할 수 없습니다. 
ORA-07484 snlkput: 잠금을 변환(put)할 수 없습니다. 
ORA-07485 scg_get_inst: 인스턴스 번호 잠금을 열 수 없습니다. 
ORA-07486 scg_get_inst: 인스턴스 번호 잠금을 변환(get)할 수 없습니다. 
ORA-07487 scg_init_lm: 잠금 관리자 인스턴스를 생성할 수 없습니다. 
ORA-07488 scgrcl: 잠금 관리자가 초기화되지 않았습니다. 
ORA-07489 scgrcl: 잠금 상태를 얻을 수가 없습니다. 
ORA-07490 scgrcl: 잠금을 변환할 수 없습니다. 
ORA-07491 scgrcl: 잠금 요구를 취소할 수 없습니다. 
ORA-07492 scgrcl: 잠금을 닫을 수 없습니다. 
ORA-07493 scgrcl: 잠금 매니져 오류 
ORA-07494 scgcm: 예기치못한 오류 
ORA-07495 spwat: lm_wait 실패 
ORA-07496 sppst: lm_post 실패 
ORA-07497 sdpri: 추적화일 %s를 생성할 수 없음; 오류번호 = %s 
ORA-07498 spstp: /dev/resched를 열 수 없습니다. 
ORA-07499 spglk: 재스케줄할 수 없습니다. 
ORA-07500 scglaa: $cantim 예기치않은 리턴 
ORA-07501 scgtoa: $deq 예기치 않은 리턴 
ORA-07502 scgcmn: $enq 예기치 않은 리턴 
ORA-07503 scgcmn: $setimr 예기치 않은 리턴 
ORA-07504 scgcmn: $hiber 예기치 않은 리턴 
ORA-07505 scggt: $enq 부모 잠금에 예기치 않은 리턴 
ORA-07506 scgrl: lockid %s에 $deq라는 예기치 않은 리턴 
ORA-07507 scgcm: 예기치 않은 잠금 상태 조건 
ORA-07508 scgfal: $deq 모든 예기치 않은 리턴 
ORA-07509 scgfal: $deq 부모 잠금에 예상치 못한 리턴 
ORA-07510 scgbrm: lockid %s에 넘어온 $getlki가 잘못 되었습니다. 
ORA-07511 sscggtl: $enq가 마스터 종료 잠금에 대해서 잘못되었습니다. 
ORA-07512 sscggtl: $enq가 클라이언트 종료 잠금에 대해서 잘못되었습니다. 
ORA-07513 sscgctl: $deq가 종료 잠금의 취소에서 잘못되었습니다. 
ORA-07514 scgcan: 잠금을 취소할때 $deq가 잘못되었습니다. 
ORA-07515 sfccf: UIC 그룹 <= MAXSYSGROUP - 화일 작업이 허용되지 않습니다. 
ORA-07516 sfccf: $open 화일 오류 
ORA-07517 sfccf: 존재하는 화일크기가 지정된 화일크기와 일치하지 않습니다. 
ORA-07518 sfccf: 부적합한 화일 생성 옵션 
ORA-07519 sfccf: 화일 소유 그룹 <= MAXSYSGROUP 이므로 REUSE가 허용되지 않습니다. 
ORA-07520 sfccf: 부적합한 논리 블록 크기 
ORA-07521 sfccf: $create 화일 오류 
ORA-07522 sfccf: 새로운 화일이 존재합니다. 
ORA-07523 sfccf: $connect 오류 
ORA-07524 sfccf: $write (zero file) 오류 
ORA-07525 sfccf: $close 오류 
ORA-07526 sfifi: 부적합한 논리 블록 크기 
ORA-07527 sfifi: UIC 그룹 <= MAXSYSGROUP - 화일 작업이 허용되지 않습니다. 
ORA-07528 sfifi: $open 오류 
ORA-07529 sfifi: $close 오류 
ORA-07530 sfofi: $open 오류 
ORA-07531 ssfccf: $DISPLAY 오류 
ORA-07532 sfcfi: $dassgn 오류 
ORA-07533 sfifi: 화일 소유 그룹 <= MAXSYSGROUP 이므로 화일을 열 수 없습니다. 
ORA-07534 scginq: lockid %s에서 $getlki 예기치 않은 리턴 
ORA-07535 sfrfb: 부적절한 논리 블록 수 
ORA-07536 sfrfb: $qio(read) 오류 
ORA-07537 sfccf: 화일 소유 그룹 <= MAXSYSGROUP 이므로 화일을 생성할 수 없습니다. 
ORA-07538 sfsgrow: $qiow 실패 
ORA-07539 sfqioini: $qio 오류 
ORA-07540 sfqioast: 비정상적으로 비동기 디스트 I/O에 작업이 완성되었습니다. 
ORA-07541 sfifi: 길이가 영인 화일을 식별할 수 없습니다. 
ORA-07542 sfccf: 화일의 최상위 버전외에는 생성-재사용을 할 수 없습니다. 
ORA-07543 sfrfb: 길이가 영인 화일을 판독할 수 없습니다. 
ORA-07544 sfqio: 성공적으로 비동기식 I/O가 완성되지 않았습니다. 
ORA-07545 sfcmf: $PARSE 실패 (화일명 구문) 
ORA-07546 sfcmf: 새로운 화일이 존재합니다. 
ORA-07547 sfcmf: $OPEN 실패 
ORA-07548 sftopn: 최대 화일수가 이미 열려 있습니다. 
ORA-07549 sftopn: $OPEN 실패 
ORA-07550 sftopn: $CONNECT 실패 
ORA-07551 sftcls: $CLOSE 실패 
ORA-07552 sftget: $GET 실패 
ORA-07553 sfofi: 개방할 화일이 없습니다. 
ORA-07554 sfcopy: 원천과 수신 논리블록의 크기가 일치해야 합니다. 
ORA-07555 sfqioast: 부적합한 미결 값 
ORA-07556 sfotf: $create 오류 
ORA-07557 ssfctf: 테이프 화일에 지역 블록 크기 지정이 부적합합니다. 
ORA-07558 ssfctf: $create 오류 
ORA-07559 sfdone: 성공적으로 비동기식 I/O가 완성되지 않았습니다. 
ORA-07560 sltln: $trnlog 오류 
ORA-07561 szprv: $IDTOASC 실패 
ORA-07562 sldext: 확장자는 3자 이어야 합니다. 
ORA-07563 sldext: $PARSE 실패 
ORA-07564 sldext: 화일명 또는 확장자에 와일드 카드(wildcard) 
ORA-07565 sldext: $SEARCH 실패 
ORA-07568 slspool: $OPEN 실패 
ORA-07569 slspool: $CLOSE 실패 
ORA-07570 szrfc: $IDTOASC 실패 
ORA-07571 szrfc: $FIND_HELD 실패 
ORA-07572 szrfc: 불 충분한 롤명 버퍼 공간 
ORA-07573 slkhst: 호스트 연산을 수행할 수 없습니다. 
ORA-07574 szrfc: $GETUAI 실패 
ORA-07576 sspexst: 프로세스 %s 번호에 $GETJPIW 실패 
ORA-07577 권한 화일에 그런 사용자가 없습니다. 
ORA-07578 szprv: $FIND_HELD 실패 
ORA-07579 spini: $DCLEXH 실패 
ORA-07580 spstp: $GETJPIW 실패 
ORA-07581 spstp: 미확인 프로세스명에서 SID를 얻을 수 없습니다. 
ORA-07582 spstp: ORA_SID 가 부적합한 값을 가집니다. 
ORA-07584 spdcr: ORA_sid_(proc_)PQL$_item에 대한 부적절한 값입니다. 
ORA-07585 spdcr: $PARSE 실패 
ORA-07586 spdcr: $SEARCH 실패 
ORA-07587 spdcr: $CREPRC 실패 
ORA-07588 spdcr: $GETJPIW가 이미지 이름을 얻는데 실패 
ORA-07589 spdde: 시스템 id가 설정되지 않았습니다. 
ORA-07590 spdde: $DELPRC 실패 
ORA-07591 spdde: $GETJPIW 실패 
ORA-07592 sspgprv: 필요한 권한의 획득시 오류 
ORA-07593 ssprprv: 권한의 해제시 오류 
ORA-07594 spiip: $GETJPIW 실패 
ORA-07595 sppid: $GETJPIW 실패 
ORA-07596 sptpa: $GETJPIW 실패 
ORA-07597 spguns: $GETJPIW 실패 
ORA-07598 spwat: $SETIMR 실패 
ORA-07599 spwat: $SCHDWK 실패 
ORA-07600 spwat: $GETSYIW 실패 
ORA-07601 spguno: $GETJPIW 실패 
ORA-07602 spgto: $GETJPIW 실패 
ORA-07605 spdba: $ASCTOID 실패 
ORA-07606 spdba: $CHKPRO 실패 
ORA-07607 szaud: $SNDOPR 실패 
ORA-07608 szprv: $GETUAI 실패 
ORA-07609 szprv: $HASH_PASSWORD 실패 
ORA-07610 $GETJPIW가 사용자의 MAC 권한을 검색하는데 실패했습니다. 
ORA-07612 $GETUAI가 사용자의 해제 레벨을 검색하는데 실패했습니다. 
ORA-07613 $GETJPIW가 사용자의 프로세스 레이블을 검색하는데 실패했습니다. 
ORA-07614 $CHANGE_CLASS가 사용자의 프로세스 레이블을 검색하는데 실패했습니다. 
ORA-07615 $CHANGE_CLASS가 지정된 화일 레이블을 검색하는데 실패했습니다. 
ORA-07616 $CHANGE_CLASS가 지정된 디바이스 레이블을 검색하는데 실패했습니다. 
ORA-07617 $FORMAT_CLASS가 이진 레이블을 스트링으로 변환하는데 실패했습니다. 
ORA-07618 $IDTOASC가 보안 레벨 변환에 실패했습니다. 
ORA-07619 $IDTOAS가 무결성 레벨 변환에 실패했습니다. 
ORA-07620 smscre: 부적절한 데이타베이스 블록 크기 
ORA-07621 smscre: 부적절한 재실행 블록 크기 
ORA-07622 smscre: $CREATE 실패 
ORA-07623 smscre: $CRMPSC 실패 
ORA-07624 smsdes: $DBGLSC 실패 
ORA-07625 smsget: $MGBLSC 실패 
ORA-07626 smsget: sga가 이미 맵(map)되었습니다. 
ORA-07627 smsfre: $CRETVA 실패 
ORA-07628 smsfre: sga가 맵(map)되지 않았습니다. 
ORA-07629 smpall: $EXPREG 실패 
ORA-07630 smpdal: $DELTVA 실패 
ORA-07631 smcacx: $EXPREG 실패 
ORA-07632 smsrcx: $DELTVA 실패 
ORA-07633 smsdbp: 부적합한 프로텍션 값입니다. 
ORA-07634 smsdbp: $CRETVA 실패 
ORA-07635 smsdbp: $SETPRT 실패 
ORA-07636 smsdbp: $MGBLSC 실패 
ORA-07637 smsdbp: sga 생성시 버퍼 보호옵션이 지정되지 않았습니다. 
ORA-07638 smsget: SGA 패드(pad) 영역이 생성된 SGA에 비해 충분히 크지않습니다. 
ORA-07639 smscre: SGA 패드(pad) 영역이 충분히 크지않습니다(%s 바이트 필요) 
ORA-07640 smsget: SGA가 아직 유효하지 않음. 초기화가 진행중입니다. 
ORA-07641 smscre: SGA에 시스템 페이지화일을 사용할 수 없습니다. 
ORA-07642 smprtset: $CMKRNL 실패 
ORA-07643 smsalo: 부적절한 SMSVAR 
ORA-07645 sszfsl: $CHANGE_CLASS 실패 
ORA-07646 sszfck: $CREATE 실패 
ORA-07647 sszfck: $OPEN 실패 
ORA-07650 sigunc: $GETJPIW 실패 
ORA-07655 slsprom:$TRNLOG 실패 
ORA-07656 slsprom:$GETDVI 실패 
ORA-07657 slsprom:$ASSIGN 실패 
ORA-07658 slsprom:$QIOW 읽기 실패 
ORA-07665 ssrexhd: 순환 오류가 발생했습니다%s %s %s %s %s %s 
ORA-07670 $IDTOASC가 보안 카테고리 변환에 실패했습니다. 
ORA-07671 $IDTOASC가 무결성 카테고리 변환에 실패했습니다. 
ORA-07672 $PARSE_CLASS가 스트링을 이진 레이블로 변환하는데 실패했습니다. 
ORA-07680 sou2os: 현재 ORACLE로의 다른 호출이 수행되고 있습니다. 
ORA-07681 sou2os: Oracle을 초기화 할때 오류가 발생했습니다. 
ORA-07682 sou2os: 커널 디스패치 설정 실패 오류 
ORA-07683 sou2os: $SETPRV 재설정 오류 
ORA-07684 sou2os: 슈퍼바이져 스택 재설정 오류 
ORA-07685 sou2os: 슈퍼바이져 스택 설정 오류 
ORA-07700 soarch: 인터럽트를 받았습니다. 
ORA-07701 soatln: 내부적인 예외 상황: 출력 버퍼가 너무 작습니다. 
ORA-07702 아카이브내에 인식할 수 없는 디바이스 유형입니다. 
ORA-07703 아카이브 텍스트내에 오류: 디바이스 유형 다음에 /가 있어야 합니다. 
ORA-07704 아카이브 텍스트내에 오류: 디바이스 이름 다음에 :가 있어야 합니다. 
ORA-07705 sksaprs: 디바이스명 버퍼가 너무 작습니다. 
ORA-07706 아카이브 텍스트내에 오류: 디스크 화일명을 필요로합니다. 
ORA-07707 아카이브 텍스트내에 오류: 테이프 레이블명을 필요로합니다. 
ORA-07708 soaprs: 테이프 레이블 이름 버퍼가 너무 작습니다. 
ORA-07709 sksaprs: 원격 호스트에 아카이빙이 허용되지 않습니다. 
ORA-07710 soaprs: 화일 이름 버퍼가 너무 작습니다. 
ORA-07713 sksamtd: 아카이벌 디바이스를 마운트할 수 없습니다(SYS$MOUNT 실패) 
ORA-07715 sksadtd: 아카이벌 디바이스를 디스마운트할 수 없습니다(SYS$DISMNT 실패) 
ORA-07716 sksachk: ARCHIVE를 위한 잘못된 디바이스 명시 
ORA-07717 sksaalo: 메모리 할당시 오류 
ORA-07718 sksafre: 메모리 회수(freeing)시 오류 
ORA-07721 scgcm: 시스템 엔큐를 얻기 위한 OS 자원이 충분하지 않습니다. 
ORA-07740 slemop: 부정확한 처리 크기 (프로그래밍 오류) 
ORA-07741 slemop: $OPEN 실패 
ORA-07742 slemop: $CONNECT 실패 
ORA-07743 slemop: 부정확한 오류 화일 크기 
ORA-07744 slemcl: 부정확한 오류 메시지 화일 처리입니다. 
ORA-07745 slemcl: $CLOSE 실패 
ORA-07746 slemrd: 부정확한 오류 메시지 화일 처리입니다. 
ORA-07747 slemrd: $READ 실패 
ORA-07750 slemcr: fopen 실패 
ORA-07751 slemcr: malloc 실패 
ORA-07753 slemcf: 쓰기가 실패전에 fseek를 시도 
ORA-07754 slemcf: fwrite 실패 
ORA-07755 slemcf: 읽기가 실패전에 fseek 
ORA-07756 slemcf: fread 실패 
ORA-07757 slemcc: 부적절한 처리 
ORA-07758 slemcw: 부적절한 처리 
ORA-07759 slemtr: 부적절한 수신지 
ORA-07760 slemtr: $open 실패 
ORA-07800 slbtpd: 부적절한 수치 
ORA-07801 slbtpd: 부적절한 지수 
ORA-07802 slbtpd: 팩형 십진수로 변환시 오버플로우 
ORA-07803 slpdtb: 부적절한 팩형 십진수 니블 
ORA-07804 slpdtb: 제공된 버퍼에 비해서 수치가 너무 큽니다. 
ORA-07820 sspscn: SYS$CRELNM 실패 
ORA-07821 sspsdn: SYS$DELLNM 실패 
ORA-07822 spsscm: SYS$CREMBX 실패 
ORA-07823 spssqr: $QIO 실패 
ORA-07824 spsain: $SETIMR 실패 
ORA-07825 spssck: AST 레이블 에서의 $QIO 실패 
ORA-07826 spsscm: SYS$GETDVIW 실패 
ORA-07840 sllfop: LIB$GET_VM 실패 
ORA-07841 sllfop: SYS$OPEN 실패 
ORA-07842 sllfcl: SYS$CLOSE 실패 
ORA-07843 sllfcl: LIB$FREE_VM 실패 
ORA-07844 sllfop: LIB$GET_VM 실패 
ORA-07845 sllfcl: LIB$FREE_VM 실패 
ORA-07846 sllfop: %s 바이트의 레코드 버퍼가 %s 바이트의 사용자 버퍼에 비해 너무 큽니다. 
ORA-07847 sllfop: $CONNECT 실패 
ORA-07848 sllfrb: $GET 실패 
ORA-07849 sllfsk: $GET 실패 
ORA-07850 sllfop: 틀린 옵션 
ORA-07860 osnsoi: 인터럽트 처리기를 셋업할때 오류가 발생했습니다. 
ORA-07861 sfqio: 판독만 되는 화일에다 기록을 할수 없습니다. 
ORA-07862 sfqio: 화일을 확장할 수 없습니다. 
ORA-07880 sdopnf: 내부 오류 
ORA-08000 세션 시퀀스 리스트의 최대수를 초과했습니다. 
ORA-08001 세션당 최대 시퀀스의 수를 초과했습니다. 
ORA-08002 시퀀스 %s.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다. 
ORA-08003 시퀀스 %s.NEXTVAL 은 내부 한계를 초과했습니다. 
ORA-08004 시퀀스 %s.NEXTVAL %s %sVALUE 은 사례로 될 수 없습니다. 
ORA-08005 지정된 행이 존재하지 않습니다. 
ORA-08006 지정된 행은 더 이상 존재하지 않습니다. 
ORA-08008 다른 인스턴스가 USE_ROW_ENQUEUES = %s 로 마운트했습니다. 
ORA-08100 부적합한 색인입니다 진단에 대해서는 추적 화일을 참조하십시오 
ORA-08101 색인 키가 존재하지 않습니다 루트 dba %s, dba %s(%s) 
ORA-08102 색인 키가 없습니다 obj# %s, dba %s(%s) 
ORA-08103 개체가 더이상 존재하지 않습니다. 
ORA-08175 별개의 트랜잭션 제약이 위배되었습니다 (%s) 
ORA-08176 일관된 읽기가 실패; 롤백 데이타를 사용할 수 없습니다. 
ORA-08177 이 트랜잭션에 대한 직렬화 액세스를 할 수 없습니다. 
ORA-08200 scggc: 잠금을 여는데 실패했습니다. 
ORA-08201 scggc: 잠금을 변환하는데 실패했습니다. 
ORA-08202 scggc: 잠금을 닫는데 실패했습니다. 
ORA-08203 scgcan: 미결의 변환 요구를 취소하는데 실패했습니다. 
ORA-08204 scgcm: 예기치 않은 잠금 관리자 리턴 코드입니다. 
ORA-08205 ora_addr: 환경에 $ORACLE_SID가 설정되지 않았습니다. 
ORA-08206 ora_addr: 주소 화일 이름을 변환할 수 없습니다. 
ORA-08207 ora_addr: 주소 화일을 열 수 없습니다. 
ORA-08208 ora_addr: 주소 화일로부터 읽을 수 없습니다. 
ORA-08209 scngrs: SCN은 아직 초기화되지 않았습니다. 
ORA-08210 I/O 오류가 요구되었습니다. 
ORA-08211 sfgcwd: 현재 작업 디렉토리를 얻을 수 없습니다. 
ORA-08212 sfphys: 화일 이름을 변환할 수 없습니다. 
ORA-08213 sfphys: 화일이름을 stat 할 수 없습니다. 
ORA-08214 sfccf: SID가 너무 깁니다. 
ORA-08215 sfccf: 유효하지 않은 논리 블록 크기입니다. 
ORA-08216 sfccf: 화일 이름을 변환할 수 없습니다. 
ORA-08217 sfccf: 화일을 재사용할 수 없습니다. 
ORA-08218 sfccf: 화일을 생성할 수 없습니다 화일이 존재합니다. 
ORA-08219 sfccf: 화일을 만들 수 없습니다. 
ORA-08220 sfccf: 재사용하기 위한 작성에 실패했습니다. 
ORA-08221 sfccf: 내부 오류; 잘못된 사용 옵션 
ORA-08222 sfccf: 화일을 fstat 할 수 없습니다. 
ORA-08223 sfccf: 재사용을 위한 작성시 화일 크기가 유효하지 않습니다. 
ORA-08224 sfccf: 논리 블록 크기가 유효하지 않습니다. 
ORA-08225 sfccf: 화일을 ftruncate 할 수 없습니다. 
ORA-08226 sfccf: 지움이 실패했습니다. 
ORA-08227 sfifi: 화일 이름을 변환할 수 없습니다. 
ORA-08228 sfifi: 화일명을 stat 할 수 없습니다. 
ORA-08229 sfifi: 유효하지 않은 논리 블록 크기 
ORA-08230 smscre: SGA 할당에 실패했습니다. 
ORA-08231 smscre: SGA에 첨부할수 없습니다. 
ORA-08232 smsdes: SGA로부터 분리할 수 없습니다. 
ORA-08233 smsdes: SGA를 unmap 할 수 없습니다. 
ORA-08234 smsget: 인스턴스 리스너 주소를 가지고 올 수 없습니다. 
ORA-08235 smsget: 이 노드에 리스너가 없습니다. 
ORA-08236 smsget: 리스너와 함께 서브큐브를 공유할 수 없습니다. 
ORA-08237 smsget: SGA 영역이 아직 생성되지 않았습니다. 
ORA-08238 smsfre: SGA로부터 분리 할 수 없습니다. 
ORA-08240 snlmatt: 병렬 서버 이름이 너무 깁니다. 
ORA-08241 snlmatt: 잠금 관리자에 첨부할 수 없습니다. 
ORA-08242 snlmdet: 잠금 관리자로부터 분리할 수 없습니다. 
ORA-08243 soarch: 이름서버를 열 수 없습니다. 
ORA-08244 soarch: 온라인 로그 화일을 읽기용으로 열 수 없습니다. 
ORA-08245 soarch: 아카이브 수신 화일을 생성할 수 없습니다. 
ORA-08246 soarch: 아카이브 수신 화일을 읽기용으로 열 수 없습니다. 
ORA-08247 soarch: 아카이브 서버에 연결할 수 없습니다. 
ORA-08248 soarch: 아카이브 서버가 실패 
ORA-08249 soarch: 일부를 서버에게 보내는데 실패했습니다. 
ORA-08250 soarch: ORACLE_PSRV가 정의되지 않았습니다. 
ORA-08251 soarch: 아카이벌이 중단되었습니다. 
ORA-08260 ora_addr: 이름서버를 열 수 없습니다. 
ORA-08261 ora_addr: 이름서버에서 이름을 찾을 수 없습니다. 
ORA-08262 ora_addr: ORACLE_PSRV 가 정의되지 않았습니다. 
ORA-08263 ora_addr: 리스너 주소를 해제할 수 없습니다. 
ORA-08264 ora_addr: 이름서버를 닫을 수 없습니다. 
ORA-08265 create_ora_addr: 이름서버를 열 수 없습니다. 
ORA-08266 create_ora_addr: 이름서버에 이름을 등록할 수 없습니다. 
ORA-08267 destroy_ora_addr: 이름서버를 닫을 수 없습니다. 
ORA-08268 create_ora_addr: 이름서버를 닫을 수 없습니다. 
ORA-08269 destroy_ora_addr: 이름을 삭제할 수 없습니다. 
ORA-08270 soachk: 아카이벌 제어 스트링이 부적합합니다. 
ORA-08271 soabln: 아카이브 제어 스트링에 대한 버퍼 크기가 충분하지 않습니다. 
ORA-08272 soarch: 아카이브 제어 스트링에 대한 버퍼 크기가 충분하지 않습니다. 
ORA-08274 환경 변수를 위한 메모리가 부족합니다. 
ORA-08275 환경 변수가 설정되지 않았습니다. 
ORA-08276 이름서버에 pid를 위한 공간이 없습니다. 
ORA-08277 환경 변수를 설정할 수 없습니다. 
ORA-08278 CPU 통계를 얻을 수 없습니다. 
ORA-08279 sfsrd: 읽기 장소를 찾을 수 없습니다. 
ORA-08281 sfofi: 화일을 열 수 없습니다. 
ORA-08282 sfcfi: 화일을 닫을 수 없습니다. 
ORA-08283 sfrfb: 블록 수가 유효하지 않습니다 내부 오류 
ORA-08284 sfrfb: 정렬되지 않은 버퍼입니다; 내부 오류 
ORA-08285 sfrfb: 읽기 장소를 찾을 수 없습니다. 
ORA-08286 sfrfb: 읽기 실패 
ORA-08287 sfcmf: 대상 화일 이름을 바꿀 수 없습니다. 
ORA-08288 sfcmf: 소스 화일 이름을 바꿀 수 없습니다. 
ORA-08289 sfcopy: 화일들이 서로 다른 블록 크기를 가지고 있습니다. 
ORA-08290 sfcopy: 복사를 위한 버퍼를 malloc 할 수 없습니다. 
ORA-08291 sfcopy: 복사중에 읽기가 실패했습니다. 
ORA-08292 sfcopy: 복사중에 쓰기가 실패했습니다. 
ORA-08293 sfnfy: ulimit 실패 
ORA-08294 sfsrd: 블록 수가 잘못되었습니다; 내부 오류 
ORA-08295 sfsrd: 읽기가 너무 큽니다. 
ORA-08296 sfsrd: 읽기 실패 
ORA-08297 sfsrd: 읽기가 잘못된 바이트 수를 리턴 했습니다. 
ORA-08298 sfsync: 기가캐쉬 동기화 실패 
ORA-08299 sfsync: 기가캐쉬 화일 동기화 실패 
ORA-08300 sfq_clean1: 비동기 I/O 실패 
ORA-08301 sfdone: 비동기 I/O 실패 
ORA-08302 sfqio: 내부 오류 
ORA-08303 sfqio: 비동기 I/O 벡터를 malloc할 수 없습니다. 
ORA-08304 sfqio: 부적절한 블록 수; 내부 오류 
ORA-08305 sfqio: 정렬되지 않은 버퍼; 내부 오류 
ORA-08306 sfqio: I/O 제어 플래그를 설정할 수 없습니다. 
ORA-08307 sfqio: 비동기 I/O 요구를 제안할 수 없습니다. 
ORA-08308 sllfop: 화일을 열 수 없습니다. 
ORA-08309 sllfop: 화일을 fstat할 수 없습니다. 
ORA-08310 sllfop: recsize에 대한 값이 잘못되었습니다. 
ORA-08311 sllfop: maxrecsize에 대한 값이 잘못되었습니다. 
ORA-08312 sllfop: 인식할 수 없는 처리 옵션 
ORA-08313 sllfop: 버퍼를 할당할 수 없습니다. 
ORA-08314 sllfcf: 화일을 닫는중 오류 발생 
ORA-08315 sllfrb: 화일을 읽는중 오류 발생 
ORA-08316 sllfsk: 화일에서 찾는중 오류 발생 
ORA-08317 sllfsk: 화일에서 찾는중 오류 발생 
ORA-08318 sllfsk: 화일을 읽는중 오류 발생 
ORA-08319 sllfsk: 화일을 읽는중 오류 발생 
ORA-08320 scnget: scnset 또는 scnfnd 전에 scnget을 호출합니다. 
ORA-08321 scnmin: NOT IMPLEMENTED YET 
ORA-08322 scnmin: 바이어스 잠금을 열기/변환하는데 실패했습니다. 
ORA-08323 scnmin: 바이어스 잠금을 닫는데 실패했습니다. 
ORA-08330 프린트는 지원되지 않습니다. 
ORA-08331 대기 작업이 시간 초과되었습니다. 
ORA-08332 지정된 롤백 세그먼트 %s를 사용할 수 없습니다. 
ORA-08340 이 명령어는 nCUBE에서 허용되지 않고 하나의 쓰레드만 사용 되었습니다. 
ORA-08341 nCUBE에서 이 명령어는 인스턴스 1에서만 실행될 수 있습니다. 
ORA-08342 sropen: 재실행 서버 연결을 여는데 실패했습니다. 
ORA-08343 srclose: 재실행 서버 연결을 닫는데 실패했습니다. 
ORA-08344 srapp: 재실행 데이타를 재실행 서버로 보내는데 실패했습니다. 
ORA-08360 sfccf: 화일 유형이 유효하지 않습니다. 
ORA-08361 sfccf: 원시 디바이스에 공간이 없습니다. 
ORA-08362 scgcm: 잠금 관리자에 메모리가 부족합니다. 
ORA-08401 부적당한 컴파일러 이름: %s 
ORA-08412 WMSGBSIZ에서 오류 발생, WMSGBLK의 크기가 경고 메시지에 비해 작습니다. 
ORA-08413 %s에서 FORMAT 파라미터에 부적당한 컴파일러 유형이 있습니다. 
ORA-08414 %s에 오류가 생겼습니다. 
ORA-08429 디스플레이 유형 데이타로는 부적당한 디지트가 raw 데이타에 있습니다. 
ORA-08430 raw 데이타에 선행 부호가 누락되었습니다. 
ORA-08431 픽처에 정의되어 있는 제로들이 raw 데이타에는 없습니다. 
ORA-08432 raw 데이타에 부적당한 부동 소숫점 데이타가 있습니다. 
ORA-08433 raw에서 숫자로 변환하는데 부적당한 픽처 유형이 있습니다. 
ORA-08434 raw 데이타에 부적당한 종결 부호가 있습니다. 
ORA-08435 SIGN IS LEADING가 명세될때 PICTURE MASK의 주된 신호가 빠졌습니다. 
ORA-08436 raw 데이타에 부적당한 부호 디지트가 있습니다. 
ORA-08437 픽처 마스크에 부적당한 픽처 유형이 있습니다. 
ORA-08440 raw 버퍼는 변환된 데이타를 보관하기에 너무 작습니다. 
ORA-08441 픽처 마스크에 닫기 괄호가 누락되었습니다. 
ORA-08443 마스크 옵션의 BLANK WHEN ZERO 절에 구문 오류입니다. 
ORA-08444 마스크 옵션의 JUSTIFIED 절에 구문 오류입니다. 
ORA-08445 마스크 옵션의 SIGN 절에 구문 오류입니다. 
ORA-08446 마스크 옵션의 SYNCHRONIZED 절에 구문 오류입니다. 
ORA-08447 마스크 옵션의 USAGE 절에 구문 오류입니다. 
ORA-08448 DECIMAL-POINT 환경 절에 구문 오류 
ORA-08449 픽처 마스크에 부적당한 숫자 기호가 있습니다. 
ORA-08450 픽처 마스크의 CR 지정이 부적당합니다. 
ORA-08451 픽처 마스크의 DB 지정이 부적당합니다. 
ORA-08452 픽처 마스크의 E 명세가 지원되지 않습니다. 
ORA-08453 픽처 마스크에 하나 이상의 V 기호가 지정되었습니다. 
ORA-08454 픽처 마스크에 하나 이상의 S 기호가 지정되었습니다. 
ORA-08455 CURRENCY SIGN 환경 절에 구문 오류 
ORA-08456 픽처 마스크에는 부호가 없지만 마스크 옵션에 SIGN 절이 있습니다. 
ORA-08457 SIGN 절의 SEPARATE CHARACTER 옵션에 구문 오류입니다. 
ORA-08458 부적당한 포맷 파라미터 
ORA-08459 부적당한 포맷 파라미터 길이 
ORA-08460 환경 파라미터에 부적당한 환경 절 
ORA-08462 raw 버퍼에 부적당한 데이타가 있습니다. 
ORA-08463 십진수를 Oracle 수로 변환하는데 오버플로우가 발생했습니다. 
ORA-08464 입력 raw 데이타가 42 자리수 이상을 포함하고 있습니다. 
ORA-08465 입력 마스크는 32 문자보다 많이 포함하고 있습니다. 
ORA-08466 raw 버퍼 길이 %s는 %s에 대해 너무 짧습니다. 
ORA-08467 오라클 번호 %s로 변환하는데 오류가 있습니다. 
ORA-08468 마스크 옵션 %s는 지원되지 않습니다. 
ORA-08498 경고:픽처 마스크 %s는 옵션 USAGE IS %s를 무시하고 USAGE IS DISPLAY로 간주합니다. 
ORA-08499 경고: UTL_PG에 의해 픽처 마스크 옵션 %s가 무시되었습니다 
ORA-09700 sclin: 최대 대치수에 도달했습니다. 
ORA-09701 scnfy: 최대 프로세스수를 초과했습니다. 
ORA-09702 sem_acquire: 래치 세마포를 확보할 수 없습니다. 
ORA-09703 sem_release: 래치 세마포를 해제할 수 없습니다. 
ORA-09704 sstascre: 테스트와 세트 페이지의 생성시 ftok 오류 
ORA-09705 spcre: 래치 세마포를 초기화할 수 없습니다. 
ORA-09706 slsget: get_process_stats 오류 
ORA-09707 sfccf: ORACLE_SID의 최대길이를 초과했습니다. 
ORA-09708 soacon: 소켓을 포트로 바인드하는데 실패했습니다. 
ORA-09709 soacon: 연결을 받아들이는데 실패했습니다. 
ORA-09710 soarcv: 버퍼 오버플로우 
ORA-09711 orasrv: archmon이 이미 연결되었습니다. 
ORA-09712 orasrv: 로그 아카이버가 이미 연결되었습니다. 
ORA-09713 soadum: 테이프로 로그를 아카이브할 수 없습니다. 
ORA-09714 Two Task interface: puname을 획득할 수 없습니다. 
ORA-09715 orasrv: puname을 획득할 수 없습니다. 
ORA-09716 kslcll: 인-플럭스 램포트 래치를 고정할 수 없습니다. 
ORA-09717 osnsui: 사용자 인터럽트 처리기의 최대수를 초과했습니다. 
ORA-09718 osnsui: 사용자 인터럽트 처리기를 설정할 수 없습니다. 
ORA-09719 osncui: 잘못된 처리 
ORA-09740 slsget: 가상 메모리 영역 통계를 얻을 수 없습니다. 
ORA-09741 spwat: 포스트 대기시 오류발생 
ORA-09742 sppst: 포스트 하는동안 오류발생 
ORA-09743 smscre: 공유 메모리를 첨부할 수 없습니다. 
ORA-09744 smsget: mmap이 오류를 리턴했습니다. 
ORA-09745 smscre: vm_allocate오류, 공유 메모리를 생성할 수 없습니다. 
ORA-09746 smscre: 공유 메모리에 틀린 번지가 첨부되었습니다. 
ORA-09747 pw_detachPorts: pws_detach 서버콜이 실패했습니다. 
ORA-09748 pws_look_up: fork 실패 
ORA-09749 pws_look_up: 포트 찾기 실패 
ORA-09750 pw_attachPorts: port_rename 실패 
ORA-09751 pw_attachPorts: pws_attach 서버콜 실패 
ORA-09752 pw_attachPorts: port_allocate 실패 
ORA-09753 spwat: 유효하지 않은 프로세스 번호입니다. 
ORA-09754 sppst: 부당한 프로세스 번호가 sppst에 넘겨졌습니다. 
ORA-09755 osngpn: 포트 할당에 실패했습니다. 
ORA-09756 osnpns: 이름 서버에 포트가 없습니다. 
ORA-09757 osnipn: 포트 할당에 실패했습니다. 
ORA-09758 osnipn: 이름 서버에서 포트를 확인할 수 없습니다. 
ORA-09759 osnsbt: 잘못된 메시지를 수신했습니다. 
ORA-09760 osnpui: 브레이크 메시지를 송신할 수 없습니다. 
ORA-09761 pw_destroyPorts: pws_stop_instance 서버콜 실패 
ORA-09762 sNeXT_instanceName: 변환실패 
ORA-09763 osnmpx: 매치(Mach) 포트의 변경시 송신/수신 오류가 발생했습니다. 
ORA-09764 osnmop: 오라클 수행 모듈의 액세스 오류입니다. 
ORA-09765 osnmop: fork 실패 
ORA-09766 osnmop: 버퍼 할당 실패 
ORA-09767 osnmfs: msg_send로부터 잘못된 리턴코드를 받았습니다. 
ORA-09768 osnmgetmsg: 메시지를 읽을 수 없습니다. 
ORA-09769 osnmbr: 브레이크 메시지를 송신할 수 없습니다. 
ORA-09770 pws_look_up: 변환실패 
ORA-09771 osnmwrtbrkmsg: msg_send의 리턴코드가 잘못되었습니다. 
ORA-09772 osnpmetbrkmsg: 호스트로부터의 메시지가 잘못된 메시지 유형입니다. 
ORA-09773 osnmgetdatmsg: 호스트로부터의 메시지가 잘못된 메시지 유형입니다. 
ORA-09774 osnmui: 브레이크 메시지를 송신할 수 없습니다. 
ORA-09775 osnmrs: 프로토콜 재설정 오류 
ORA-09776 pws_look_up: 수행모듈(Oracle helper)의 액세스 오류 
ORA-09777 osnpbr: 브레이크 메시지를 보낼 수 없습니다. 
ORA-09778 snynfyport: notify 포트의 할당에 실패했습니다. 
ORA-09779 snyGetPort: 포트의 할당에 실패했습니다. 
ORA-09780 sfifi: 변환오류, 인스턴스명을 확장할 수 없습니다. 
ORA-09781 sfifi: 콘트롤 화일에 잘못된 인스턴스명이 저장되어 있습니다. 
ORA-09782 sfifi: 다른 인스턴스가 동일한 데이타베이스로 마운트되었습니다. 
ORA-09783 sfifi: 다른 인스턴스가 동일한 데이타베이스로 마운트되었는지 판단할 수 없습니다. 
ORA-09784 sfifi: lseek 오류, 화일의 시작위치를 찾을 수 없습니다. 
ORA-09785 sfifi: write 오류, 헤더블록을 기록할 수 없습니다. 
ORA-09786 sllfop: open 오류, 화일을 열 수 없습니다. 
ORA-09787 sllfop: 인식할 수 없는 처리 옵션, 잘못된 형식입니다. 
ORA-09788 sllfrb: 화일을 읽을 수 없습니다. 
ORA-09789 sllfsk: 화일을 읽을 수 없습니다. 
ORA-09790 sllfcf: 화일을 닫을 수 없습니다. 
ORA-09791 slembdf: 변환 오류, 오류 화일명을 변환할 수 없습니다. 
ORA-09792 sllfop: 읽기용의 버퍼를 할당할 수 없습니다. 
ORA-09793 szguns: 사용자명의 길이가 버퍼보다 큽니다. 
ORA-09794 szrbuild: 롤명의 길이가 버퍼보다 큽니다. 
ORA-09795 szrbuild: 롤 구조의 malloc에 실패했습니다. 
ORA-09796 szrbuild: 롤명의 malloc에 실패했습니다. 
ORA-09797 O/S MAC 권한의 확보에 실패했습니다. 
ORA-09798 레이블 비교에 실패했습니다. 
ORA-09799 화일 레이블의 조회에 실패했습니다. 
ORA-09800 프로세스 민감도 레이블 검색에 실패했습니다. 
ORA-09801 연결 상태로 부터 사용자 번호를 가지고 올 수 없습니다. 
ORA-09802 이진 레이블을 스트링으로 변환하는것데 실패했습니다. 
ORA-09803 스트링 버퍼의 할당에 실패. 
ORA-09804 이진수에서 ORACLE 로의 클래스 변환은 지원하지 않습니다. 
ORA-09805 카테고리 수에서 스트링으로의 변환은 지원하지 않습니다. 
ORA-09806 클래스 스트링 버퍼의 할당에 실패했습니다. 
ORA-09807 스트링에서 이진수로 레이블 변환이 실패했습니다. 
ORA-09808 사용자 허가를 얻을 수 없습니다. 
ORA-09809 연결 상태로부터 사용자 그룹 ID를 가지고 올 수 없습니다. 
ORA-09810 연결 상태로 부터 프로세스 ID를 가지고 올 수 없습니다. 
ORA-09811 패키지를 초기화할 수 없습니다. 
ORA-09812 연결 상태로부터 사용자 해제 정보를 가져올 수 없습니다. 
ORA-09813 디렉토리 상태를 가지고 올 수 없습니다. 
ORA-09814 화일 이름을 확장할 수 없습니다. 
ORA-09815 화일 이름 버퍼 오버플로우 
ORA-09816 유효한 권한을 지정할 수 없습니다. 
ORA-09817 감사 화일에다 기록하는것이 실패했습니다. 
ORA-09818 수치가 너무 큽니다. 
ORA-09819 수치가 적법한 최대치를 초과합니다. 
ORA-09820 클래스 스트링에서 수치표현으로의 변환에 실패했습니다. 
ORA-09821 범주 스트링의 해석에 실패했습니다. 
ORA-09822 감사 화일 이름을 변역하는데 실패했습니다. 
ORA-09823 디바이스명이 너무 깁니다. 
ORA-09824 allowmacaccess 권한을 가용화할 수 없습니다. 
ORA-09825 allowmacaccess 권한을 사용불가하게 할 수 없습니다. 
ORA-09826 SCLIN: atomic 래치를 초기화할 수 없습니다. 
ORA-09827 SCLGT: atomic 래치가 불명의 오류를 리턴했습니다. 
ORA-09828 SCLFR: atomic 래치가 오류를 리턴했습니다. 
ORA-09829 pw_createPorts: pws_start_instance 서버 콜이 실패했습니다. 
ORA-09830 snyAddPort: 원격 프로시저 호출의 수행 실패. 
ORA-09831 snyStartThread: 서버 포트 설정 실패. 
ORA-09832 infoCallback: 잘못된 메시지 유형. 
ORA-09833 addCallback: 잘못된 메시지 유형. 
ORA-09834 snyGetPortSet: 포트에 대한 정보를 모을 수 없습니다. 
ORA-09835 addCallback: callback 포트가 이미 세트내에 있습니다. 
ORA-09836 addCallback: callback 세트에 포트를 추가할 수 없습니다. 
ORA-09837 addCallback: callback 링크의 할당을 추가할 수 없습니다. 
ORA-09838 removeCallback: callback 포트의 제거에 실패했습니다. 
ORA-09839 removeCallback: callback 포트가 콜백 세트내에 없습니다. 
ORA-09840 soacon: 이름 변환 실패 
ORA-09841 soacon: 이름 변환 실패 
ORA-09842 soacon: Archmon이 named 파이프를 생성할 수 없습니다. 
ORA-09843 soacon: Archmon이 named 파이프를 생성할 수 없습니다. 
ORA-09844 soacon: Archmon이 named 파이프를 열 수 없습니다. 
ORA-09845 soacon: Archmon이 named 파이프를 열 수 없습니다. 
ORA-09846 soacon: ARCH이 named 파이프를 열 수 없습니다. 
ORA-09847 soacon: ARCH이 named 파이프를 열 수 없습니다. 
ORA-09848 soawrt: named 파이프에 기록할 수 없습니다. 
ORA-09849 soarcv: named 파이프에서 읽을 수 없습니다. 
ORA-09850 soacon: Archmon이 named 파이프를 잠금할 수 없습니다. 
ORA-09851 soacon: Archmon이 named 파이프를 잠금할 수 없습니다. 
ORA-09852 sfgcwd: 현 디렉토리의 이름을 얻을 수 없습니다. 
ORA-09853 snyRemovePort: 요구로부터 잘못된 리턴코드가 발생했습니다. 
ORA-09854 snyPortInfo: 요구로부터 잘못된 리턴코드가 발생했습니다. 
ORA-09855 removeCallback: 잘못된 메시지 형식 
ORA-09856 smpalo: pga 할당중 vm_allocate 오류 
ORA-09857 smprset: pga 프로텍트중 vm_protect 오류 
ORA-09870 spini: 최대 개방 화일수의 초기화에 실패했습니다. 
ORA-09871 TASDEF_NAME: ?/dbs/tasdef@.dbf의 확장시 변환오류 발생 
ORA-09872 TASDEF_CREATE: ?/dbs/tasdef@.dbf의 생성시 실패 
ORA-09873 TASDEF_OPEN: tasdef@.dbf 화일의 열기 오류 
ORA-09874 TASDEF_READ: tasdef@.dbf 화일을 읽을 수 없습니다. 
ORA-09875 TASDEF_WRITE: ?/dbs/tasdef@.dbf 화일의 기록오류 
ORA-09876 TASDEF_CLOSE: ?/dbs/tasdef@.dbf 화일을 닫을 수 없습니다. 
ORA-09877 sstascre: shmget 오류, 공유메모리 세그먼트를 얻을 수 없습니다. 
ORA-09878 sstascre/sstasat: shmat오류, tas 기록 페이지를 첨부할 수 없습니다. 
ORA-09879 sstascre/sstasat: shmat오류, tas 읽기 페이지를 첨부할 수 없습니다. 
ORA-09880 sstasfre/sstasdel: shmat오류, tas 기록 페이지를 분리할 수 없습니다. 
ORA-09881 sstasfre/sstasdel: shmat오류, tas 읽기 페이지를 분리할 수 없습니다. 
ORA-09882 sstasfre/sstasdel: shmat오류, tas shm 페이지를 분리할 수 없습니다. 
ORA-09883 Two Task interface: /etc/oratab이 존재하지 않습니다. 
ORA-09884 Two Task interface: SID가 현재 PU와 일치하지 않습니다. 
ORA-09885 osnTXtt: TXIPC 채널을 생성할 수 없습니다. 
ORA-09886 osnTXtt: txipc@.trc를 확장하는데 변환오류가 발생했습니다. 
ORA-09887 osnTXtt: 디버그 채널의 생성/열기에 실패했습니다. 
ORA-09888 osnTXtt: txipc 채널의 생성 실패 
ORA-09889 osnTXtt: 오라클 수행모듈의 액세스 오류 
ORA-09890 osnTXtt: malloc실패 
ORA-09894 sfwrt: 비동기 기록을 초기화할 수 없습니다. 
ORA-09895 sfaswr: 함수가 잘못된 인수로 요구되었습니다. 
ORA-09896 sfaswr: 유효하지 않은 블록번호 
ORA-09897 sfaswr: 기록오류, 데이타베이스 블록을 기록할 수 없습니다. 
ORA-09898 sfalck: setitimer오류, 인터벌 타이머를 지정할 수 없습니다. 
ORA-09899 sfapol: 쓰기오류, 비동기 기록을 폴할 수 없습니다. 
ORA-09900 sfapol: 쓰기오류, 비동기 기록을 폴할 수 없습니다. 
ORA-09901 sfapol: 쓰기오류, 데이타베이스 블록을 기록할 수 없습니다. 
ORA-09902 sfapol: 틀린 바이트 수로 쓰기에 리턴됐습니다. 
ORA-09903 sfwrt: 내부 오류 
ORA-09904 sfotf: 임시화일 디렉토리명이 너무 깁니다. 
ORA-09905 sfotf: mktemp() 실패 
ORA-09906 sfotf: 임시 정열 화일을 여는데 실패 
ORA-09907 sfotf: 임시 정열 화일을 링크해제 하는데 실패 
ORA-09908 spwat: gethostname이 오류를 리턴했습니다. 
ORA-09909 스크래치 버퍼를 malloc하는데 실패했습니다. 
ORA-09910 사용자에 대한 ORACLE의 암호 화일 엔트리를 찾을 수 없습니다. 
ORA-09911 사용자 암호가 틀립니다. 
ORA-09912 이름버퍼를 malloc 하는데 실패했습니다. 
ORA-09913 더미이름을 malloc 하는데 실패했습니다. 
ORA-09914 ORACLE 암호 화일을 열 수 없습니다. 
ORA-09915 암호의 암호화에 실패했습니다. 
ORA-09916 요구된 암호가 지정되지 않았습니다. 
ORA-09917 시스템 그룹화일에 DBA 그룹이 존재하지 않습니다. 
ORA-09918 SQL*Net으로부터 사용자 권한을 얻을 수 없습니다. 
ORA-09919 전용 서버의 레이블을 지정할 수 없습니다. 
ORA-09920 연결 상태에서 민감도 레이블을 얻을 수 없습니다. 
ORA-09921 연결 상태에서 정보 레이블을 얻을 수 없습니다. 
ORA-09922 프로세스를 띄울 수 없음 - 백그라운드 로그 디렉토리가 적절히 생성되지 않았습니다. 
ORA-09923 프로세스를 띄울 수 없음 - 사용자 로그 디렉토리가 적절히 생성되지 않았습니다. 
ORA-09924 프로세스를 띄울 수 없음 - 코아 덤프 디렉토리가 적절히 생성되지 않았습니다. 
ORA-09925 감사 추적 화일을 생성할 수 없습니다. 
ORA-09926 서버의 유효한 권한 세트를 설정할 수 없습니다. 
ORA-09927 서버의 레이블을 지정할 수 없습니다. 
ORA-09928 서버의 레이블을 복원할 수 없습니다. 
ORA-09929 2개 레이블의 GLB는 허용되지 않습니다. 
ORA-09930 2개 레이블의 LUB는 허용되지 않습니다. 
ORA-09931 ORACLE 암호 화일을 읽기용으로 열 수 없습니다. 
ORA-09932 ORACLE 암호 화일을 닫는데 실패했습니다. 
ORA-09933 구 암호 화일의 삭제에 실패했습니다. 
ORA-09934 현재 암호 화일을 구 암호 화일로 링크하는데 실패했습니다. 
ORA-09935 현재 암호 화일을 링크해제하는데 실패했습니다. 
ORA-09936 ORACLE 암호 화일을 쓰기용으로 여는데 실패했습니다. 
ORA-09937 ORACLE 암호 화일의 모드를 바꾸는데(chmod) 실패했습니다. 
ORA-09938 신호 처리기를 저장하는데 실패했습니다. 
ORA-09939 신호 처리기를 재 저장하는데 실패했습니다. 
ORA-09940 ORACLE 암호 화일 헤더가 손상되었습니다. 
ORA-09941 화일보다 orapasswd 또는 installer가 더 오래된 버전입니다. 
ORA-09942 ORACLE 암호 화일 헤더의 기록에 실패했습니다. 
ORA-09943 암호 리스트 요소를 위한 메모리 할당에 실패했습니다. 
ORA-09944 암호 항목이 손상되었습니다. 
ORA-09945 감사 추적 화일을 초기화할 수 없습니다. 
ORA-09946 버퍼에 비해 화일 이름이 너무 깁니다. 
ORA-09947 연결 속성 구조에 메모리를 할당 할 수 없습니다. 
ORA-09948 프로세스 정보 레이블 조회에 실패했습니다. 
ORA-09949 클라이언트 운영 시스템 권한을 얻을 수 없습니다. 
ORA-09950 서버 운영 시스템 권한을 얻을 수 없습니다. 
ORA-09951 화일을 생성할 수 없습니다. 
ORA-09952 scgcmn: lk_open_convert의 예상치 못한 리턴: 열기 실패 
ORA-09953 scggc: 잠금 변환중의 예상치 못한 리턴 
ORA-09954 scgcc: 잠금 닫기 콜백에 대한 예기치 않은 리턴 상태 
ORA-09955 scgcan: 잠금 취소시의 예기치 않은 리턴 상태 
ORA-09956 scgcm: 예기치 않은 잠금 상태 조건 
ORA-09957 IMON에게 종료 요구을 보낼 수 없습니다. 
ORA-09958 IMON: 같은 ORACLE pid를 가진 두개의 프로세스가 활동합니다. 
ORA-09959 IMON: 프로세스 삭제에 실패했습니다. 
ORA-09960 종료 신호를 위한 신호 처리기를 설치할 수 없습니다. 
ORA-09961 종료 신호 처리기를 재저장할 수 없습니다. 
ORA-09962 scggrc에 lk_group_create 오류가 있습니다. 
ORA-09963 scggra에 lk_group_attach 오류가 있습니다. 
ORA-09964 scggrd에 lk_group_detach 오류가 있습니다. 
ORA-09965 sfsfs: 부적당한 화일 크기 
ORA-09966 sfsfs: 읽기/쓰기 모드로 화일을 열 수 없습니다. 
ORA-09967 sfsfs: 화일을 더 크게 할 수 없습니다. 
ORA-09968 sfsfs: 화일의 시작을 찾을 수 없습니다. 
ORA-09969 sfsfs, sfrfs: malloc 오류, 버퍼를 할당할 수 없습니다. 
ORA-09970 sfsfs: 읽기 오류, 헤더 블록을 읽을 수 없습니다. 
ORA-09971 sfsfs: 쓰기 오류, 헤더 블록에 쓸 수 없습니다. 
ORA-09972 sfsfs: 화일을 더 작게 할 수 없습니다. 
ORA-09973 sfsfs: 닫기 오류 
ORA-09974 skxfidini: SDI 채널을 초기화 하는데 오류 
ORA-09975 kxfspini: SDI 프로세스를 초기화 하는데 오류 
ORA-09976 skxfqdini: 포트를 만드는데 오류 
ORA-09977 skxfqhini: 연결 오류 
ORA-09978 skxfqhdel: 다른 끝점에서 연결분리시 오류 
ORA-09979 skxfqhsnd: 다른 끝점으로 메시지를 송신하는데 오류 
ORA-09980 skxfqdrcv: 다른 끝점으로 메시지를 수신하는데 오류 
ORA-09981 skxfqdreg: SDI 버퍼 폴에 페이지를 추가하는데 오류 
ORA-09982 skxfqddrg: SDI 버퍼 폴로 부터 페이지를 삭제하는데 오류 
ORA-09983 skxfidsht: SDI 채널을 기동 종료하는데 오류 
ORA-09984 SGA 화일 $ORACLE_HOME/dbs/sgadef$ORACLE_SID.dbf가 존재하지 않습니다. 
ORA-09985 SGA 정의 화일을 읽을 수 없습니다. 
ORA-09986 SGA 정의 화일로 부터 잘못된 바이트의 수가 읽혔습니다. 
ORA-09987 READ-ONLY 모드에서 SGA로 첨부할 수 없습니다. 
ORA-09988 SGA을 분리하는데 오류 
ORA-09989 부적당한 skgmsdef 구조 포인터를 사용할려고 시도합니다. 
ORA-10000 control file debug event, name control_file 
ORA-10001 control file crash event1 
ORA-10002 control file crash event2 
ORA-10003 control file crash event3 
ORA-10004 control file crash event4 
ORA-10005 trace latch operations for debugging 
ORA-10006 testing - block recovery forced 
ORA-10007 log switch debug crash after new log select, thread %s 
ORA-10008 log switch debug crash after new log header write, thread %s 
ORA-10009 log switch debug crash after old log header write, thread %s 
ORA-10010 Begin Transaction 
ORA-10011 End Transaction 
ORA-10012 Abort Transaction 
ORA-10013 Instance Recovery 
ORA-10014 Roll Back to Save Point 
ORA-10015 Undo Segment Recovery 
ORA-10016 Undo Segment extend 
ORA-10017 Undo Segment Wrap 
ORA-10018 Data Segment Create 
ORA-10019 Data Segment Recovery 
ORA-10020 partial link restored to linked list (KSG) 
ORA-10021 latch cleanup for state objects (KSS) 
ORA-10022 trace ktsgsp 
ORA-10023 Create Save Undo Segment 
ORA-10024 Write to Save Undo 
ORA-10025 Extend Save Undo Segment 
ORA-10026 Apply Save Undo 
ORA-10027 latch cleanup for enqueue locks (KSQ) 
ORA-10028 latch cleanup for enqueue resources (KSQ) 
ORA-10029 session logon (KSU) 
ORA-10030 session logoff (KSU) 
ORA-10031 row source debug event (R*) 
ORA-10032 sort end (SOR*) 
ORA-10033 sort run (SRD*/SRS*) 
ORA-10035 parse SQL statement (OPIPRS) 
ORA-10036 create remote row source (QKANET) 
ORA-10037 allocate remote row source (QKARWS) 
ORA-10038 dump row source tree (QBADRV) 
ORA-10039 type checking (OPITCA) 
ORA-10040 dirty cache list 
ORA-10041 dump undo records skipped 
ORA-10042 trap error during undo application 
ORA-10043 check consistency of owner/waiter/converter lists in KSQ 
ORA-10044 free list undo operations 
ORA-10045 free list update operations - ktsrsp, ktsunl 
ORA-10046 enable SQL statement timing 
ORA-10047 trace switching of sessions 
ORA-10048 Undo segment shrink 
ORA-10049 protect library cache memory heaps 
ORA-10050 sniper trace 
ORA-10051 trace OPI calls 
ORA-10052 dont clean up obj$ 
ORA-10053 CBO Enable optimizer trace 
ORA-10054 trace UNDO handling in MLS 
ORA-10055 trace UNDO handing 
ORA-10056 dump analyze stats (kdg) 
ORA-10057 suppress file names in error messages 
ORA-10058 use table scan cost in tab$.spare1 
ORA-10059 simulate error in logfile create/clear 
ORA-10060 CBO Enable predicate dump 
ORA-10061 disable SMON from cleaning temp segment 
ORA-10062 disable usage of OS Roles in osds 
ORA-10063 disable usage of DBA and OPER privileges in osds 
ORA-10064 thread enable debug crash level %s, thread %s 
ORA-10065 limit library cache dump information for state object dump 
ORA-10066 simulate failure to verify file 
ORA-10067 force redo log checksum errors - block number 
ORA-10068 force redo log checksum errors - file number 
ORA-10069 Trusted Oracle 테스트 이벤트 
ORA-10070 force datafile checksum errors - block number 
ORA-10071 force datafile checksum errors - file number 
ORA-10072 protect latch recovery memory 
ORA-10073 have PMON dump info before latch cleanup 
ORA-10074 default trace function mask for kst 
ORA-10075 CBO Disable outer-join to regular join conversion 
ORA-10076 CBO Enable cartesian product join costing 
ORA-10077 CBO Disable view-merging optimization for outer-joins 
ORA-10078 CBO Disable constant predicate elimination optimization 
ORA-10079 SQL*Net을 거쳐 송신/수신된 데이터를 트래스합니다. 
ORA-10080 dump a block on a segment list which cannot be exchanged 
ORA-10081 segment High Water Mark has been advanced 
ORA-10082 free list head block is the same as the last block 
ORA-10083 a brand new block has been requested from space management 
ORA-10084 free list becomes empty 
ORA-10085 free lists have been merged 
ORA-10086 oby 소트에서 kko와 qka가 다르면 사용가능한 CBO에 오류가 생깁니다. 
ORA-10087 손상한 데이터 블록 매체를 회복할 수 없습니다. 
ORA-10088 CBO Disable new NOT IN optimization 
ORA-10089 CBO Disable index sorting 
ORA-10090 복구가 충돌하기 전에 다른 이벤트를 부릅니다. 
ORA-10091 CBO Disable constant predicate merging 
ORA-10092 CBO Disable hash join 
ORA-10093 CBO Enable force hash joins 
ORA-10094 before resizing a data file 
ORA-10095 dump debugger commands to trace file 
ORA-10096 after the cross instance call when resizing a data file 
ORA-10097 after generating redo when resizing a data file 
ORA-10098 데이터 화일의 크기를 OS가 증가시킨 후에 
ORA-10099 새로운 화일 크기로 화일 헤더가 수정 후에 
ORA-10100 데이터 화일의 크기를 OS가 축소 후에 
ORA-10101 atomic redo write recovery 
ORA-10102 anti-joins을 스위치 오프합니다. 
ORA-10103 CBO가 해쉬 결합 교체를 사용불가합니다. 
ORA-10104 해쉬 결합 통계를 덤프한 것을 트래스 화일로 보냅니다. 
ORA-10105 CBO가 일정한 pred trans와 MPs w WHERE-절을 사용가능하게 합니다. 
ORA-10106 CBO가 NOT IN에 대한 나중에 서술한 상호관계을 구하는것을 사용할 수 없습니다. 
ORA-10107 CBO은 항상 비트맵 색인을 사용합니다. 
ORA-10108 CBO은 비트맵 색인을 사용하지 않습니다. 
ORA-10109 CBO가 부정 술어를 옮기는데 사용불가합니다. 
ORA-10110 CBO가 색인 행ID 범위 스캔을 시도합니다. 
ORA-10111 비트맵 색인 생성 스위치입니다. 
ORA-10112 비트맵 색인 생성 스위치입니다. 
ORA-10113 비트맵 색인 생성 스위치입니다. 
ORA-10114 비트맵 색인 생성 스위치입니다. 
ORA-10115 CBO 비트맵 최적화는 최고 표현을 사용했습니다. 
ORA-10116 CBO 비트맵 최적화 스위치입니다. 
ORA-10117 CBO가 새로운 병렬 비용 모형을 사용불가합니다 
ORA-10118 CBO가 해쉬 결합 비용을 사용가능하게 합니다 
ORA-10145 네트워크 오류를 감사하는 것을 테스트 
ORA-10146 오라클 TRACE 수집을 사용가능하게 합니다. 
ORA-10200 block cleanout 
ORA-10201 consistent read undo application 
ORA-10202 consistent read block header 
ORA-10203 consistent read buffer status 
ORA-10204 signal recursive extend 
ORA-10205 row cache debugging 
ORA-10206 transaction table consistent read 
ORA-10207 consistent read transactions status report 
ORA-10208 consistent read loop check 
ORA-10209 enable simulated error on control file 
ORA-10210 check data block integrity 
ORA-10211 check index block integrity 
ORA-10212 check cluster integrity 
ORA-10213 crash after control file write 
ORA-10214 simulate write errors on control file 
ORA-10215 simulate read errors on control file 
ORA-10216 dump control file header 
ORA-10217 debug sequence numbers 
ORA-10218 dump uba of applied undo 
ORA-10219 monitor multi-pass row locking 
ORA-10220 show updates to the transaction table 
ORA-10221 show changes done with undo 
ORA-10222 row cache 
ORA-10223 transaction layer - turn on verification codes 
ORA-10224 index block split/delete trace 
ORA-10225 free/used extent row cache 
ORA-10226 trace CR applications of undo for data operations 
ORA-10227 verify (multi-piece) row structure 
ORA-10228 trace application of redo by kcocbk 
ORA-10229 simulate I/O error against datafiles 
ORA-10230 check redo generation by copying before applying 
ORA-10231 skip corrupted blocks on _table_scans_ 
ORA-10232 dump corrupted blocks symbolically when kcbgotten 
ORA-10233 색인 작업에서 손상된 블록을 건너 뜁니다. 
ORA-10234 trigger event after calling kcrapc to do redo N times 
ORA-10235 check memory manager internal structures 
ORA-10236 library cache manager 
ORA-10237 simulate ^C (for testing purposes) 
ORA-10238 instantiation manager 
ORA-10239 multi-instance library cache manager 
ORA-10240 dump dba^s of blocks that we wait for 
ORA-10241 dump SQL generated for remote execution (OPIX) 
ORA-10242 suppress OER 2063 (for testing distrib w/o different error log) 
ORA-10243 simulated error for test %s of K2GTAB latch cleanup 
ORA-10244 make tranids in error msgs print as 0.0.0 (for testing) 
ORA-10245 simulate lock conflict error for testing PMON 
ORA-10246 print trace of PMON actions to trace file 
ORA-10247 Turn on scgcmn tracing. (VMS ONLY) 
ORA-10248 turn on tracing for dispatchers 
ORA-10249 turn on tracing for multi-stated servers 
ORA-10250 Trace all allocate and free calls to the topmost SGA heap 
ORA-10251 check consistency of transaction table and undo block 
ORA-10252 simulate write error to data file header 
ORA-10253 simulate write error to redo log 
ORA-10254 trace cross-instance calls 
ORA-10255 pl/sql parse checking 
ORA-10256 turn off multi-threaded server load balancing 
ORA-10257 trace multi-threaded server load balancing 
ORA-10258 force shared servers to be chosen round-robin 
ORA-10259 get error message text from remote using explicit call 
ORA-10260 Trace calls to SMPRSET (VMS ONLY) 
ORA-10261 Limit the size of the PGA heap 
ORA-10262 Don^t check for memory leaks 
ORA-10263 Don^t free empty PGA heap extents 
ORA-10264 Collect statistics on context area usage (x$ksmcx) 
ORA-10265 Keep random system generated output out of error messages 
ORA-10266 Trace OSD stack usage 
ORA-10267 Inhibit KSEDMP for testing 
ORA-10268 Don do forward coalesce when deleting extents 
ORA-10269 Don do coalesces of free space in SMON 
ORA-10270 Debug shared cursors 
ORA-10271 distributed transaction after COLLECT 
ORA-10272 distributed transaction before PREPARE 
ORA-10273 distributed transaction after PREPARE 
ORA-10274 distributed transaction before COMMIT 
ORA-10275 distributed transaction after COMMIT 
ORA-10276 distributed transaction before FORGET 
ORA-10277 이벤트가 커서를 공유하는지(안하는지)에 관련이 있습니다 (테스트에 사용되었습니다) 
ORA-10281 maximum time to wait for process creation 
ORA-10282 Inhibit signalling of other backgrounds when one dies 
ORA-10286 Simulate control file open error 
ORA-10287 Simulate archiver error 
ORA-10288 Do not check block type in ktrget 
ORA-10289 Do block dumps to trace file in hex rather than fromatted 
ORA-10290 kdnchk - checkvalid event - not for general purpose use. 
ORA-10291 die in dtsdrv to test controlfile undo 
ORA-10292 dump uet entries on a 1561 from dtsdrv 
ORA-10293 dump debugging information when doing block recovery 
ORA-10294 사용가능한 PERSISTENT DLM 작업이 non-compliant 시스템에 있습니다. 
ORA-10300 disable undo compatibility check at database open 
ORA-10301 Enable LCK timeout table consistency check 
ORA-10320 Enable data layer (kdtgrs) tracing of space management calls 
ORA-10352 직접 패스 통계를 보고합니다. 
ORA-10353 슬롯의 수 
ORA-10354 병렬 질의를 위해 직접 읽기 패스를 사용가능하게 합니다. 
ORA-10355 스캔을 위해 직접 읽기 패스를 사용가능하게 합니다. 
ORA-10356 직접 읽기를 위해 힌트 사용법을 사용가능하게 합니다. 
ORA-10357 직접 패스를 위해 디버그 정보를 사용가능하게 합니다. 
ORA-10374 병렬 질의 서버가 인터럽트 (잠금 값을 확인합니다) 
ORA-10375 감아 올린 통계를 위해 검색을 사용가능하게 합니다. 
ORA-10376 큐 통계 테이블을 사용가능하게 합니다. 
ORA-10377 turn off load balancing 
ORA-10378 force hard process/range affinity 
ORA-10379 direct read for rowid range scans (unimplemented) 
ORA-10380 kxfp latch cleanup testing event 
ORA-10381 kxfp latch cleanup testing event 
ORA-10382 parallel query server interrupt (reset) 
ORA-10383 auto parallelization testing event 
ORA-10384 parallel dataflow scheduler tracing 
ORA-10385 parallel table scan range sampling method 
ORA-10386 parallel SQL hash and range statistics 
ORA-10387 parallel query server interrupt (normal) 
ORA-10388 parallel query server interrupt (failure) 
ORA-10389 parallel query server interrupt (cleanup) 
ORA-10390 Trace parallel query slave execution 
ORA-10391 trace rowid range partitioning 
ORA-10392 parallel query debugging bits 
ORA-10393 print parallel query statistics 
ORA-10394 allow parallelization of small tables 
ORA-10395 adjust sample size for range table queues 
ORA-10396 circumvent range table queues for queries 
ORA-10397 suppress verbose parallel coordinator error reporting 
ORA-10398 enable timeouts in parallel query threads 
ORA-10399 use different internal maximum buffer size 
ORA-10400 turn on system state dumps for shutdown debugging 
ORA-10500 turn on traces for SMON 
ORA-10510 turn off SMON check to offline pending offline rollback segment 
ORA-10511 turn off SMON check to cleanup undo dictionary 
ORA-10512 turn off SMON check to shrink rollback segments 
ORA-10550 signal error during create as select/create index after n rows 
ORA-10600 check cursor frame allocation 
ORA-10602 cause an access violation (for testing purposes) 
ORA-10603 cause an error to occur during truncate (for testing purposes) 
ORA-10604 trace parallel create index 
ORA-10605 enable parallel create index by default 
ORA-10606 trace parallel create index 
ORA-10607 색인 행ID 파티션 스캔을 트래스 합니다. 
ORA-10608 트래스가 비트맵 색인을 만듭니다. 
ORA-10610 트래스가 색인 pseudo 최적화를 만듭니다. 
ORA-10666 Do not get database enqueue name 
ORA-10667 Cause sppst to check for valid process ids 
ORA-10690 Set shadow process core file dump type (Unix only) 
ORA-10691 Set background process core file type (Unix only) 
ORA-10700 Alter access violation exception handler 
ORA-10701 Dump direct loader index keys 
ORA-10702 Enable histogram data generation 
ORA-10703 Simulate process death during enqueue get 
ORA-10704 Print out information about what enqueues are being obtained 
ORA-10705 Print Out Tracing information for every I/O done by ODSs 
ORA-10706 인스턴스 잠금 조작에 관한 정보를 프린트합니다. 
ORA-10707 인스턴스 등록을 위한 모의 프로세스를 죽입니다. 
ORA-10708 skxf 다중 인스턴스 명령어에 대한 트래스 정보를 프린트 합니다. 
ORA-10709 디폴트로 색인을 작성한 것에 병렬 인스턴스를 사용가능하게 합니다. 
ORA-10710 비트맵 색인 액세스를 트래스 
ORA-10711 비트맵 색인 액세스를 트래스 
ORA-10712 비트맵 색인 액세스를 트래스 
ORA-10713 비트맵 색인 액세스를 트래스 
ORA-10714 비트맵 색인 마이너스를 트래스 
ORA-10715 행ID로 비트맵 색인을 변환하는것을 트래스 
ORA-10716 비트맵 색인 압축/압축제거를 트래스 
ORA-10800 disable Smart Disk scan 
ORA-10801 enable Smart Disk trace 
ORA-10802 reserved for Smart Disk 
ORA-10803 write timing statistics on OPS recovery scan 
ORA-10804 ksxb을 위해 비축해 놓은 것입니다. 
ORA-10805 행 소스 정렬을 위해 비축해 놓은 것입니다. 
ORA-10900 관리자 범위는 삽입 이벤트 번호 %s에 결점이 있습니다. 
ORA-10924 들어오기 저장을 구문분석 할때 이벤트 무시에 오류가 있습니다. 
ORA-10925 이름 켄텍스트를 끊임없이 트래스합니다. 
ORA-10926 이름 켄텍스트를 끊임없이 트래스합니다. 
ORA-10927 이름 켄텍스트를 끊임없이 트래스합니다. 
ORA-10928 이름 켄텍스트를 끊임없이 트래스합니다. 
ORA-10999 do not get database enqueue name 
ORA-12000 스냅샷 로그가 테이블 %s에 이미 존재합니다. 
ORA-12001 로그를 생성할 수 없습니다 테이블 %s가 이미 트리거를 갖고 있습니다. 
ORA-12002 table %s에 스냅샷 로그가 없습니다. 
ORA-12003 스냅샷 %s가 존재하지 않습니다. 
ORA-12004 REFRESH FAST가 사용될 수 없습니다. 
ORA-12005 자동 refresh를 과거 시간에 대하여 행할 수 없습니다. 
ORA-12006 같은 사용자 이름을 갖는 스냅샷이 이미 존재합니다. 
ORA-12007 스냅샷 재 사용 파라미터들이 일치하지 않습니다. 
ORA-12008 스냅샷 refresh 패스에 오류가 있습니다. 
ORA-12009 스냅샷들은 긴 열들을 포함하지 않습니다. 
ORA-12010 SYS 소유의 테이블에 대해서는 스냅샷 로그를 만들수 없습니다. 
ORA-12011 작업 %s의 실행에 실패 
ORA-12012 작업 %s의 자동 실행중 오류 발생 
ORA-12013 갱신 가능한 스냅샷을 충분히 빨리 재그리기를 할 수 있게 간단해야 합니다. 
ORA-12150 TNS:데이타베이스를 보낼 수 없습니다. 
ORA-12151 TNS:네트워크 층으로부터 받은 패킷 유형이 틀립니다. 
ORA-12152 TNS:break 메시지를 보낼 수 없습니다. 
ORA-12153 TNS:연결되지 않았습니다. 
ORA-12154 TNS:서비스명를 해석할 수 없습니다. 
ORA-12155 TNS:NSWMARKER 패킷에 틀린 데이타형을 받았습니다. 
ORA-12156 TNS:잘못된 상태로 부터 줄을 재 설정하기 위해 시도 했습니다. 
ORA-12157 TNS:내부 네트워크 통신 오류 
ORA-12158 TNS:파라미터 부시스템을 초기화할 수 없습니다. 
ORA-12159 TNS:추적 화일은 쓸수 없습니다. 
ORA-12160 TNS:내부오류: 잘못된 오류번호 
ORA-12161 TNS:내부오류: 부분적인 데이타를 받았습니다. 
ORA-12162 TNS:서비스명이 잘못 지정되었습니다. 
ORA-12163 TNS:연결 기술어가 너무 깁니다. 
ORA-12196 TNS:TNS로 부터 오류를 받았습니다. 
ORA-12197 TNS:키워드-값을 분석하는데 오류가 생겼습니다. 
ORA-12198 TNS:수신으로의 패스를 찾을 수 없습니다. 
ORA-12200 TNS:메모리를 할당할 수 없습니다. 
ORA-12201 TNS:연결 버퍼가 너무 작습니다. 
ORA-12202 TNS:내부 네비게이션 오류 
ORA-12203 TNS:수신에 연결할 수 없습니다. 
ORA-12204 TNS:어플리케이션으로 부터 거절된 데이타를 받았습니다. 
ORA-12205 TNS:실패한 주소를 받을 수 없습니다. 
ORA-12206 TNS:TNS 오류를 받았습니다. 
ORA-12207 TNS:네비게이션을 계속할 수 없습니다. 
ORA-12208 TNS:TNSNAV.ORA 화일을 발견할 수 없습니다. 
ORA-12209 TNS:초기화 되지않은 글로벌 변수 입니다. 
ORA-12210 TNS:네비게이터 데이타를 찾을때 오류가 발생합니다. 
ORA-12211 TNS:TNSNAV.ORA에 PREFERRED_CMANAGERS 엔트리가 필요함 
ORA-12212 TNS:TNSNAV.ORA에 PREFERRED_CMANAGER 바인딩이 불완전합니다. 
ORA-12213 TNS:TNSNAV.ORA에 PREFERRED_CMANAGERS 바인딩이 불완전 합니다. 
ORA-12214 TNS:TNSNAV.ORA에 LOCAL_COMMUNITIES 엔트리가 빠졌습니다. 
ORA-12215 TNS:TNSNAV.ORA에 있는 PREFERRED_NAVIGATORS 주소가 잘못되었습니다. 
ORA-12216 TNS:TNSNAV.ORA에 있는 PREFERRED_CMANAGER 주소가 잘못되었습니다. 
ORA-12217 TNS:TNSNAV.ORA내에 PREFERRED_CMANAGERS를 접촉할 수 없습니다. 
ORA-12218 TNS:받아드리지 않는 네트워크 구성 데이타 
ORA-12219 TNS:ADDRESS_LIST에서 공유명이 주소에서 빠졌습니다. 
ORA-12221 TNS:부적합한 ADDRESS 파라미터 
ORA-12222 TNS:그런 포로토콜 어댑터가 없습니다. 
ORA-12223 TNS:내부 한계 한정이 초과 
ORA-12224 TNS:리스너가 없음 
ORA-12225 TNS:수신 호스트에 도달할 수 없습니다. 
ORA-12226 TNS:운영 시스템 자원 할당이 초과되었습니다. 
ORA-12227 TNS:구문 오류 
ORA-12228 TNS:포로토콜 어댑터가 로드될 수 없습니다. 
ORA-12229 TNS:Interchange는 더이상 여유있은 연결을 가지고 있지 않습니다. 
ORA-12230 TNS:이 연결을 만드는데 Sever Network 오류가 발생했습니다. 
ORA-12315 ALTER DATABASE 문장을 위한 데이타베이스 링크형이 부적합합니다. 
ORA-12316 데이타베이스 링크의 연결 스트링에 구문오류가 있습니다. 
ORA-12317 데이타베이스(링크명 %s)로의 로그온이 거절되었습니다. 
ORA-12318 데이타베이스(링크명 %s)가 이미 마운트되었습니다. 
ORA-12319 데이타베이스(링크명 %s)가 이미 개방되었습니다. 
ORA-12321 데이타베이스(링크명 %s)가 열지 않았으며 AUTO_MOUNTING=FALSE입니다. 
ORA-12322 데이타베이스(링크명 %s)를 마운트할 수 없습니다. 
ORA-12323 데이타베이스(링크명 %s)를 열 수 없습니다. 
ORA-12324 ROM을 사용할 수 없습니다: 사적소유의 데이타베이스 링크형이기 때문에 입니다. 
ORA-12326 데이타베이스 %s가 즉시 닫기를 수행 중: 어떤 작업도 허가되지 않습니다. 
ORA-12329 데이타베이스 %s가 닫혔음; 어떤 작업도 허가되지 않습니다. 
ORA-12333 데이타베이스 %s가 마운트되지 않았습니다. 
ORA-12334 데이타베이스(링크명 %s)가 아직 열려 있습니다. 
ORA-12335 데이타베이스(링크명 %s)가 열지 않았습니다. 
ORA-12336 데이타베이스에 로그인할 수 없습니다 (링크명 %s) 
ORA-12341 마운트할 수 있는 최대 수가 초과했습니다. 
ORA-12342 마운트 열기가 OPEN_MOUNTS 파라미터에 지정한 한계치를 초과했습니다. 
ORA-12345 사용자 %s는 데이타베이스 링크(%s)에 필요한 CREATE SESSION 권한이 없습니다. 
ORA-12350 삭제될 데이타베이스 링크가 아직도 마운트되었습니다. 
ORA-12351 원격 개체 참조를 이용하는 원격 개체가 뷰를 만들 수 없습니다. 
ORA-12352 %s.%s@%s 는 부적절합니다. 
ORA-12353 2번째 저장된 개체는 원격 개체를 참조할수 없습니다. 
ORA-12354 DROP될 2번째 개체 
ORA-12400 DBLOW는 유효한 운영 시스템 레이블이 아닙니다. 
ORA-12401 DBHIGH는 유효한 운영 시스템 레이블이 아닙니다. 
ORA-12402 화일: %s 
ORA-12403 화일 레이블이 DB_HIGH(%s)와 동일해야 합니다(%s) 
ORA-12404 디바이스 low (%s)는 DBLOW (%s)에 의해 통제됩니다. 
ORA-12405 디바이스 high (%s)는 DBHIGH (%s)를 통제합니다. 
ORA-12406 화일들을 테이블스페이스에 추가하기 위해서는 OS내에 DBHIGH (%s)에 있어야 합니다. 
ORA-12407 뷰의 ROWLABEL 열에 삽입하거나 수정할 수 없습니다. 
ORA-12408 이전에 존재했던 테이블스페이스가 다른 레이블(%s)에 있습니다. 
ORA-12409 DBLOW는 DBMS MAC 모드에서 널값을 가질 수 없습니다. 
ORA-12410 DBHIGH는 DBMS MAC 모드에서 널값을 가질 수 없습니다. 
ORA-12411 DBHIGH는 DBLOW를 통제합니다. 
ORA-12412 DBLOW는 %s에 의해 통제됩니다. 
ORA-12413 DBHIGH는 %s에 의해 통제됩니다. 
ORA-12414 데이타베이스를 기동시키기 위해서는 DBHIGH (%s) 이어야 합니다. 
ORA-12415 세션 레이블은 롤 %s의 레이블 생성을 통제해야만 합니다. 
ORA-12416 감사 레이블은 사용자를 통제합니다. 
ORA-12418 색인 레이블은 테이블과 동일해야 합니다. 
ORA-12419 열의 레이블은 테이블과 동일해야 합니다. 
ORA-12420 저장된 개체의 레이블은 참조된 객체 %s를 통제해야 합니다. 
ORA-12421 허가 권한의 레이블은 개체를 통제해야 합니다. 
ORA-12422 허가 권한의 레이블은 허가받는 %s를 통제해야 합니다. 
ORA-12423 제약조건 레이블은 테이블과 같아야 합니다. 
ORA-12424 개체의 레이블은 테이블 영역을 통제해야 합니다. 
ORA-12425 테이블의 레이블은 클러스터를 통제해야 합니다. 
ORA-12426 사용자의 레이블은 디폴트 또는 임시의 테이블 영역을 통제 해야만 합니다. 
ORA-12427 개체의 레이블은 스키마를 통제해야만 합니다. 
ORA-12428 불 충분한 MAC 권한 
ORA-12429 주석 레이블은 테이블 또는 뷰와 동일 해야 합니다. 
ORA-12430 트리거의 레이블은 테이블과 동일해야 합니다. 
ORA-12431 사용자의 레이블은 디폴트 프로화일을 통치해야 합니다. 
ORA-12432 권한부여의 레벨은 프로시저의 레벨과 같아야 합니다. 
ORA-12433 디폴트 롤 %s의 레이블은 사용자를 통치해야 합니다. 
ORA-12434 자식 레코드의 레이블은 부모를 통치 해야만 합니다. 
ORA-12435 패키지 본체의 레이블은 패키지와 같아야만 합니다. 
ORA-12436 패키지 몸체는 MAC 권한을 허가하기 위해서 존재해야 합니다. 
ORA-12437 더낮은 레이블에서 데이타베이스에 기록할 수 없습니다. 
ORA-12438 모든 행들에서 제약조건을 검증하기 위한 권한이 불충분합니다. 
ORA-12439 ROWLABEL 열을 수정할 수 없습니다. 
ORA-12440 데이타베이스는 읽기-호환 모드로 마운트되지 않습니다. 
ORA-12441 허가는 이미 다른 레이블에서 존재합니다. 
ORA-12442 디폴트 롤을 수정하기 위해서는 사용자와 같은 레이블에 있어야만 합니다. 
ORA-12443 다른 레벨에 감사 옵션이 이미 존재합니다. 
ORA-12444 화일 레이블은 인스턴스 레이블보다 낮습니다. 
ORA-12445 색인와 행의 레이블이 틀립니다- 추적 화일 참조 
ORA-12446 화일 레이블이 인스턴스 레이블보다 상위에 있습니다. 
ORA-12447 안전성 없는 프로토콜이 사용되어 연결이 거부 되었습니다. 
ORA-12448 최고 보다 낮은 범위가 부적합한 운영 시스템 레이블이 되었습니다. 
ORA-12449 최하 보다 높은 범위가 부적합한 운영 시스템 레이블이 되었습니다. 
ORA-12450 레이블 스트링은 이진 레이블로 변환될 수 없습니다. 
ORA-12451 이진 OS 레이블은 스트링 레이블로 변환될 수 없습니다. 
ORA-12452 레이블 형식 스트링은 해석될 수 없습니다 형식 코드를 검사하십시오 
ORA-12453 문자 스트링에 인용부호가 누락됐습니다. 
ORA-12454 제공된 구두점은 명시된 입력 형식과 일치하지 않습니다. 
ORA-12455 OS 형식은 이 문맥에서 사용될 수 없습니다. 
ORA-12456 제공된 문자스트링은 지정된 입력 형식과 일치하지 않습니다. 
ORA-12457 MLSLABEL 바인드 변수에 대한 길이가 잘못됐습니다. 
ORA-12458 입력 스트링이 이진 레이블로 변환될 수 없습니다. 
ORA-12459 Trusted Oracle의 테이블에 대한 최대 열수는 253 입니다. 
ORA-12460 MLS_LABEL_FORMAT 파라미터에 대한 값 %s가 부당합니다. 
ORA-12461 부적합한 이진 레이블 
ORA-12470 프로세스 레이블이 발견될 수 없습니다. 
ORA-12475 DBLOW (%s) 아래로 로그인 할 수 없습니다. 
ORA-12476 DBHIGH (%s) 위로 로그인 할 수 없습니다. 
ORA-12477 DBLOW (%s) 아래로 MLSLABLE을 생성할 수 없습니다. 
ORA-12478 DBHIGH (%s) 위로 MLSLABLE을 생성할 수 없습니다. 
ORA-12480 두번째 데이타베이스가 OS MAC와 DBMS MAC 모드 사이에서 변하고 있습니다. 
ORA-12485 %s에 대한 화일 레이블을 발견할 수 없습니다. 
ORA-12487 DBHIGH 또는 DBLOW에로의 레이블을 설정하기 위한 권한이 불충분 합니다. 
ORA-12488 세션 레이블이 %s와 같아야 합니다. 
ORA-12489 세션을 수정하기 위한 MAC 권한이 불충분 합니다. 
ORA-12490 사용자 정의(%s) 아래의 세션 레이블에 연결할 수 없습니다. 
ORA-12491 READ_COMPATIBLE 모드로 마운트할 경우 MAC 모드로 변경할 수 없습니다. 
ORA-12494 DBLOW 위로 레이블된 두번째 데이타베이스를 마운트할 수 없습니다. 
ORA-12495 Trusted Oracle은 멀티-쓰레드 서버로 사용할 수 없습니다. 
ORA-12500 TNS:리스너가 전용 서버 프로세스를 시작하는데 실패했습니다. 
ORA-12501 TNS:리스너가 프로세스를 생성하는데 실패했습니다. 
ORA-12502 TNS:리스너가 클라이언트로 부터 CONNECT_DATA을 받지 못했습니다. 
ORA-12504 TNS:리스너가 CONNECT_DATA 의 SID 를 받지 못했습니다. 
ORA-12505 TNS:리스너가 연결 설명자로 부터 받은 SID 를 분석할 수 없습니다. 
ORA-12506 TNS:리스너가 CONNECT_DATA 의 별칭을 받지 못했습니다. 
ORA-12507 TNS:리스너가 받은 별칭을 분석하지 못했습니다. 
ORA-12508 TNS:리스너가 받은 명령을 분석하지 못했습니다. 
ORA-12509 TNS:리스너가 클라이언트를 서비스 핸들러로 리다이렉트 하는데 실패했습니다. 
ORA-12510 TNS:데이타베이스가 이 SID 의 요구를 핸들하는 데 필요한 자원이 부족합니다. 
ORA-12511 TNS:서비스 핸들러가 발견되었지만 연결을 허용할 수 없습니다. 
ORA-12512 TNS:서비스 핸들러가 발견되었지만 리다이렉트 주소에 등록되어 있지 않습니다. 
ORA-12513 TNS:서비스 핸들러가 발견되었지만 다른 프로토콜이 등록되어 있습니다. 
ORA-12531 TNS:메모리를 할당할 수 없습니다. 
ORA-12532 TNS:사용할 수 없는 인수입니다. 
ORA-12533 TNS:사용할 수 없는 ADDRESS 파라미터입니다. 
ORA-12534 TNS:지원되지 않는 작동입니다. 
ORA-12535 TNS:작동이 중단중입니다. 
ORA-12536 TNS:작동이 블럭 되었습니다. 
ORA-12537 TNS:연결이 종료되었습니다. 
ORA-12538 TNS:그런 프로토콜 어댑터는 없습니다. 
ORA-12539 TNS:버퍼가 어버플로워 혹은 언더플로워되었습니다. 
ORA-12540 TNS:내부 한계 제한을 넘어섰습니다. 
ORA-12541 TNS:리스너가 아닙니다. 
ORA-12542 TNS:이미 사용중인 주소입니다. 
ORA-12543 TNS:수신지 호스트에 도달할 수 없습니다. 
ORA-12544 TNS:문맥에 다른 wait/test 함수가 있습니다. 
ORA-12545 대상 호스트 또는 개체가 존재하지 않아 연결에 실패했습니다. 
ORA-12546 TNS:허용이 거부되었습니다. 
ORA-12547 TNS:연결이 끊어졌습니다. 
ORA-12548 TNS:읽기나 쓰기가 완전치 못합니다. 
ORA-12549 TNS:OS 자원 분배를 넘었습니다. 
ORA-12550 TNS:구문 오류 
ORA-12551 TNS:키워드가 필요합니다. 
ORA-12552 TNS:작동이 인터럽트되었습니다. 
ORA-12555 TNS:허용이 거부되었습니다. 
ORA-12556 TNS:콜러가 아닙니다. 
ORA-12557 TNS:프로토콜 어댑터를 로드할 수 없습니다. 
ORA-12560 TNS:프로토콜 어댑터 오류 
ORA-12561 TNS:알 수 없는 오류 
ORA-12562 TNS:잘못된 글로벌 핸들 
ORA-12564 TNS:연결이 거부되었습니다. 
ORA-12566 TNS:프로토콜 오류 
ORA-12569 TNS:패킷 체크섬 실패 
ORA-12570 TNS:패킷 리더 실패 
ORA-12571 TNS:패킷 라이터 실패 
ORA-12574 TNS:리다리렉션이 무시되었습니다. 
ORA-12582 TNS:쓸모없는 작동 
ORA-12583 TNS:리더가 아닙니다. 
ORA-12585 TNS:데이타 뒷부분이 짤렸습니다. 
ORA-12589 TNS:연결을 보내지 못합니다. 
ORA-12590 TNS:I/O 버퍼가 아닙니다. 
ORA-12591 TNS:이벤트 신호 실패 
ORA-12592 TNS:손상된 패킷 
ORA-12593 TNS:등록된 연결이 아닙니다. 
ORA-12595 TNS:확인되지 않았습니다. 
ORA-12596 TNS:내부가 일치되지 않았습니다. 
ORA-12597 TNS:연결 설명자는 이미 사용중입니다. 
ORA-12598 배너 등록 실패 
ORA-12599 TNS:크립토그라픽 체크섬이 일치하지 않습니다. 
ORA-12616 TNS:이벤트 신호가 아닙니다. 
ORA-12618 TNS:호환되는 버전이 아닙니다. 
ORA-12619 TNS:요구된 서비스를 승락할 수 없습니다. 
ORA-12620 TNS:가능하지 않은 특성을 요구했습니다. 
ORA-12622 TNS:이벤트 인식이 동일하지 않습니다. 
ORA-12623 TNS:이 상태에서는 작동이 적절하지 않습니다. 
ORA-12624 TNS:연결이 이미 등록되어있습니다. 
ORA-12625 TNS:인수가 필요합니다. 
ORA-12626 TNS:틀린 이벤트 유형 
ORA-12628 TNS:이벤트 콜백이 아닙니다. 
ORA-12629 TNS:이벤트 테스트가 아닙니다. 
ORA-12630 TNS:원시 서비스 작업이 지원되지 않습니다. 
ORA-12631 TNS:이름 검색에 실패 
ORA-12632 TNS:롤 인출에 실패 
ORA-12633 TNS:공유되는 인증 서비스가 없습니다. 
ORA-12634 TNS:메모리 할당에 실패했습니다. 
ORA-12635 TNS:사용가능한 인증 어댑터가 없습니다. 
ORA-12636 TNS:패킷 송신에 실패했습니다. 
ORA-12637 TNS:패킷 수신에 실패했습니다. 
ORA-12638 TNS:신용 검색에 실패했습니다. 
ORA-12639 TNS:인증 서비스 니고시에이션에 실패했습니다. 
ORA-12640 TNS:인증 서비스 초기화에 실패했습니다. 
ORA-12641 TNS:인증 서비스가 초기화하는데 실패했습니다. 
ORA-12642 TNS:세션 키가 없습니다. 
ORA-12643 TNS:통신 프로세스가 실패했습니다. 
ORA-12644 TNS:인증 서비스 초기화에 실패했습니다. 
ORA-12645 TNS:파라미터가 존재하지 않습니다. 
ORA-12646 TNS:부울 파라미터에 부적당한 값이 지정되었습니다. 
ORA-12647 TNS:인증이 필요합니다. 
ORA-12648 TNS:암호화 또는 데이타 무결성 알고리즘 리스트가 비어 있습니다. 
ORA-12649 TNS:알 수 없는 암호화 또는 데이타 무결성 알고리즘입니다. 
ORA-12650 TNS:공통의 암호화 또는 데이타 무결성 알고리즘이 없습니다. 
ORA-12651 TNS:암호화 또는 데이타 무결성 알고리즘을 승인할 수 없습니다. 
ORA-12652 TNS:스트링이 잘렸습니다. 
ORA-12653 TNS:인증 제어 함수가 실패했습니다. 
ORA-12654 TNS:인증 변환에 실패했습니다. 
ORA-12655 TNS:암호 검색에 실패했습니다. 
ORA-12656 TNS:암호 체크섬이 일치하지 않습니다. 
ORA-12657 TNS:설치된 알고리즘이 없습니다. 
ORA-12658 TNS:원시 서비스가 필요하지만 TNS 버전이 호환되지 않습니다. 
ORA-12659 TNS:다른 프로세스로부터 받은 오류 
ORA-12699 TNS:원시 서비스 내부 오류 
ORA-12700 잘못된 NLS 파라미터 값 (%s)입니다. 
ORA-12701 알 수 없는 CREATE DATABASE 문자 세트 
ORA-12702 부적절한 NLS 파라미터 스트링이 SQL함수에서 사용되었습니다. 
ORA-12703 이 문자세트 변환은 제공되지 않습니다. 
ORA-12705 부적당하거나 알려지지 않은 NLS 파라미터가 명시되었습니다. 
ORA-12706 CREATE DATABASE 문자세트가 허용되지 않습니다. 
ORA-12707 데이타베이스의 생성시 NLS 파라미터 %s를 획득하는데 오류가 발생했습니다. 
ORA-12708 데이타베이스의 생성시 NLS 파라미터 %s를 로드하는데 오류가 발생했습니다. 
ORA-12709 데이타베이스의 생성시 문자 세트를 로드하는데 오류가 발생했습니다. 
ORA-12800 시스템이 너무 바빠 병렬 질의 수행이 어려울 것 갑습니다. 
ORA-12801 병렬 질의 서버 %s에 오류신호가 발생했습니다. 
ORA-12802 파라미터 질의 서버가 연락 담당자와 접촉이 끊겼습니다. 
ORA-12803 파라미터 질의 서버가 다른 서버와 접촉이 끊겼습니다. 
ORA-12804 병렬 질의 서버가 죽는것 처럼 나타났습니다. 
ORA-12805 병렬 질의 서버가 예상치 않게 죽었습니다. 
ORA-12806 엔큐를 멈취기위해 백그라운드 프로세스를 찾을 수 없습니다. 
ORA-12807 병렬 질의 메시지를 프로세스 큐가 받을수 없습니다. 
ORA-12808 %s_INSTANCES를 인스턴스의 수 %s보다 크게 설정할 수 없습니다. 
ORA-12809 배타 모드로 마운트 되어지면 %s_INSTANCES 설정을 할 수 없습니다. 
ORA-12810 PARALLEL_MAX_SERVERS는 %s보다 적거나 동일해야 합니다. 
ORA-12811 PARALLEL_MIN_SERVERS는 PARALLEL_MAX_SERVERS 보다 적거나 똑같아야 합니다 %s 
ORA-12812 하나만의 PARALLEL 또는 NOPARALLEL 절이 지정되어야 합니다. 
ORA-12813 PARALLEL 또는 DEGREE에 대한 값이 0 보다 커야합니다. 
ORA-12814 하나만의 CACHE 또는 NOCACHE 절이 지정되어야 합니다. 
ORA-12815 INSTANCES에 대한 값이 0 보다 커야합니다. 
ORA-12816 병렬은 속성 경로 운영 색인을 만들었습니다. 
ORA-12817 병렬 질의 옵션이 사용 가능해야 합니다. 
ORA-12818 PARALLEL 절에 잘못된 옵션 
ORA-12819 PARALLEL 절에 옵션이 빠졌습니다. 
ORA-12820 DEGREE에 대한 값이 잘못되었습니다. 
ORA-12821 INSTANCES에 대한 값이 잘못되었습니다. 
ORA-12822 PARALLEL 절에 중복된 옵션 
ORA-12823 병행성의 기본 정도가 여기에 지정되지 않았을 것입니다. 
ORA-12824 INSTANCES DEFAULT가 여기에 지정되지 않았을 것입니다. 
ORA-12825 여기에 명확한 병행성의 정도가 지정되어야 합니다. 
ORA-12826 동작을 멈춘 병렬 질의 서버가 제거되었습니다. 
ORA-12827 사용할 수 있는 병렬 질의 종속이 충분하지 않습니다. 
ORA-13000 차원 수가 범위를 넘었습니다. 
ORA-13001 디멘숀에 일치하지 않은 오류 
ORA-13002 지정된 레벨이 범위를 넘었습니다. 
ORA-13003 디멘숀에 대한 지정된 범위가 부적당합니다. 
ORA-13004 지정된 버퍼 크기는 부적당합니다. 
ORA-13005 순환 HHCODE 함수 오류 
ORA-13006 지정된 셀 수가 부적당합니다. 
ORA-13007 부적당한 HEX 문자가 발견되었습니다. 
ORA-13008 지정된 데이터 포맷이 부적당한 구성요소를 가지고 있습니다. 
ORA-13009 지정된 데이터 스트링이 부적당합니다. 
ORA-13010 부적당한 인수의 수가 지정되었습니다. 
ORA-13011 값이 범위를 넘었습니다. 
ORA-13012 부적당한 윈도우 형태가 지정되었습니다. 
ORA-13013 지정된 위상이 INTERIOR 또는 BOUNDARY가 아닙니다. 
ORA-13014 위상 식별자가 1 에서 8 로 지정된 범위 밖으로 지정했습니다. 
ORA-13015 윈도우 정의가 적당하지 않습니다. 
ORA-13016 잘못된 파티션 정의 
ORA-13017 알 수 없는 라인 파티션 외형입니다. 
ORA-13018 잘못된 거리 형태 
ORA-13100 요청한 프래임이 잘못된 폼으로 되어 있습니다. 
ORA-13101 파티션 이름 데이터형태는 varchar2 이어야 합니다. 
ORA-13102 회답 파이프 이름 데이터형태는 varchar2 이어야 합니다. 
ORA-13103 시간초과로 파이프 %s에서 인식하는데 실패했습니다. 
ORA-13104 시간초과로 파이프 %s에 회신을 송신하는데 실패했습니다. 
ORA-13105 파이프 %s에 버퍼가 오버플로우 되었습니다. 
ORA-13106 파이프 %s에 긍정 응답하는 것이 인터럽트되었습니다. 
ORA-13107 파이프 %s에 회신하는 것이 인터럽트되었습니다. 
ORA-13108 공간 테이블 %s을 찾을 수 없습니다. 
ORA-13109 공간 테이블 %s가 존재합니다. 
ORA-13110 공간 테이블 %s이 파티션되지 않았습니다. 
ORA-13111 공간 테이블 %s 에 정의된 파티션 키가 없습니다. 
ORA-13112 카운트 모드 %s 가 부적당합니다. 
ORA-13113 오라클 테이블 %s 은 존재하지 않습니다. 
ORA-13114 테이블스페이스 %s 을 찾을 수 없습니다. 
ORA-13115 테이블스페이스 %s 은 이미 할당된 것입니다. 
ORA-13116 테이블스페이스 %s 은 테이블 %s에 할당되지 않았습니다. 
ORA-13117 파티션 %s 은 찾을 수 없습니다. 
ORA-13118 파티션 %s 은 오프라인입니다. 
ORA-13119 소스와 대상 테이블스페이스들은 동일한 것입니다. 
ORA-13120 SD*POD 은 파이프 %s에 리스닝하지 않습니다. 
ORA-13121 자식 파티션을 작성하는데 실패했습니다. 
ORA-13122 자식 파티션 %s을 찾을 수 없습니다. 
ORA-13123 열 %s 은 이미 정의되었습니다. 
ORA-13124 열 %s에 대한 열 ID를 결정할 수 없습니다. 
ORA-13125 파티션 키가 이미 설정되었습니다. 
ORA-13126 공간 테이블 %s 에 대한 클래스를 결정할 수 없습니다. 
ORA-13127 대상 파티션을 생성하는데 실패했습니다. 
ORA-13128 열 %s 에 대한 디멘션을 확인하는데 실패했습니다. 
ORA-13129 HHCODE 열 %s 이 없습니다. 
ORA-13130 %s에서 회신이 오기를 기다리는데 시간초과되었습니다. 
ORA-13131 파이프 %s에 있는 레코드가 너무 큽니다. 
ORA-13132 %s에서 읽은 파이프가 인터럽트되었습니다. 
ORA-13133 아카이브 요청이 실패되었습니다. 
ORA-13134 요청을 복구하는데 실패되었습니다. 
ORA-13135 오프라인 패스가 중복되었습니다. 
ORA-13136 널 공통 코그가 생성되었습니다. 
ORA-13138 개체 %s의 이름을 결정할 수 없습니다. 
ORA-13139 %s에 대한 열 정의를 얻을 수 없습니다. 
ORA-13140 부적당한 대상 형태 
ORA-13141 부적당한 RANGE 윈도우 정의 
ORA-13142 부적당한 PROXIMITY 윈도우 정의 
ORA-13143 부적당한 POLYGON 윈도우 정의 
ORA-13144 대상 테이블 %s 이 없습니다. 
ORA-13145 범위 목록을 생성하는데 실패했습니다. 
ORA-13146 변수 %s을 대체할 테이블을 찾을 수 없습니다. 
ORA-13147 MBR을 생성하는데 실패했습니다. 
ORA-13148 SQL 필터를 생성하는데 실패했습니다. 
ORA-13149 공간 테이블 %s을 위한 다음 시퀀스 번호를 생성하는데 실패했습니다. 
ORA-13150 예외 레코드를 삽입하는데 실패했습니다. 
ORA-13152 부적당한 HHCODE 형태 
ORA-13197 MDSYS만이 %s 을 수행할 수 있습니다. 
ORA-13198 오라클 오류 ORA%s 가 있습니다. 
ORA-19999 skip_row 프로시저가 불리워졌습니다. 
ORA-20000 %s 
ORA-21000 raise_application_error의 %s%s에 대한 수치인수가 범위를 벗어났음, -20000과 -20999 사이에 있어야만 합니다. 
ORA-23300 %s 
ORA-23301 지연 rcp 수신 모드들이 혼용되었습니다. 
ORA-23302 지연 RPC 동안에 어플리케이션에서 통신 실패가 발생했습니다. 
ORA-23303 지연 RPC 동안에 어플리케이션에서 일반적인 예외가 일어났습니다. 
ORA-23304 인수 %s(%s 의, 호출 %s, tid %s)의 지연 rpc가 잘못 만들어졌습니다. 
ORA-23305 내부 지연 RPC 오류: %s 
ORA-23306 스키마 %s는 존재하지 않습니다. 
ORA-23307 중복 스키마 %s는 이미 존재합니다. 
ORA-23308 개체 %s.%s는 존재하지 않거나 부적당합니다. 
ORA-23309 개체 %s.%s(유형 %s의)는 존재합니다. 
ORA-23310 개체 그룹 %s 은 중지되지 않습니다. 
ORA-23311 개체 그룹 %s 은 중지되었습니다. 
ORA-23312 %s에 의해 불러진것이 masterdef가 아닙니다. 
ORA-23313 개체 그룹 %s 는 %s에서 마스터된것이 아닙니다. 
ORA-23314 데이타베이스는 %s에 대한 스냅샷이 아닙니다. 
ORA-23315 복제목록 버전 또는 요청 %s가 버전 %s에서 지원되지 않습니다. 
ORA-23316 masterdef는 %s입니다. 
ORA-23317 통신 실패가 일어났습니다. 
ORA-23318 ddl 실패가 일어났습니다. 
ORA-23319 파라미터 값 %s이 적당하지 않습니다. 
ORA-23320 값 %s 와 %s 때문에 요청에 실패했습니다. 
ORA-23323 파라미터 길이가 지연 RPC 한계를 초과하였습니다. 
ORA-23324 오류 %s, %s에서 지연 엔트리를 작성하는 동안 오류 %s가 발생했습니다. 
ORA-23325 파라미터 유형은 %s가 아닙니다. 
ORA-23326 시스템이 정지되었습니다. 
ORA-23327 가져오기되는 지연 rpc 데이타가 데이타베이스의 %s와 일치하지 않습니다. 
ORA-23328 스냅샷 기본 테이블 %s 은 마스터 테이블 %S 과 다릅니다. 
ORA-23329 ddl에 공급된-사용자가 성공하였지만 스냅샷 %s가 없습니다. 
ORA-23330 열 그룹 %s는 이미 존재합니다. 
ORA-23331 열 그룹 %s는 존재하지 않습니다. 
ORA-23332 그룹 %s를 사용하고 있습니다; 제거할 수 없습니다. 
ORA-23333 열 %s는 이미 열 그룹의 일부입니다. 
ORA-23334 열 %s 는 테이블 또는 열 그룹에 존재하지 않습니다. 
ORA-23335 우선권 그룹 %s는 이미 존재합니다. 
ORA-23336 우선권 그룹 %s는 존재하지 않습니다. 
ORA-23337 우선권 또는 값이 우선권 그룹 %s에 있지 않습니다. 
ORA-23338 우선권 또는 값이 이미 우선권 그룹 %s에 있습니다. 
ORA-23339 대립 해결 정보가 중복되었습니다. 
ORA-23340 해결 방법 %s이 잘못되었습니다. 
ORA-23341 사용자 함수가 요구되었습니다. 
ORA-23342 파라미터 열 %s이 부적당합니다. 
ORA-23343 지정된 대립 해결 정보가 등록되지 않았습니다. 
ORA-23344 제약조건 (%s.%s)는 존재하지 않습니다. 
ORA-23345 테이블 %s 는 통계를 정리하기 위해서 등록하지 않았습니다. 
ORA-23346 테이블 %s에 대한 기본키가 정의되지 않았습니다. 
ORA-23347 데이타유형 %s(열 %s이 있는 테이블 %s)는 지원되지 않았습니다. 
ORA-23348 %s 프로시저를 복제할 수 없습니다; IN 파라미터만 지원됩니다. 
ORA-23349 함수에대한 중복 지원을 생성할 수 없습니다. 
ORA-23350 반복 호출의 최대 수가 초과되었습니다. 
ORA-23351 파라미터 데이타유형 %s(프로시저 %s에 대한)는 지원되지 않습니다. 
ORA-23352 지연 트랜잭션에 수신이 중복되었습니다. 
ORA-23353 지연 RPC 큐는 개체 그룹 %s에 대한 엔트리를 가지고 있습니다. 
ORA-23354 지연 RPC 실행은 %s에 대해서 사용불가합니다. 
ORA-23355 개체 %s.%s 은 존재하지 않거나 마스터 위치가 부적당한 것입니다. 
ORA-23360 마스터 테이블 %s 에 대한 하나의 스냅샷만이 생성될 수 있습니다. 
ORA-23361 스냅샷 %s 은 마스터 싸이트에 존재하지 않습니다. 
ORA-23363 마스터와 스냅 싸이트에 스냅 기본 테이블 %s이 일치하지 않습니다. 
ORA-23364 중복 옵션은 설치되지 않았습니다. 
ORA-23365 싸이트 %s 가 존재하지 않습니다. 
ORA-23366 정수 값 %s 은 1 보다 적습니다. 
ORA-23367 테이블 %s 은 기본 키를 누락했습니다. 
ORA-23368 이름 %s 은 널 또는 빈 스트링일 수 없습니다. 
ORA-23369 %s 인수의 값이 널일 수는 없습니다. 
ORA-23370 테이블 %s 와 테이블 %s 들은 동등한 (%s) 외형이 아닙니다. 
ORA-23371 열 %s 이 테이블 %s에서 알 수 없습니다. 
ORA-23372 형태 %s 가 테이블 %s 에서 제공되지 않습니다. 
ORA-23373 개체 그룹 %s 은 존재하지 않습니다. 
ORA-23374 개체 그룹 %s 은 이미 존재합니다. 
ORA-23375 기능은 %s에 데이터베이스 버전과 호환되지 않습니다. 
ORA-23376 노드 %s 은 중복 버전 %s와 호환되지 않습니다. 
ORA-23377 missing_rows_oname1 인수에 대한 잘못된 %s 이름입니다. 
ORA-23378 연결 수식어 %s 은 개체 그룹 %s에 대해 적당한 것이 아닙니다. 
ORA-23379 연결 수식어 %s 은 너무 깁니다. 
ORA-23380 전파 모드 %s 은 적당하지 않습니다. 
ORA-23381 기본 개체 %s.%s@%s 을 위한 생성된 개체는 존재하지 않습니다. 
ORA-23400 부적당한 스냅샷 %s 이름입니다. 
ORA-23401 스냅샷 %s이 존재하고 있지 않습니다. 
ORA-23402 지연 txns의해서 충돌되었기 때문에 재생이 중지되었습니다. 
ORA-23403 재생 그룹 %s가 이미 존재합니다. 
ORA-23404 재생 그룹 %s 가 존재하고 있지 않습니다. 
ORA-23405 재생 그룹 수 %s가 존재하고 있지 않습니다. 
ORA-23406 사용자 %s에 불충분한 권한을 가지고 있습니다. 
ORA-23407 개체 %s 이름은 schema, object 또는 object 처럼 지정해야 합니다. 
ORA-23409 사용되지 않은 그룹 수를 찾을 수 없습니다. 
ORA-23410 스냅샷 %s 는 재생 그룹에 이미 있습니다. 
ORA-23411 스냅샷 %s는 재생 그룹 %s에 없습니다. 
ORA-23420 간격은 미래에 시간의 값을 구해야 합니다. 
ORA-23421 일 번호 %s는 일 큐에 있는 일이 아닙니다. 
ORA-23422 오라클 서버는 자주 사용되지 않는 일 번호을 생성할 수 없습니다. 
ORA-23423 일 번호 %s는 정수가 아닙니다. 
ORA-23430 인수 %s 은 NULL 또는 빈 스트링일 수 없습니다. 
ORA-23431 잘못된 상태: %s 
ORA-23432 마스터 싸이트 %s는 이미 존재합니다. 
ORA-23433 실행을 잘못된 마스터 싸이트 %s에서 하고 있습니다. 
ORA-23434 마스터 싸이트 %s 은 개체 그룹으로 알려 지지 않았습니다. 
ORA-24275 함수 %s 파라미터 %s는 누락되었거나 또는 부당한 것입니다. 
ORA-24276 함수 %s 출력 %s의 최대값이 초과되었습니다. 
ORA-24300 모드에 잘못된 값이 있습니다. 
ORA-24301 쓰레드-안전 로그온에 지정된 널 호스트입니다. 
ORA-24302 다른 쓰레드에 의해 사용하고 있는 곳에 호스트 연결이 있습니다. 
ORA-24303 호출은 비-지연 링키지를 지원하지 않습니다. 
ORA-24304 데이터형태는 호출을 허용하지 않습니다. 
ORA-24305 잘못된 바인드 또는 정의 켄텍스트입니다. 
ORA-24306 구분을 위한 잘못된 버퍼 
ORA-24307 구분을 위한 길이가 부적당합니다. 
ORA-25000 트리거 WHEN 절에 바인드 변수의 사용이 부적당합니다. 
ORA-25100 TABLESPACE 옵션은 ALTER INDEX REBUILD와 같이 사용해야만 합니다. 
ORA-25101 REBUILD 옵션 지정이 중복되었습니다. 
ORA-25102 PARALLEL 옵션은 ALTER INDEX REBUILD와 같이 사용해야만 합니다. 
ORA-25103 NOPARALLEL 옵션은 ALTER INDEX REBUILD와 같이 사용해야만 합니다. 
ORA-25104 UNRECOVERABLE 옵션은 ALTER INDEX REBUILD와 같이 사용해야만 합니다. 
ORA-25105 RECOVERABLE 옵션은 ALTER INDEX REBUILD와 같이 사용해야만 합니다. 
ORA-25106 하나의 PARALLEL 또는 NOPARALLEL절 만이 지정되어야 합니다. 
ORA-25107 TABLESPACE 옵션 지정이 중복되었습니다. 
ORA-25108 대기 잠금 이름 공간은 %s 문자의 한계 크기를 초과했습니다. 
ORA-25109 대기 잠금 이름 공간은 잘못된 %s 문자를 가지고 있습니다. 
ORA-25110 NOSORT 은 비트맵 색인과 같이 사용하면 안됩니다. 
ORA-25111 BITMAP은 클러스터 색인과 같이 사용하면 안됩니다. 
ORA-25112 비트맵 색인은 하나의 열을 색인합니다. 
ORA-25113 BITMAP 색인에 대한 DML 작업은 구현되지 않습니다.

Posted by 1010
02.Oracle/DataBase2012. 5. 2. 16:12
반응형


  • 역주는 항상 이러한 스타일로 표시하겠습니다. 또한, 편집자가 문서 내에 남겨둔 주석(<!-- -->내부를 말합니다) 중 읽어둘만 하다 생각되는 것을 이런 스타일로 표시했습니다. 원문과 혼동 없으시길 바랍니다.
  • 원본에서 사용하는 마크업 구조를 번역에 사용할 시간은 내기 어렵고, 번역자의 오류가 있다면 빨리 발견할 수 있어야 하므로 이 번역에서는 영문 원본과 한글을 함께 유지합니다. 영문을 숨기길 원한다면, 상단 회색 음영에 마우스를 올리면 나타나는 메뉴에서 "영문 숨김"을 사용하실 수 있습니다. 하지만 링크를 사용할 수 없게 되므로 권장하는 방법은 아닙니다.
  • introduction 에서 설명되겠지만, 이 명세는 몇가지 이유로 인해 여태까지의 명세와는 전혀 다른 수준의 상세함을 갖고 있습니다. 이러한 상세함의 상당수는 브라우저 제작자를 위해 의도된 내용으로서, 이 번역본의 주된 독자층에게는 꼭 필요한 내용은 아닐 수 있습니다. 따라서 번역에서는 이러한 상세한 내용 중 상당부분을 건너뛸 것입니다. 이렇게 건너뛰어진 내용은 이와 같이, 또는 브라우저 제작자 대상 내용입니다.와 같이 나타날 것이며, 내용은 온존되어 있지만 숨겨져 있습니다. 전자의 경우는 마우스오버로, 후자의 경우는 클릭으로 숨겨진 내용을 확인해 보실 수 있습니다.
  • 그러나 명세 내부의 하이퍼링크를 클릭하여 이동한 경우에는 모든 내용이 숨김 없이 드러나게 되어 있습니다.
  • 명세의 번역을 진행한 그룹에서 몇가지 예제를 제작하여 브라우저 호환성 등을 테스트해본 것이 있습니다. 클리어보스 데모 와 같이 나타날 것입니다. 이러한 예제들은 공식적으로 문서화 된 것이 아닌, 스터디 그룹의 주관적인 내용을 포함하므로 혼동 없으시길 바랍니다.

초록

이 명세는 월드 와이드 웹의 코어 언어 : 하이퍼텍스트 마크업 랭귀지(HTML) 의 5번째 주요 개정판을 정의합니다. 이 버전에서는 웹 프로그래머를 위한 새로운 기능들, 기존의 웹 저작 경향을 분석한 결과에 기초한 새로운 요소들, 그리고 상호작용성을 개선하기 위해 사용자 에이전트들이 준수해야 할 사항들을 명확하게 제시하고 있습니다.

This specification defines the 5th major revision of the core language of the World Wide Web: the Hypertext Markup Language (HTML). In this version, new features are introduced to help Web application authors, new elements are introduced based on research into prevailing authoring practices, and special attention has been given to defining clear conformance criteria for user agents in an effort to improve interoperability.

이 문서의 상태

이 섹션은 명세가 발간된 시점에서의 문서의 상태를 설명합니다. 다른 문서들이 이 문서보다 우선할 수 있습니다. 현재의 W3C 발행본들과 최근의 발행본들에 대한 리스트는 http://www.w3.org/TR/, W3C 기술문서 목록에서 확인하실 수 있습니다.

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the most recently formally published revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

W3C에서 관리하도록 이 문서에 관한 코멘트를 남기길 원한다면 공개된 버그 데이터베이스를 통해 주시기 바랍니다. 계정을 가지고 있지 않다면 다음 폼을 이용할 수 있습니다.

If you wish to make comments regarding this document in a manner that is tracked by the W3C, please submit them via using our public bug database. If you do not have an account then you can enter feedback using this form:

Feedback Comments

피드백을 입력하실 때는 해당 섹션의 제목을 주의깊게 입력하고, 잘못된 텍스트를 따옴표로 감싸 주십시오. 새로운 기능을 제안하려 하는 것이라면, 그러한 것을 통해서 무엇을 개선하려 하는지 정확히 밝히는 것이 중요합니다. 사실, 해결책보다 그것이 더 중요합니다.

섹션 번호는 생략해주시기 바랍니다. 번호는 자주 바뀌므로, 피드백을 이해하기가 더 어려워집니다.

Please don't use section numbers as these tend to change rapidly and make your feedback harder to understand.

(Note: 스팸을 방지할 목적으로 IP 주소를 기록할 것입니다.)

이 폼을 이용할 수 없을 경우, public-html-comments@w3.org로 피드백을 보낼 수 있습니다. (구독목록) 이렇게 전달된 피드백은 공개된 버그 데이터베이스에 기록될 것입니다. 또는 whatwg@whatwg.org로 메일을 보내도 됩니다. (구독목록). 편집자는 이 목록으로 전달된 모든 실질적인 피드백에 응답할 것을 보장합니다만, 그러한 피드백은 공식적인 것으로 간주되지는 않습니다. 모든 피드백을 환영합니다.

If you cannot do this then you can also e-mail feedback to public-html-comments@w3.org (subscribearchives), and arrangements will be made to transpose the comments to our public bug database. Alternatively, you can e-mail feedback to whatwg@whatwg.org (subscribe,archives). The editor guarantees that all substantive feedback sent to this list will receive a reply. However, such feedback is not considered formal feedback for the W3C process. All feedback is welcome.

워킹 그룹에서는 아직 편집자가 교정을 시도하지 않은 버그 리포트와, 아직 대응방안이 결정되지 않은 이슈들의 목록을 유지하고 있습니다. 편집자는 아직 검토하지 못한 이메일 목록 역시 관리하고 있습니다. 이러한 버그, 이슈, 이메일들은 단순히 이 명세뿐만이 아니라, HTML에 관련된 다양한 명세들에 적용됩니다.

The working groups maintains a list of all bug reports that the editor has not yet tried to address and a list of issues for which the chairs have not yet declared a decision. The editor also maintains a list of all e-mails that he has not yet tried to address. These bugs, issues, and e-mails apply to multiple HTML-related specifications, not just this one.

구현자implementor들은 이 명세가 아직 안정된 상태가 아님을 명심해야 합니다. 토론에 참여하지 않은 구현자들은 명세가 비호환적인 방향으로 변경되는 것을 발견할 것입니다. 이 명세를 구현하고자 하는 제작자들은 명세가 권고 후보 단계에 도달하기 전에 상기 메일링 리스트에 가입하고 토론에 참여해야 합니다.

Implementors should be aware that this specification is not stable. Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways. Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the aforementioned mailing lists and take part in the discussions.

이것은 진행중인 명세입니다! HTML 워킹 그룹의 최신 업데이트 - 중요한 버그 픽스를 포함하고 있을 수 있습니다 - 를 보려면 편집자 초안을 보기 바랍니다.

This is a work in progress! For the latest updates from the HTML WG, possibly including important bug fixes, please look at the editor's draft instead.

이 문서를 W3C 워킹 드래프트로 발행한다고 해서, W3C HTML 워킹 그룹의 참여자들 모두가 이 명세의 내용을 존중한다는 것을 암시하지는 않습니다. 물론, 이 명세의 모든 섹션에 대해 워킹 그룹 혹은 W3C 멤버들 중 많은 사람이 현재의 텍스트를 충실히 따르고 섹션 전체를 존중하거나, 최소한 섹션의 컨셉을 토의하는데 시간을 투자해야 한다는 점에 의견을 같이하고 있습니다.

The publication of this document by the W3C as a W3C Working Draft does not imply that all of the participants in the W3C HTML working group endorse the contents of the specification. Indeed, for any section of the specification, one can usually find many members of the working group or of the W3C as a whole who object strongly to the current text, the existence of the section at all, or the idea that the working group should even spend time discussing the concept of that section.

이 명세의 안정화된 최근 편집자 초안은 the W3C CVS serverWHATWG Subversion repository에서 이용할 수 있습니다. 최근의 편집자 카피 (완결되지 않은 문장이 들어 있을 수 있습니다)에는 이 명세와 관련된 최근의 초안 텍스트들이 포함되어 있습니다. 더 자세한 내용은 WHATWG FAQ을 참고하기 바랍니다.

The latest stable version of the editor's draft of this specification is always available on the W3C CVS server and in the WHATWG Subversion repository. The latest editor's working copy (which may contain unfinished text in the process of being prepared) contains the latest draft text of this specification (amongst others). For more details, please see the WHATWG FAQ.

HTML 명세의 변경 이력은 다음과 같은 방법으로 열람할 수 있습니다.

There are various ways to follow the change history for the HTML specifications:

E-mail notifications of changes
HTML-Diffs mailing list (diff-marked HTML versions for each change): http://lists.w3.org/Archives/Public/public-html-diffs/latest

Commit-Watchers mailing list (complete source diffs): http://lists.whatwg.org/listinfo.cgi/commit-watchers-whatwg.org

Real-time notifications of changes:
Generated diff-marked HTML versions for each change: http://twitter.com/HTML5

Browsable version-control record of all changes:
CVSWeb interface with side-by-side diffs: http://dev.w3.org/cvsweb/html5/

Annotated summary with unified diffs: http://html5.org/tools/web-apps-tracker

Raw Subversion interface: svn checkout http://svn.whatwg.org/webapps/

W3C의 HTML 워킹 그룹에서 W3C 권고안 트랙에 관련하여 이 명세의 진행을 책임지고 있습니다. 이 명세는 2011년 1월 13일자 초안입니다.

The W3C HTML Working Group is the W3C working group responsible for this specification's progress along the W3C Recommendation track. This specification is the 13 January 2011 Working Draft.

WHATWG에서도 이 명세에 관한 작업을 진행하고 있습니다. W3C HTML 워킹그룹은 WHATWG와 협력하고 있으며, 이에 관한 상세는 W3C HTML working group charter에 있습니다.

Work on this specification is also done at the WHATWG. The W3C HTML working group actively pursues convergence with the WHATWG, as required by the W3C HTML working group charter.

이 문서는 2004년 2월 5일 W3C 특허 정책을 준용합니다. W3C는 그룹의 운영과 관련하여 공적인 특허 목록을 관리합니다. 이 페이지에는 특허를 발표하는 것에 관한 지침 역시 포함되어 있습니다.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

차례

아래의 차례에서 회색으로 표시된 부분은 그 내용이 브라우저 제작자 대상이며, 따라서 번역되지 않았음을 나타냅니다.
+ 가 표시된 부분은 하위 메뉴가 있음을 나타냅니다. 클릭하면 하위 메뉴가 펼쳐집니다.

  1. 1 소개
    1. 1.1 배경
    2. 1.2 대상 독자
    3. 1.3 초점
    4. 1.4 역사
    5. 1.5 디자인 노트
      1. 1.5.1 스크립트 실행의 직렬화
      2. 1.5.2 다른 명세와의 관계
    6. 1.6 HTML 과 XHTML
    7. 1.7 명세의 구조
      1. 1.7.1 명세를 읽는 방법
      2. 1.7.2 표현 방법
    8. 1.8 HTML에 대한 간단한 소개
    9. 1.9 저자가 지켜야 할 것
      1. 1.9.1 표현적 마크업
      2. 1.9.2 문법 에러
      3. 1.9.3 내용 모델과 속성값에 대한 제한들
    10. 1.10 읽을만한 것들
  2. 2 공통 의미구조

    명세 전반에 걸쳐 사용될 클래스, 알고리즘, 정의, 그리고 기반구조들입니다.

    1. 2.1 단어 사용
      1. 2.1.1 자원
      2. 2.1.2 XML
      3. 2.1.3 DOM 트리
      4. 2.1.4 스크립팅
      5. 2.1.5 플러그인
      6. 2.1.6 문자 인코딩
    2. 2.2 이행 요구사항
      1. 2.2.1 종속성
      2. 2.2.2 확장성
    3. 2.3 대소문자 구분과 문자열 비교
    4. 2.4 UTF-8
    5. 2.5 공통 상세문법
      1. 2.5.1 파서 숙어
      2. 2.5.2 불리언 속성
      3. 2.5.3 키워드, 나열 속성
      4. 2.5.4 숫자
        1. 2.5.4.1 음이 아닌 정수
        2. 2.5.4.2 기호가 붙은 정수
        3. 2.5.4.3 실수
        4. 2.5.4.4 퍼센트와 길이
        5. 2.5.4.5 정수 목록
        6. 2.5.4.6 크기 목록
      5. 2.5.5 날짜와 시간
        1. 2.5.5.1 월
        2. 2.5.5.2 일
        3. 2.5.5.3 시간
        4. 2.5.5.4 날짜와 시간(지역)
        5. 2.5.5.5 날짜와 시간(국제)
        6. 2.5.5.6 주
        7. 2.5.5.7 모호한 시간
      6. 2.5.6 색상
      7. 2.5.7 공백문자로 구분된 토큰
      8. 2.5.8 쉼표로 구분된 토큰
      9. 2.5.9 참조
      10. 2.5.10 미디어 쿼리
    6. 2.6 URL
      1. 2.6.1 단어 사용
      2. 2.6.2 기본 URL의 동적 변화
      3. 2.6.3 URL 조작 인터페이스
    7. 2.7 자원 다운로드
      1. 2.7.1 프로토콜 컨셉
      2. 2.7.2 암호화된 HTTP, 관련된 보안 문제
      3. 2.7.3 자원 타입의 판별
    8. 2.8 공통 DOM 인터페이스
      1. 2.8.1 IDL 속성에서 내용 속성의 반영
      2. 2.8.2 컬렉션
        1. 2.8.2.1 HTMLCollection
        2. 2.8.2.2 HTMLAllCollection
        3. 2.8.2.3 HTMLFormControlsCollection
        4. 2.8.2.4 HTMLOptionsCollection
      3. 2.8.3 DOMTokenList
      4. 2.8.4 DOMSettableTokenList
      5. 2.8.5 구조화된 데이터의 안전한 전달
      6. 2.8.6 DOMStringMap
      7. 2.8.7 DOM 기능 문자열
      8. 2.8.8 예외
      9. 2.8.9 메모리 반환
    9. 2.9 네임스페이스
  3. 3 HTML 문서의 의미, 구조, API

    문서는 요소들로 구성됩니다. 이러한 요소들은 DOM을 통해 트리 구조를 가집니다. 이 섹션은 이러한 DOM의 기능들을 정의하며, 또한 모든 요소들에 공통되는 기능을 정의하고, 요소를 정의하는데 사용되는 컨셉들을 설명합니다.

    1. 3.1 문서
      1. 3.1.1 DOM 내부의 문서
      2. 3.1.2 보안
      3. 3.1.3 자원 메타데이터 관리
      4. 3.1.4 DOM 트리 접근자
      5. 3.1.5 문서 생성
      6. 3.1.6 XML 문서 로딩
    2. 3.2 요소
      1. 3.2.1 의미론
      2. 3.2.2 DOM 내부의 요소
      3. 3.2.3 전역 속성
        1. 3.2.3.1 id 속성
        2. 3.2.3.2 title 속성
        3. 3.2.3.3 langxml:lang 속성
        4. 3.2.3.4 xml:base attribute (XML only)
        5. 3.2.3.5 dir 속성
        6. 3.2.3.6 class 속성
        7. 3.2.3.7 style 속성
        8. 3.2.3.8 data-* 속성을 이용한 보이지 않는 커스텀 데이터 사용
      4. 3.2.4 요소 정의
        1. 3.2.4.1 속성
      5. 3.2.5 내용 모델
        1. 3.2.5.1 내용의 종류
          1. 3.2.5.1.1메타데이터
          2. 3.2.5.1.2 플로우 컨텐츠
          3. 3.2.5.1.3 섹션 컨텐츠
          4. 3.2.5.1.4 제목 컨텐츠
          5. 3.2.5.1.5구문 컨텐츠
          6. 3.2.5.1.6 포함된 컨텐츠
          7. 3.2.5.1.7 대화형 컨텐츠
        2. 3.2.5.2 투명한 컨텐츠 모델
        3. 3.2.5.3 문단
      6. 3.2.6 양방향 알고리즘 포맷 문자에 관한 요구사항
      7. 3.2.7 보조 기술 제품을 위한 주석 (ARIA)
    3. 3.3 HTML 문서의 API

    4. 3.4 XPath, XSLT 와의 상호작용
    5. 3.5 동적 마크업 삽입
      1. 3.5.1 입력 스트림 열기
      2. 3.5.2 입력 스트림 닫기
      3. 3.5.3 document.write()
      4. 3.5.4 document.writeln()
      5. 3.5.5 innerHTML
      6. 3.5.6 outerHTML
      7. 3.5.7 insertAdjacentHTML()
  4. 4 HTML의 요소

    각각의 요소들은 미리 정의된 의미를 가지며, 이 섹션에서 그것들을 설명합니다. 저자들이 이 요소를 어떻게 사용해야 할지 역시 설명합니다.

    1. 4.1 The root element
      1. 4.1.1 html 요소
    2. 4.2 문서의 메타데이터
      1. 4.2.1 head 요소
      2. 4.2.2 title 요소
      3. 4.2.3 base 요소
      4. 4.2.4 link 요소
      5. 4.2.5 meta 요소
        1. 4.2.5.1 표준 메타데이터 이름
        2. 4.2.5.2 기타 메타데이터 이름
        3. 4.2.5.3 프라그마 디렉티브
        4. 4.2.5.4 기타 프라그마 디렉티브
        5. 4.2.5.5 문서의 문자 인코딩 명시
      6. 4.2.6 style 요소
      7. 4.2.7 스타일링
    3. 4.3 스크립팅
      1. 4.3.1 script 요소
        1. 4.3.1.1 스크립트 언어
        2. 4.3.1.2 요소의 내용 제한
        3. 4.3.1.3 외부 스크립트에 대한 인라인 문서화
      2. 4.3.2 noscript 요소
    4. 4.4 섹션
      1. 4.4.1 body 요소
      2. 4.4.2 section 요소
      3. 4.4.3 nav 요소
      4. 4.4.4 article 요소
      5. 4.4.5 aside 요소
      6. 4.4.6 h1h2h3h4h5h6 요소
      7. 4.4.7 hgroup 요소
      8. 4.4.8 header 요소
      9. 4.4.9 footer 요소
      10. 4.4.10 address 요소
      11. 4.4.11 제목과 섹션
        1. 4.4.11.1 개요 작성
    5. 4.5 그룹 컨텐츠
      1. 4.5.1 p 요소
      2. 4.5.2 hr 요소
      3. 4.5.3 pre 요소
      4. 4.5.4 blockquote 요소
      5. 4.5.5 ol 요소
      6. 4.5.6 ul 요소
      7. 4.5.7 li 요소
      8. 4.5.8 dl 요소
      9. 4.5.9 dt 요소
      10. 4.5.10 dd 요소
      11. 4.5.11 figure 요소
      12. 4.5.12 figcaption 요소
      13. 4.5.13 div 요소
    6. 4.6 텍스트 레벨 의미론
      1. 4.6.1 a 요소
      2. 4.6.2 em 요소
      3. 4.6.3 strong 요소
      4. 4.6.4 small 요소
      5. 4.6.5 s 요소
      6. 4.6.6 cite 요소
      7. 4.6.7 q 요소
      8. 4.6.8 dfn 요소
      9. 4.6.9 abbr 요소
      10. 4.6.10 time 요소
      11. 4.6.11 code 요소
      12. 4.6.12 var 요소
      13. 4.6.13 samp 요소
      14. 4.6.14 kbd 요소
      15. 4.6.15 subsup 요소
      16. 4.6.16 i 요소
      17. 4.6.17 b 요소
      18. 4.6.18 mark 요소
      19. 4.6.19 ruby 요소
      20. 4.6.20 rt 요소
      21. 4.6.21 rp 요소
      22. 4.6.22 bdi 요소
      23. 4.6.23 bdo 요소
      24. 4.6.24 span 요소
      25. 4.6.25 br 요소
      26. 4.6.26 wbr 요소
      27. 4.6.27 사용법 요약
    7. 4.7 편집
      1. 4.7.1 ins 요소
      2. 4.7.2 del 요소
      3. 4.7.3 insdel 요소에 공통인 속성
      4. 4.7.4 편집과 문단
      5. 4.7.5 편집과 목록
    8. 4.8 포함된 컨텐츠
      1. 4.8.1 img 요소
        1. 4.8.1.1 이미지에 대한 대체로 사용될 텍스트를 제공하는 것에 대한 요구사항
          1. 4.8.1.1.1 범용 가이드라인
          2. 4.8.1.1.2 이미지만을 포함하는 링크 혹은 버튼
          3. 4.8.1.1.3 대체적인 그래픽 표현 - 차트, 다이어그램, 그래프, 지도, 일러스트레이션 - 을 갖는 구문이나 문단
          4. 4.8.1.1.4 대체적인 그래픽 표현 - 아이콘, 로고 - 을 갖는 짧은 구문이나 레이블
          5. 4.8.1.1.5 글자 표현 효과를 위해 그래픽으로 렌더링된 텍스트
          6. 4.8.1.1.6 주위 텍스트 일부를 그래픽으로 표현한 것
          7. 4.8.1.1.7 아무런 정보도 전달하지 않는 순수한 장식적 이미지
          8. 4.8.1.1.8 링크를 형성하지 않는, 더 큰 하나의 이미지를 형성하는 이미지 그룹
          9. 4.8.1.1.9 링크를 형성하는, 더 큰 하나의 이미지를 형성하는 이미지 그룹
          10. 4.8.1.1.10 내용의 핵심 파트
          11. 4.8.1.1.11 사용자에게 보일 의도가 없는 이미지
          12. 4.8.1.1.12 이미지를 볼 수 있음을 알고 있는 특정한 사람이 볼 것으로 의도된 이메일, 또는 사적인 문서에 포함된 이미지
          13. 4.8.1.1.13 마크업 생성기를 위한 가이드
          14. 4.8.1.1.14 유효성 검사기를 위한 가이드
      2. 4.8.2 iframe 요소
      3. 4.8.3 embed 요소
      4. 4.8.4 object 요소
      5. 4.8.5 param 요소
      6. 4.8.6 video 요소
      7. 4.8.7 audio 요소
      8. 4.8.8 source 요소
      9. 4.8.9 track 요소
      10. 4.8.10 Media 요소
        1. 4.8.10.1 에러 코드
        2. 4.8.10.2 미디어 자원의 위치
        3. 4.8.10.3 마임 타입
        4. 4.8.10.4 네트워크 상태
        5. 4.8.10.5 미디어 자원 로딩
        6. 4.8.10.6 미디어 자원으로의 오프셋
        7. 4.8.10.7 "준비됨" 상태
        8. 4.8.10.8 미디어 자원 재생
        9. 4.8.10.9 탐색
        10. 4.8.10.10 시간이 설정된 텍스트 트랙
          1. 4.8.10.10.1 텍스트 트랙 모델
          2. 4.8.10.10.2 Sourcing in-band text tracks
          3. 4.8.10.10.3 Sourcing out-of-band text tracks
          4. 4.8.10.10.4 텍스트 트랙 API
          5. 4.8.10.10.5 이벤트 정의
        11. 4.8.10.11 사용자 인터페이스
        12. 4.8.10.12 시간 범위
        13. 4.8.10.13 이벤트 요약
        14. 4.8.10.14 보안과 프라이버시에 관한 고려
        15. 4.8.10.15 미디어 요소 구현의 모범 사례(웹 저자)
        16. 4.8.10.16 미디어 요소 구현의 모범 사례(구현자)
      11. 4.8.11 canvas 요소
        1. 4.8.11.1 색상 범위와 수정
        2. 4.8.11.2 canvas 요소에서의 보안
      12. 4.8.12 map 요소
      13. 4.8.13 area 요소
      14. 4.8.14 이미지 맵
        1. 4.8.14.1 저작
        2. 4.8.14.2 처리모델
      15. 4.8.15 MathML
      16. 4.8.16 SVG
      17. 4.8.17 크기 속성
    9. 4.9 표 형태의 데이터
      1. 4.9.1 table 요소
      2. 4.9.2 caption 요소
      3. 4.9.3 colgroup 요소
      4. 4.9.4 col 요소
      5. 4.9.5 tbody 요소
      6. 4.9.6 thead 요소
      7. 4.9.7 tfoot 요소
      8. 4.9.8 tr 요소
      9. 4.9.9 td 요소
      10. 4.9.10 th 요소
      11. 4.9.11 tdth 공통적인 속성
      12. 4.9.12 처리 모델
        1. 4.9.12.1 테이블 포맷
        2. 4.9.12.2 데이터 셀과 헤더 셀 사이의 연결 생성
      13. 4.9.13 예제
    10. 4.10 Forms
      1. 4.10.1 소개
        1. 4.10.1.1 사용자 인터페이스 작성
        2. 4.10.1.2 서버사이드 처리 구현
        3. 4.10.1.3 서버와 통신하도록 설정
        4. 4.10.1.4 클라이언트 사이드 유효성 검사
      2. 4.10.2 분류
      3. 4.10.3 form 요소
      4. 4.10.4 fieldset 요소
      5. 4.10.5 legend 요소
      6. 4.10.6 label 요소
      7. 4.10.7 input 요소
        1. 4.10.7.1 type 속성의 상태
          1. 4.10.7.1.1 Hidden state
          2. 4.10.7.1.2 Text state, Search state
          3. 4.10.7.1.3 Telephone state
          4. 4.10.7.1.4 URL state
          5. 4.10.7.1.5 E-mail state
          6. 4.10.7.1.6 Password state
          7. 4.10.7.1.7 Date and Time state
          8. 4.10.7.1.8 Date state
          9. 4.10.7.1.9 Month state
          10. 4.10.7.1.10 Week state
          11. 4.10.7.1.11 Time state
          12. 4.10.7.1.12 Local Date and Time state
          13. 4.10.7.1.13 Number state
          14. 4.10.7.1.14 Range state
          15. 4.10.7.1.15 Color state
          16. 4.10.7.1.16 Checkbox state
          17. 4.10.7.1.17 Radio Button state
          18. 4.10.7.1.18 File Upload state
          19. 4.10.7.1.19 Submit Button state
          20. 4.10.7.1.20 Image Button state
          21. 4.10.7.1.21 Reset Button state
          22. 4.10.7.1.22 Button state
        2. 4.10.7.2 input 요소의 공통 속성
          1. 4.10.7.2.1 autocomplete 속성
          2. 4.10.7.2.2 dirname 속성
          3. 4.10.7.2.3 list 속성
          4. 4.10.7.2.4 readonly 속성
          5. 4.10.7.2.5 size 속성
          6. 4.10.7.2.6 required 속성
          7. 4.10.7.2.7 multiple 속성
          8. 4.10.7.2.8 maxlength 속성
          9. 4.10.7.2.9 pattern 속성
          10. 4.10.7.2.10 minmax 속성
          11. 4.10.7.2.11 step 속성
          12. 4.10.7.2.12 placeholder 속성
        3. 4.10.7.3 input 요소의 공통 API
        4. 4.10.7.4 공통 이벤트 행동
      8. 4.10.8 button 요소
      9. 4.10.9 select 요소
      10. 4.10.10 datalist 요소
      11. 4.10.11 optgroup 요소
      12. 4.10.12 option 요소
      13. 4.10.13 textarea 요소
      14. 4.10.14 keygen 요소
      15. 4.10.15 output 요소
      16. 4.10.16 progress 요소
      17. 4.10.17 meter 요소
      18. 4.10.18 컨트롤과 폼의 연결
      19. 4.10.19 폼 컨트롤에 공통된 속성
        1. 4.10.19.1 폼 컨트롤 명명
        2. 4.10.19.2 폼 컨트롤의 활성화 및 비활성화
        3. 4.10.19.3 컨트롤의 값
        4. 4.10.19.4 컨트롤에 자동으로 포커스 주기
        5. 4.10.19.5 사용자 입력의 길이 제한
        6. 4.10.19.6 폼 제출
        7. 4.10.19.7 요소 방향성 제출
      20. 4.10.20 텍스트 필드 선택을 위한 API
      21. 4.10.21 제약조건
        1. 4.10.21.1 정의
        2. 4.10.21.2 제약사항 검사
        3. 4.10.21.3 제약사항 검사 API
        4. 4.10.21.4 보안
      22. 4.10.22 폼 제출
        1. 4.10.22.1 소개
        2. 4.10.22.2 암시적인 제출
        3. 4.10.22.3 폼 제출 알고리즘
        4. 4.10.22.4 URL로 인코드된 폼 데이터
        5. 4.10.22.5 멀티파트 폼 데이터
        6. 4.10.22.6 단순 텍스트 폼 데이터
      23. 4.10.23 폼 리셋
      24. 4.10.24 이벤트 전달
    11. 4.11 인터랙티브 요소
      1. 4.11.1 details 요소
      2. 4.11.2 summary 요소
      3. 4.11.3 command 요소
      4. 4.11.4 menu 요소
        1. 4.11.4.1 소개
        2. 4.11.4.2 메뉴와 툴바 생성
        3. 4.11.4.3 컨텍스트 메뉴
        4. 4.11.4.4 툴바
      5. 4.11.5 Commands
        1. 4.11.5.1 a 요소로 커맨드 정의
        2. 4.11.5.2 button 요소로 커맨드 정의
        3. 4.11.5.3 input 요소로 커맨드 정의
        4. 4.11.5.4 option 요소로 커맨드 정의
        5. 4.11.5.5 command 요소로 커맨드 정의
        6. 4.11.5.6 label 요소의 accesskey속성으로 커맨드 정의
        7. 4.11.5.7 legend 요소의 accesskey 속성으로 커맨드 정의
        8. 4.11.5.8 다른 요소의 accesskey 속성으로 커맨드 정의
    12. 4.12 링크
      1. 4.12.1 소개
      2. 4.12.2 a 요소와 area 요소로 생성된 링크
      3. 4.12.3 하이퍼링크 따라가기
      4. 4.12.4 링크 타입
        1. 4.12.4.1 Link type "alternate"
        2. 4.12.4.2 Link type "archives"
        3. 4.12.4.3 Link type "author"
        4. 4.12.4.4 Link type "bookmark"
        5. 4.12.4.5 Link type "external"
        6. 4.12.4.6 Link type "help"
        7. 4.12.4.7 Link type "icon"
        8. 4.12.4.8 Link type "license"
        9. 4.12.4.9 Link type "nofollow"
        10. 4.12.4.10 Link type "noreferrer"
        11. 4.12.4.11 Link type "pingback"
        12. 4.12.4.12 Link type "prefetch"
        13. 4.12.4.13 Link type "search"
        14. 4.12.4.14 Link type "stylesheet"
        15. 4.12.4.15 Link type "sidebar"
        16. 4.12.4.16 Link type "tag"
        17. 4.12.4.17 계층형 링크 타입
          1. 4.12.4.17.1 Link type "index"
          2. 4.12.4.17.2 Link type "up"
        18. 4.12.4.18 연속적인 링크 타입
          1. 4.12.4.18.1 Link type "first"
          2. 4.12.4.18.2 Link type "last"
          3. 4.12.4.18.3 Link type "next"
          4. 4.12.4.18.4 Link type "prev"
        19. 4.12.4.19 다른 링크 타입
    13. 4.13 전용 요소는 없지만 일반적인 숙어들
      1. 4.13.1 내용의 주된 파트
      2. 4.13.2 태그 클라우드
      3. 4.13.3 대화
      4. 4.13.4 각주
    14. 4.14 셀렉터를 사용하여 HTML 요소 매칭
      1. 4.14.1 대소문자 구분
      2. 4.14.2 가상 클래스
  5. 5 웹 페이지 로딩

    HTML 문서는 진공 속에 존재하는 것이 아닙니다. 이 섹션은 다양한 문서들을 다루는 환경들에 영향을 미치는 기능들을 설명합니다.

    1. 5.1 브라우징 문맥
      1. 5.1.1 중첩된 브라우징 문맥
        1. 5.1.1.1 DOM에서 중첩된 브라우징 문맥 이동
      2. 5.1.2 보조 브라우징 문맥
        1. 5.1.2.1 DOM에서 보조 브라우징 문맥 이동
      3. 5.1.3 두번째 브라우징 문맥
      4. 5.1.4 보안
      5. 5.1.5 브라우징 문맥 그룹화
      6. 5.1.6 브라우징 문맥 이름
    2. 5.2 Window object
      1. 5.2.1 보안
      2. 5.2.2 이름을 사용해서 브라우징 문맥을 생성하고 탐색하는 API
      3. 5.2.3 다른 브라우징 문맥 접근
      4. 5.2.4 Window 객체에 이름으로 접근
      5. 5.2.5 가비지 컬렉션과 브라우징 문맥
      6. 5.2.6 브라우저 인터페이스 요소
      7. 5.2.7 WindowProxy object
    3. 5.3 Origin
      1. 5.3.1 동일 소스 제한 완화
    4. 5.4 세션 히스토리와 이동
      1. 5.4.1 브라우징 문맥의 세션 히스토리
      2. 5.4.2 History interface
      3. 5.4.3 Location interface
        1. 5.4.3.1 보안
      4. 5.4.4 세션 히스토리 구현 노트
    5. 5.5 웹 브라우징
      1. 5.5.1 문서들간의 이동
      2. 5.5.2 HTML 파일의 페이지 로드 처리 모델
      3. 5.5.3 XML 파일의 페이지 로드 처리 모델
      4. 5.5.4 텍스트 파일의 페이지 로드 처리 모델
      5. 5.5.5 이미지의 페이지 로드 처리 모델
      6. 5.5.6 플러그인을 사용하는 컨텐츠의 페이지 로드 처리 모델
      7. 5.5.7 DOM 을 갖지 않는 인라인 컨텐츠의 페이지 로드 처리 모델
      8. 5.5.8 조각 식별자(#)로 이동
      9. 5.5.9 히스토리 이동
        1. 5.5.9.1 이벤트 정의
      10. 5.5.10 문서 언로드
        1. 5.5.10.1 이벤트 정의
      11. 5.5.11 문서 로드 취소
    6. 5.6 오프라인 웹 어플리케이션
      1. 5.6.1 소개
        1. 5.6.1.1 이벤트 요약
      2. 5.6.2 어플리케이션 캐쉬
      3. 5.6.3 캐쉬 매니페스트 문법
        1. 5.6.3.1 매니페스트 샘플
        2. 5.6.3.2 캐쉬 매니페스트 작성
        3. 5.6.3.3 캐쉬 매니페스트 처리
      4. 5.6.4 어플리케이션 캐쉬의 다운로드 또는 업데이트
      5. 5.6.5 어플리케이션 캐쉬 선택 알고리즘
      6. 5.6.6 네트워크 모델의 변경
      7. 5.6.7 어플리케이션 캐쉬 만료
      8. 5.6.8 디스크 용량
      9. 5.6.9 어플리케이션 캐쉬 API
      10. 5.6.10 브라우저 상태
  6. 6 웹 어플리케이션 API

    이 섹션은 HTML 어플리케이션의 스크립팅을 위한 간단한 기능들을 소개합니다.

    1. 6.1 스크립팅
      1. 6.1.1 소개
      2. 6.1.2 스크립팅 허용과 금지
      3. 6.1.3 처리 모델
        1. 6.1.3.1 정의
        2. 6.1.3.2 스크립트 호출
        3. 6.1.3.3 스크립트 생성
        4. 6.1.3.4 스크립트 중지
      4. 6.1.4 이벤트 루프
        1. 6.1.4.1 정의
        2. 6.1.4.2 처리 모델
        3. 6.1.4.3 범용 작업 소스
      5. 6.1.5 javascript: 프로토콜
      6. 6.1.6 이벤트
        1. 6.1.6.1 이벤트 핸들러
        2. 6.1.6.2 요소, Document 객체, Window 객체의 이벤트 핸들러
        3. 6.1.6.3 이벤트 발생
        4. 6.1.6.4 이벤트와 Window 객체
        5. 6.1.6.5 런타임 스크립트 에러
    2. 6.2 타이머
    3. 6.3 사용자 프롬프트
      1. 6.3.1 간단한 대화상자
      2. 6.3.2 인쇄
      3. 6.3.3 별도의 창을 이용해 구현된 대화상자
    4. 6.4 시스템 상태와 가용성: Navigator 객체
      1. 6.4.1 클라이언트 식별
      2. 6.4.2 커스텀 스키마와 내용 핸들러
        1. 6.4.2.1 보안과 프라이버시
        2. 6.4.2.2 사용자 인터페이스 예제
      3. 6.4.3 저장소간 상호 배제의 수동 해제
  7. 7 사용자 인터랙션

    HTML 문서들은 사용자들이 컨텐츠와 상호작용하고 그것을 변경할 수 있는 다양한 메커니즘들을 제공할 수 있습니다. 이 섹션에서 그것들을 설명합니다.

    1. 7.1 hidden 속성
    2. 7.2 활성화
    3. 7.3 포커스
      1. 7.3.1 순서있는 포커스 이동과 tabindex 속성
      2. 7.3.2 포커스 관리
      3. 7.3.3 문서 레벨의 포커스 API
      4. 7.3.4 요소 레벨의 포커스 API
    4. 7.4 키보드 단축키 할당
      1. 7.4.1 소개
      2. 7.4.2 accesskey 속성
      3. 7.4.3 처리 모델
    5. 7.5 contenteditable 속성
      1. 7.5.1 사용자의 편집 동작
      2. 7.5.2 문서 전체를 편집 가능하도록 만들기
    6. 7.6 철자와 문법 체크
    7. 7.7 드래그-드롭
      1. 7.7.1 소개
      2. 7.7.2 드래그 데이터 저장
      3. 7.7.3 DataTransfer 인터페이스
        1. 7.7.3.1 DataTransferItems 인터페이스
        2. 7.7.3.2 DataTransferItem 인터페이스
      4. 7.7.4 DragEvent 인터페이스
      5. 7.7.5 드래그-드롭 처리 모델
      6. 7.7.6 이벤트 요약
      7. 7.7.7 draggable 속성
      8. 7.7.8 dropzone 속성
      9. 7.7.9 드래그-드롭 모델의 보안 위험성
    8. 7.8 편집 API
  8. 8 The HTML 문법

    이 섹션에서는 HTML의 문법들을 정의하며, 컨텐츠들을 그러한 문법들을 사용해 파싱하는 규칙을 정의할 것입니다.

    1. 8.1 HTML 문서 작성
      1. 8.1.1 The DOCTYPE
      2. 8.1.2 요소
        1. 8.1.2.1 시작 태그
        2. 8.1.2.2 종료 태그
        3. 8.1.2.3 속성
        4. 8.1.2.4 선택적 태그
        5. 8.1.2.5 내용 모델의 제한사항
        6. 8.1.2.6 텍스트 원형과 RCDATA 요소 내용에 대한 제한
      3. 8.1.3 텍스트
        1. 8.1.3.1 줄바꿈
      4. 8.1.4 문자 참조
      5. 8.1.5 CDATA 섹션
      6. 8.1.6 주석
    2. 8.2 HTML 문서 처리
      1. 8.2.1 Overview of the parsing model
      2. 8.2.2 The input stream
        1. 8.2.2.1 Determining the character encoding
        2. 8.2.2.2 Character encodings
        3. 8.2.2.3 Preprocessing the input stream
        4. 8.2.2.4 Changing the encoding while parsing
      3. 8.2.3 Parse state
        1. 8.2.3.1 The insertion mode
        2. 8.2.3.2 The stack of open elements
        3. 8.2.3.3 The list of active formatting elements
        4. 8.2.3.4 The element pointers
        5. 8.2.3.5 Other parsing state flags
      4. 8.2.4 Tokenization
        1. 8.2.4.1 Data state
        2. 8.2.4.2 Character reference in data state
        3. 8.2.4.3 RCDATA state
        4. 8.2.4.4 Character reference in RCDATA state
        5. 8.2.4.5 RAWTEXT state
        6. 8.2.4.6 Script data state
        7. 8.2.4.7 PLAINTEXT state
        8. 8.2.4.8 Tag open state
        9. 8.2.4.9 End tag open state
        10. 8.2.4.10 Tag name state
        11. 8.2.4.11 RCDATA less-than sign state
        12. 8.2.4.12 RCDATA end tag open state
        13. 8.2.4.13 RCDATA end tag name state
        14. 8.2.4.14 RAWTEXT less-than sign state
        15. 8.2.4.15 RAWTEXT end tag open state
        16. 8.2.4.16 RAWTEXT end tag name state
        17. 8.2.4.17 Script data less-than sign state
        18. 8.2.4.18 Script data end tag open state
        19. 8.2.4.19 Script data end tag name state
        20. 8.2.4.20 Script data escape start state
        21. 8.2.4.21 Script data escape start dash state
        22. 8.2.4.22 Script data escaped state
        23. 8.2.4.23 Script data escaped dash state
        24. 8.2.4.24 Script data escaped dash dash state
        25. 8.2.4.25 Script data escaped less-than sign state
        26. 8.2.4.26 Script data escaped end tag open state
        27. 8.2.4.27 Script data escaped end tag name state
        28. 8.2.4.28 Script data double escape start state
        29. 8.2.4.29 Script data double escaped state
        30. 8.2.4.30 Script data double escaped dash state
        31. 8.2.4.31 Script data double escaped dash dash state
        32. 8.2.4.32 Script data double escaped less-than sign state
        33. 8.2.4.33 Script data double escape end state
        34. 8.2.4.34 Before attribute name state
        35. 8.2.4.35 Attribute name state
        36. 8.2.4.36 After attribute name state
        37. 8.2.4.37 Before attribute value state
        38. 8.2.4.38 Attribute value (double-quoted) state
        39. 8.2.4.39 Attribute value (single-quoted) state
        40. 8.2.4.40 Attribute value (unquoted) state
        41. 8.2.4.41 Character reference in attribute value state
        42. 8.2.4.42 After attribute value (quoted) state
        43. 8.2.4.43 Self-closing start tag state
        44. 8.2.4.44 Bogus comment state
        45. 8.2.4.45 Markup declaration open state
        46. 8.2.4.46 Comment start state
        47. 8.2.4.47 Comment start dash state
        48. 8.2.4.48 Comment state
        49. 8.2.4.49 Comment end dash state
        50. 8.2.4.50 Comment end state
        51. 8.2.4.51 Comment end bang state
        52. 8.2.4.52 DOCTYPE state
        53. 8.2.4.53 Before DOCTYPE name state
        54. 8.2.4.54 DOCTYPE name state
        55. 8.2.4.55 After DOCTYPE name state
        56. 8.2.4.56 After DOCTYPE public keyword state
        57. 8.2.4.57 Before DOCTYPE public identifier state
        58. 8.2.4.58 DOCTYPE public identifier (double-quoted) state
        59. 8.2.4.59 DOCTYPE public identifier (single-quoted) state
        60. 8.2.4.60 After DOCTYPE public identifier state
        61. 8.2.4.61 Between DOCTYPE public and system identifiers state
        62. 8.2.4.62 After DOCTYPE system keyword state
        63. 8.2.4.63 Before DOCTYPE system identifier state
        64. 8.2.4.64 DOCTYPE system identifier (double-quoted) state
        65. 8.2.4.65 DOCTYPE system identifier (single-quoted) state
        66. 8.2.4.66 After DOCTYPE system identifier state
        67. 8.2.4.67 Bogus DOCTYPE state
        68. 8.2.4.68 CDATA section state
        69. 8.2.4.69 Tokenizing character references
      5. 8.2.5 Tree construction
        1. 8.2.5.1 Creating and inserting elements
        2. 8.2.5.2 Closing elements that have implied end tags
        3. 8.2.5.3 Foster parenting
        4. 8.2.5.4 The "initial" insertion mode
        5. 8.2.5.5 The "before html" insertion mode
        6. 8.2.5.6 The "before head" insertion mode
        7. 8.2.5.7 The "in head" insertion mode
        8. 8.2.5.8 The "in head noscript" insertion mode
        9. 8.2.5.9 The "after head" insertion mode
        10. 8.2.5.10 The "in body" insertion mode
        11. 8.2.5.11 The "text" insertion mode
        12. 8.2.5.12 The "in table" insertion mode
        13. 8.2.5.13 The "in table text" insertion mode
        14. 8.2.5.14 The "in caption" insertion mode
        15. 8.2.5.15 The "in column group" insertion mode
        16. 8.2.5.16 The "in table body" insertion mode
        17. 8.2.5.17 The "in row" insertion mode
        18. 8.2.5.18 The "in cell" insertion mode
        19. 8.2.5.19 The "in select" insertion mode
        20. 8.2.5.20 The "in select in table" insertion mode
        21. 8.2.5.21 The "in foreign content" insertion mode
        22. 8.2.5.22 The "after body" insertion mode
        23. 8.2.5.23 The "in frameset" insertion mode
        24. 8.2.5.24 The "after frameset" insertion mode
        25. 8.2.5.25 The "after after body" insertion mode
        26. 8.2.5.26 The "after after frameset" insertion mode
      6. 8.2.6 The end
      7. 8.2.7 Coercing an HTML DOM into an infoset
      8. 8.2.8 An introduction to error handling and strange cases in the parser
        1. 8.2.8.1 Misnested tags: <b><i></b></i>
        2. 8.2.8.2 Misnested tags: <b><p></b></p>
        3. 8.2.8.3 Unexpected markup in tables
        4. 8.2.8.4 Scripts that modify the page as it is being parsed
        5. 8.2.8.5 Unclosed formatting elements
    3. 8.3 Serializing HTML fragments
    4. 8.4 Parsing HTML fragments
    5. 8.5 Named character references
  9. 9 The XHTML 문법

    이 섹션에서는 XHTML의 문법들을 정의하며, 컨텐츠들을 그러한 문법들을 사용해 파싱하는 규칙을 정의할 것입니다.

    1. 9.1 Writing XHTML documents
    2. 9.2 Parsing XHTML documents
    3. 9.3 Serializing XHTML fragments
    4. 9.4 Parsing XHTML fragments
  10. 10 Rendering

    웹 브라우저들의 렌더링 규칙을 설명합니다.

    1. 10.1 Introduction
    2. 10.2 The CSS user agent style sheet and presentational hints
      1. 10.2.1 Introduction
      2. 10.2.2 Display types
      3. 10.2.3 Margins and padding
      4. 10.2.4 Alignment
      5. 10.2.5 Fonts and colors
      6. 10.2.6 Punctuation and decorations
      7. 10.2.7 Resetting rules for inherited properties
      8. 10.2.8 hr 요소
      9. 10.2.9 fieldset 요소
    3. 10.3 Replaced elements
      1. 10.3.1 Embedded content
      2. 10.3.2 Timed text tracks
        1. 10.3.2.1 WebVTT cue text rendering rules
        2. 10.3.2.2 Applying CSS properties to WebVTT Node Objects
        3. 10.3.2.3 CSS extensions
          1. 10.3.2.3.1 The '::cue' pseudo-element
          2. 10.3.2.3.2 The ':past' and ':future' pseudo-classes
      3. 10.3.3 Images
      4. 10.3.4 Attributes for embedded content and images
      5. 10.3.5 Image maps
      6. 10.3.6 Toolbars
    4. 10.4 Bindings
      1. 10.4.1 Introduction
      2. 10.4.2 button 요소
      3. 10.4.3 details 요소
      4. 10.4.4 input element as a text entry widget
      5. 10.4.5 input element as domain-specific widgets
      6. 10.4.6 input element as a range control
      7. 10.4.7 input element as a color well
      8. 10.4.8 input element as a check box and radio button widgets
      9. 10.4.9 input element as a file upload control
      10. 10.4.10 input element as a button
      11. 10.4.11 marquee 요소
      12. 10.4.12 meter 요소
      13. 10.4.13 progress 요소
      14. 10.4.14 select 요소
      15. 10.4.15 textarea 요소
      16. 10.4.16 keygen 요소
      17. 10.4.17 time 요소
    5. 10.5 Frames and framesets
    6. 10.6 Interactive media
      1. 10.6.1 Links, forms, navigation
      2. 10.6.2 title 속성
      3. 10.6.3 Editing hosts
      4. 10.6.4 Text rendered in native user interfaces
    7. 10.7 Print media
  11. 11 폐기된 기능들
    1. 11.1 폐기되었지만 올바른 기능들
      1. 11.1.1 폐기되었지만 올바른 기능들의 사용에 관한 경고
    2. 11.2 올바르지 않은 기능들
    3. 11.3 구현에 관한 요구사항
      1. 11.3.1 applet 요소
      2. 11.3.2 marquee 요소
      3. 11.3.3 Frames
      4. 11.3.4 그밖의 요소, 속성, API
  12. 12 IANA considerations
    1. 12.1 text/html
    2. 12.2 text/html-sandboxed
    3. 12.3 application/xhtml+xml
    4. 12.4 text/cache-manifest
  13. Index
    1. 요소
    2. Element content categories
    3. 속성
    4. Interfaces
    5. Events
  14. References
  15. Acknowledgements

Posted by 1010
02.Oracle2012. 3. 26. 16:13
반응형

SELECT
        CASE
                WHEN    TO_CHAR(MAX(ntfc_no) + 1) > '99999999'
                THEN '00000001'
                ELSE    LPAD(MAX(TO_NUMBER(REGEXP_REPLACE(ntfc_no, '[^0-9]'))) + 1, 8, '0')
        END AS ntfc_no
  FROM  TA_ICL_NTFC_DTL
Posted by 1010
02.Oracle/DataBase2012. 3. 26. 11:01
반응형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
WITH t(type, name, code) AS
(
SELECT '과일', '사과', '0' FROM dual
UNION ALL SELECT '과일', '레몬', '1' FROM dual
UNION ALL SELECT '과일', '포도', '2' FROM dual
UNION ALL SELECT '과일', '참외', '3' FROM dual
UNION ALL SELECT '채소', '오이', '0' FROM dual
UNION ALL SELECT '채소', '당근', '1' FROM dual
UNION ALL SELECT '채소', '호박', '2' FROM dual
)
SELECT type
, SUBSTR(XMLAgg(XMLElement(x, ',', name) ORDER BY code).Extract('//text()'), 2) name_9i
, wm_concat(name) name_10g
, ListAgg(name, ',') WITHIN GROUP(ORDER BY code) name_11g
FROM t
GROUP BY type
ORDER BY type
;

<실행 결과>
TYPE NAME_AGG
과일 사과,레몬,포도,참외
채소 오이,당근,호박


출처 : http://www.oracleclub.com/article/55512
Posted by 1010
02.Oracle/DataBase2012. 3. 16. 11:29
반응형

집합 쿼리(UNION, INTERSECT, MINUS)

집합 연산자를 사용시 집합을 구성할 컬럼의 데이터 타입이 동일해야 한다.

  • - UNION : 합집합
  • - UNION ALL : 중복 데이터를 다 포함하는 합집합
  • - INTERSECT : 교집합
  • - MINUS : 차집합

UNION

UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값들을 반환 한다.

 
SQL> SELECT deptno FROM emp
     UNION
     SELECT deptno FROM dept;
 
    DEPTNO
----------
        10
        20
        30
        40
    

UNION ALL

UNION과 같으나 두 테이블의 중복되는 값 까지 반환 한다.

 
SQL> SELECT deptno FROM emp
     UNION ALL
     SELECT deptno FROM dept;
 
   DEPTNO
---------
       20
       30
       30
       20
       30
       30
       10
       20
       10
       30
    

INTERSECT

INTERSECT는 두 행의 집합중 공통된 행을 반환 한다.

 
SQL> SELECT deptno FROM emp
     INTERSECT
     SELECT deptno FROM dept;
    
    DEPTNO
----------
        10
        20
        30
    

MINUS

MINUS는 첫 번째 SELECT문에 의해 반환되는 행 중에서 두 번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환 한다.

 
SQL> SELECT deptno FROM dept
     MINUS
     SELECT deptno FROM emp;
 
    DEPTNO
----------
        40
    

문서에 대하여

  • - 작성자 : 김정식 (oramaster _at_ naver.com)
  • - 작성일 : 2002년 08월 30일
  • - 강좌 URL : http://www.oracleclub.com/lecture/1507
  • - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
  • - 오라클클럽의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.
Posted by 1010
02.Oracle2011. 7. 26. 14:55
반응형


CREATE OR REPLACE FUNCTION FN_NUM2HAN(n_number NUMBER)
RETURN VARCHAR2 AS
    n_unit   NUMBER;
    n_length NUMBER;
    v_prev   VARCHAR2(8);
    v_digit  VARCHAR2(8);
    v_number VARCHAR2(150);
    v_return VARCHAR2(150);
BEGIN
    -- [ Usage ]
    -- SELECT FN_NUM2HAN(125670000           ) FROM DUAL; -- 일억이천오백육십칠만
    -- SELECT FN_NUM2HAN(100000000           ) FROM DUAL; -- 1억
    -- SELECT FN_NUM2HAN(1000000000000       ) FROM DUAL; -- 1조
    -- SELECT FN_NUM2HAN(1000000000000000    ) FROM DUAL; -- 1000조
    -- SELECT FN_NUM2HAN(10000000000000000000) FROM DUAL; -- 1000경
    IF n_number = 0 AND n_number < 0 THEN
        RETURN '영';
    END IF;
    n_unit   := 0;
    v_number := LTRIM(TO_CHAR(n_number,'99999999999999999999'));  -- 천경
    n_length := LENGTH(v_number);
    v_digit  := NULL;
    FOR i IN 1 .. n_length LOOP
        v_prev  := v_digit;
        v_digit := SUBSTR(v_number, n_length-i+1, 1);
        IF v_digit = '1' THEN v_digit := '일'; END IF;
        IF v_digit = '2' THEN v_digit := '이'; END IF;
        IF v_digit = '3' THEN v_digit := '삼'; END IF;
        IF v_digit = '4' THEN v_digit := '사'; END IF;
        IF v_digit = '5' THEN v_digit := '오'; END IF;
        IF v_digit = '6' THEN v_digit := '육'; END IF;
        IF v_digit = '7' THEN v_digit := '칠'; END IF;
        IF v_digit = '8' THEN v_digit := '팔'; END IF;
        IF v_digit = '9' THEN v_digit := '구'; END IF;
        IF v_digit = '1' THEN v_digit := '일'; END IF;
        IF v_digit = '0' THEN v_digit := NULL; END IF;
        -- DBMS_OUTPUT.PUT_LINE(' DIGIT : [' || v_digit || ']');
        -- DBMS_OUTPUT.PUT_LINE(' DEBUG : [' || i || '/' || i || ']');
        IF v_digit IS NOT NULL THEN
            IF MOD(i, 4) = 2 THEN
                v_digit := v_digit || '십';
            END IF;
            IF MOD(i, 4) = 3 THEN
                v_digit := v_digit || '백';
            END IF;
            IF MOD(i, 4) = 0 THEN
                v_digit := v_digit || '천';
            END IF;
        END IF;
        IF (v_digit IS NOT NULL AND i = 5) OR  --
           (v_digit IS NOT NULL AND v_prev IS NULL AND i > 5 AND i<9) THEN
            v_digit := v_digit || '만';
        END IF;
        IF (v_digit IS NOT NULL AND i = 9) OR
           (v_digit IS NOT NULL AND v_prev IS NULL AND i > 9 AND i<13) THEN
            v_digit := v_digit || '억';
        END IF;
        IF (v_digit IS NOT NULL AND i =13) OR
           (v_digit IS NOT NULL AND v_prev IS NULL AND i >13 AND i<17) THEN
            v_digit := v_digit || '조';
        END IF;
        IF (v_digit IS NOT NULL AND i =17) OR
           (v_digit IS NOT NULL AND v_prev IS NULL AND i >17 AND i<21) THEN
            v_digit := v_digit || '경';
        END IF;
        IF v_digit IS NOT NULL THEN
            v_return := v_digit || v_return;
        END IF;
        IF MOD(i,4) = 4 THEN
            n_unit := n_unit + 1;
        END IF;
    END LOOP;

    --DBMS_OUTPUT.PUT_LINE('[' || v_return || ']');
    RETURN v_return;
EXCEPTION
    WHEN OTHERS THEN v_return := SQLCODE;
    RETURN v_return;
END;
/

 SELECT FN_NUM2HAN(125670000           ) FROM DUAL;

Posted by 1010
02.Oracle/DataBase2010. 12. 10. 13:30
반응형

SELECT 컬럼,
        LTRIM(sys_connect_by_path(컬럼,','),',') AS 컬럼명
FROM  (
        SELECT 컬럼,
        menurole_id,
        row_number() OVER (partition by 그룹컬럼 order by 정렬할컬럼) rn,
        COUNT (*) OVER (partition by 그룹컬럼 ) cnt
        FROM 테이블명
)
WHERE level = cnt
start with rn = 1
connect by prior 그룹컬럼 = 그룹컬럼 and prior rn = rn-1


====================================================================

 세로로 출력되는 값들이 가로로 출력되는걸 확인할수 있다.


컬럼1  
컬럼2

1                  나

2                  너

1                  우리

1                  개똥이


컬럼1       컬럼2

1                 나,우리,개똥이

2                 너


출처 : http://kinjsp.pe.kr/board/board_view.kin?boardId=721.0&boardTypeCode=1072&fastFlag=true&numberPerPage=10&pageNumber=0

출처 : http://kinjsp.pe.kr/board/board_view.kin?boardId=721.0&boardTypeCode=1072&fastFlag=true&numberPerPage=10&pageNumber=0

Posted by 1010
02.Oracle/DataBase2010. 11. 30. 13:44
반응형

출처:http://www.sqlworld.pe.kr/index.asp

저작권 문제시 즉시 삭제가능~!!!

===========================================================================

백업장치

===========================================================================

1. 백업 장치? 돈주고 사나요?

백업 장치를 만든다는 것은 어떤 하드웨어적인 장치를 준비하는 것을 이야기 하는 것이 아닙니다. 여기서 이야기 하는 백업 장치는 물리적인 파일 이름이 길고 복잡하기 때문에 이를 쉽게 사용하기 위해서 하나의 별칭(Alias)를 만들어 두는 것을 이야기 합니다. 기억하실지 모르겠지만 데이터베이스를 만들 때 물리적인 파일의 경로와 이름을 지정하는 것 이외에 논리적인 데이터베이스 파일명을 지정하게 됩니다. (기억이 안난다면 데이터베이스 관련 강좌를 한번 보고 오시기 바랍니다).

2. 백업 장치의 필요성

예를 들어 "C:\Program FIles\Microsoft SQL Server\MSSQL\Backup\sqlworld.bak" 이라는 이름의 물리적인 파일로 백업을 받는다고 했을 경우 너무나 긴 경로명 때문에 왠지 짜증이 납니다. 이를 해결해 주는 것이 바로 백업장치명, 즉 논리적인 파일명이 됩니다.

나중에 보겠지만 다음과 같은 백업을 받은 T-SQL 문이 있가도 가정하겠습니다.

BACKUP DATABASE sqlworld
TO DISK = 'D:\Program Files\Microsoft SQL Server\MSSQL\Backup\sqlworld.bak'

위에서 빨간색 부분의 파일 경로는 너무나 길고 짜증납니다. 하지만 앞으로 배우게 될 방법으로 백업장치인 sqlworld를 만들어 놓게 되면 위 백업 문장은 다음과 같이 바뀌게 됩니다.

BACKUP DATABASE sqlworld TOsqlworld

매우 간단한 백업 문장이 되었습니다. 이것이 백업 장치의 위력(?) 입니다.

3. 백업 장치 만들기

백업 장치를 만드는 방법은 두가지가 있습니다. 추측하시다 시피 EM(Enterprise Manager)를 이용한 방법이 있고 T-SQL문을 이용하는 방법이 있습니다. 이 두가지 방법에 대하여 자세히 살펴보도록 하겠습니다.

[참고]

대부분의 작업들이 EM을 이용해서도 가능하고 T-SQL문을 이용해서도 가능합니다. 이중에 어느것을 사용하는게 좋은지 묻는 경우가 있습니다. EM의 경우는 대화 화면을 보면서 작업을 하기 때문에 더 쉽게 작업을 할 수 있습니다. 하지만 했던 작업을 다시 하려고 하면 처음부터 다시 해주어야 하는 경우가 많습니다. 하지만 T-SQL 문을 작업을 하고 저장해 둔 후 다음에 다시 이용 할 수 있는 장점이 있습니다. 그리고 예기치 않게 EM을 사용하지 못하게 되는 경우 T-SQL 문에 익숙한 관리자는 작업을 별 문제 없이 해 낼 수 있지만 EM에만 의존했던 관리자는 아무 작업도 못하고 발만 동동 구르게 됩니다. T-SQL 문을 통한 관리 방법을 꼭 익히시기 바랍니다.

1) EM을 이용한 백업 장치 만들기

① 아래 [그림 1]과 같이 백업 장치를 만드는 부분을 EM에서 볼 수 있습니다.


[그림 1]

② 아래 [그림 2] 처럼 "백업" 위에서 마우스 오른쪽 버튼을 눌러 표시되는 단축메뉴에서 "새 백업 장치(N)"를 선택하면 [그림 3] 과 같은 대화창이 뜹니다.


[그림 2]

③ 아래 [그림 3] 처럼 "이름" 부분에 원하는 장치명을 입력합니다. 되도록 의미가 있는 이름으로 하시는게 좋습니다. 그리고 "파일 이름" 부분에는 실제로 물리적인 경로가 어떻게 되는지 정해 주시면 됩니다. 결로을 정해주시면 기본적으로 입력한 "이름" + ".bak" 이 물리적인 파일 이름으로 지정됩니다.


[그림 3]

④ 아래 [그림 4] 는 sqlworld 라는 이름으로 백업장치가 만들어진 결과를 보여 줍니다.


[그림 4]

[참고]

위와 같은 과정으로 백업장치를 만들었다고 해서 지정했던 물리적인 경로의 파일(위의 경우는 E:\Data\sqlworld.bak")이 즉시 생기지 않습니다. 실제로 물리적인 파일이 생기는 시점은 첫번째 백업이 이루어지는 때입니다.

2) T-SQL 문을 이용한 백업 장치 만들기

T-SQL 문을 이용한 백업장치 만들기는 아주 간단합니다. 위에서 EM을 통해서 했던 작업을 T-SQL 로 한다면 다음과 같습니다.

USE master
GO

EXEC sp_addumpdevice 'disk', 'SQLWORLD', 'E:\Data\sqlworld.bak'

o disk : 하드 디스크로 덤프 받음을 의미합니다.(이외에 pipe, tape 등이 있습니다)
o SQLWORLD : 논리적인 백업 장치 명입니다.
o E:\Data\sqlworld.bak : 물리적인 파일의 경로와 파일명입니다.

sp_addumpdevice 저장프로시져에 대한 자세한 설명을 원하시면 온라인 설명서(Books Online)을 참조하여 주시기 바랍니다.

이제 우리가 만든 백업장치에 백업을 받으면 됩니다. 이어지는 전체 백업(Full Backup) 관련 강좌에서는 백업장치를 이용하여 백업을 받는 방법과 백업장치를 이용하지 않고 백업을 받는 방법에 대하여 살펴보도록 하겠습니다.

========================================================================================

Full Backup

========================================================================================

1. 전체 백업(Full Backup)의 특징

여러가지 백업 방법을 설명하면서 전체 백업에 대해서도 간단히 언급을 했었습니다. 전체 백업은 말 그대로 데이터베이스 전체를 백업 받는 것을 의미합니다. 데이터베이스 사이즈가 작은 경우라면 전체 백업을 받는데 별 무리가 없겠지만 데이터베이스 사이즈가 큰 경우라면 전체 백업은 그리 좋은 방법이 아닙니다. 전체 백업을 사용할 수 있는 경우를 생각해 본다면 다음과 같지 않을까 생각합니다.

o 개발용 데이터베이스를 현재 상태로 보관하고 싶은 경우 전체 백업
o 데이터베이스를 다른 서버로 옮기고 싶은 경우 전체 백업해서 다른 서버에 전체 복원
o 데이터베이스에 어쩌다 가끔 변경이 생기는 경우 이를 보관하기 위해 전체 백업
o 현재의 Master 데이터 베이스 보관을 위해 전체 백업

몇가지 생각나는 경우를 적어 보았는데 이게 정답이 아닐 수 도 있습니다.

2. 전체 백업 수행

그럼 전체백업을 받는 과정을 보도록 하겠습니다. 여기서는 다음과 같이 3가지 경우를 살펴 보도록 하겠습니다.

o EM에서 백업 장치를 이용한 전체 백업
o EM에서 물리적인 파일을 이용한 전체 백업
o T-SQL 문을 이용한 전체 백업

1) EM에서 백업 장치를 이용한 전체 백업

바로 이전의 강좌에서 만든 SQLWORLD라는 이름의 백업장치가 있었습니다. 이 백업 장치에 sqlworld 데이터베이스를 전체 백업받는 과정을 보도록 하겠습니다. 강좌를 보시는 분들은 연습용 데이터베이스가 없으면 pubs 데이터베이스를 백업받아 보시기 바랍니다.

① sqlworld데이터베이스 위에서 마우스 오른쪽 버튼을 눌러 [모든작업] - [데이터베이스 백업] 을 선택하시면 아래 [그림 1] 과 같은 대화 창이 표시됩니다.


[그림 1]

② "이름(N)" 부분과 "설명(R)" 부분에는 참고할 만한 내용을 입력합니다. 위 [그림 1] 에서 처럼 빨간색 라인 부분을 보면 백업 방법이 "데이터베이스-전체(D)" 로 되어 있습니다. 즉 전체 백업을 받음을 의미합니다. 백업 대상 부분의 현재 내용이 있으면 [제거(M)] 버튼을 눌러 제거 하시고 [추가(A)] 버튼을 눌러 아래 [그림 2] 처럼 장치 선택화면이 나오도록 합니다. 그리고 "백업장치(B)" 부분에 이미 만들어져 있는 SQLWORLD 라는 백업장치를 선택하고 [확인] 버튼을 누릅니다.


[그림 2]

③ 아래 [그림 3]을 보시면 "덮어쓰기" 부분이 보입니다. 이 부분은 만일에 백업 장치에 기존에 백업 받은 내용이 있으면 여기에 추가 할 것인지(미디어에 추가) 아니면 기존의 내용을 지우고 쓸 것인지(기존 미디어 덮어쓰기)를 선택하는 것입니다. 처음 백업 받는 것이므로 현재는 무엇을 선택하든 아무 의미가 없습니다. "예약" 부분은 스케쥴을 설정하여 백업받는 것인데 다음에 자세히 다루도록 하겠습니다.


[그림 3]

④ 위 화면에서 [확인] 버튼을 누르면 백업 진행 상황이 보이면서 실제 백업이 이루어 집니다. 백업이 완료 되었으면 백업 장치를 만들 때 지정했던 물리적인 폴더에 실제 백업 파일이 생성되었나 확인해 보시기 바랍니다.

⑤ SQLWORLD 백업 장치의 [등록정보]를 열어 [내용보기] 버튼을 누르면 아래 [그림 4]와 같이 백업 받은 히스토리가 표시됩니다.


[그림 4]

[실습 1] 다음을 실습해 보시기 바랍니다.

위 과정을 이용하여 같은 데이터베이스(예제의 경우 sqlworld)를 동일한 백업장치(예제의 경우 SQLWORLD)에 여러번 백업을 받아 보시기 바랍니다. 백업을 받는 과정에서 [그림 3]의 "덮어쓰기" 부분을 바꾸어 가면서 백업을 받아 보시기 바랍니다. 그리고 [그림 4]와 같이 백업 히스토리를 확인해 보시기 바랍니다. "덮어쓰기"를 어떻게 선택하냐에 따라 변화된 히스토리를 볼 수 있을 것입니다.

2) EM에서 물리적인 파일을 이용한 전체 백업

위 백업 방법과 대부분 동일 합니다. 단 [그림 2]에서 "백업 장치" 대신 "파일 이름" 부분에 원하는 물리적인 파일의 경로와 파일의 이름을 설정해 주면 됩니다. 자세한 설명은 생략하도록 하겠습니다. 직접 해보시기 바랍니다.

3) T-SQL 문을 이용한 전체 백업

BACKUP DATABASE 문을 이용해서 백업 장치 또는 물리적인 파일에 직접 백업을 받을 수 있습니다. 몇가지 다양한 예를 들어 보도록 하겠습니다.

[예제 1]

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH INIT

o sqlworld 데이터베이스를 SQLWORLD 라는 백업 장치로 백업을 받습니다.
o WITH INIT 옵션은 기존의 백업 내용이 있으면 덮어 쓰라는 설정입니다.

[예제 2]

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH NOINIT

o sqlworld 데이터베이스를 SQLWORLD 라는 백업 장치로 백업을 받습니다.
o WITH NOINIT 옵션은 기존의 백업 내용을 보존하고 거기에 추가하여 백업 받으라는 설정입니다. 결국 백업 파일의 사이즈는 증가하게 됩니다. INIT 이나 NOINIT을 설정하지 않으면 NOINIT이 기본으로 적용됩니다.

[예제 3]

USE Master
GO

BACKUP DATABASE sqlworld TO DISK = 'E:\Data\sqlworld.bak' WITH NOINIT

o sqlworld 데이터베이스를 E:\Data\sqlworld.bak 라는 물리적인 파일로 백업을 받습니다.
o 앞의 [예제 1]과 [예제 2]와는 다르게 TO 대신 TO DISK 로 바뀌었음을 숙지하시기 바랍니다.

BACKUP DATABASE 에 대한 자세한 설명은 온라인 설명서(Books Online)을 통해 필히 확인하시기 바랍니다. 다양한 옵션들이 제공됩니다. 물론 이들이 자주 사용되는 옵션은 아니지만 이런것도 있구나..라고 확인은 해보시기 바랍니다. 다음 강좌에서는 전체 백업 받은 것을 복구하는 과정을 살펴보도록 하겠습니다.

========================================================================================

Full Backup Restore

========================================================================================

1. 데이터베이스 복원(Restore)이란?

데이터베이스 복원이란 백업받은 것을 사용가능한 데이터베이스로 원위치 시키는 작업을 이야기 합니다. 데이터베이스를 운영하는 동안에 한번도 복원을 할 일이 없다면 좋겠지만 분명 언젠가는 복원을 해야하는 경우가 발생하므로 그 방법을 미리 알고 있어야 합니다. 특히 백업받은 내용이 정확한지 혹은 백업받은 내용이 물리적으로 손상되지는 않았는지 모의 복원을 통해 확인해보는 것도 중요하다고 생각합니다. 복원 방법을 전혀 모르는 상태에서 데이터베이스에 심각한 문제가 생겼을 때 백업 파일을 가지고 발만 동동 구르는 일이 없어야 하겠습니다. 데이터베이스 복원을 하게 되는 경우를 찾아본다면 다음과 같지 않을까 생각합니다.

o 데이터베이스에 심각한 문제가 발생하여 복원을 통한 복구가 불가피한 경우
o 다른 서버에서 백업받은 내용을 새로운 서버에 복원해야 하는 경우
o 백업받은 내용을 가지고 실제 데이터베이스와 비슷한 테스트용 데이터베이스를 만들고자 하는 경우

2. 전체 백업을 이용한 데이터베이스 복원 작업

바로 이전의 강좌에서 우리는 sqlworld 데이터베이스를 전체 백업 받았습니다. 이 전체 백업을 이용해서 데이터베이스 복원하는 방법을 살펴보도록 하겠습니다. 나중에 살펴보도록 하겠지만 차등 백업이나 트랜잭션 백업을 받은 경우의 데이터베이스 복원은 더 복잡합니다.

이 강좌에서는 다음의 두가지 방법을 이용한 데이터베이스 복원 방법을 살펴보도록 하겠습니다.

o 데이터베이스가 연결되어 있는 경우 EM에서 데이터베이스 복원
o 데이터베이스가 연결되어 있지 않는 경우 EM에서 데이터베이스 복원
o T-SQL 문을 이용한 데이터베이스 복원

1) 데이터베이스가 연결되어 있는 경우 EM에서 데이터베이스 복원

① 아래 [그림 1]와 같이 sqlworld 데이터베이스를 선택한 상태에서 [도구] 메뉴에서 "데이터베이스 복원(R)" 을 선택하시면 데이터베이스 복원을 위한 대화창이 표시됩니다.


[그림 1]

② [그림 2]와 같은 대화창이 표시되면 [도움말] 버튼을 눌러 각 항목에 대한 의미를 살펴보시기 바랍니다. 빨간색 부분에서 복원할 백업내역을 선택하고 [확인] 버튼을 누르면 복원이 진행됩니다.


[그림 2]

2) 데이터베이스가 연결되어 있지 않는 경우 EM에서 데이터베이스 복원

① 아래 [그림 3]을 보시면 sqlworld 데이터베이스가 제거된 상태입니다. 이 상태에서 복구를 하는 방법은 약간 다릅니다. 위의 방법과 동일하게 [도구] 메뉴에서 "데이터베이스 복원(R)" 을 선택하시면 데이터베이스 복원을 위한 대화창이 표시되나 [그림 2]와 같이 sqlworld 데이터베이스에 대한 백업 내역이 표시되지 않습니다.


[그림 3]

② [그림 4]와 같이 대화창이 표시되면 "데이터베이스로 복원" 부분에 sqlworld라고 입력하고 [장치내용]을 선택하고 [장치선택] 버튼을 누르면 [그림 5]와 같이 백업 장치나 백업 파일을 선택하는 대화창이 표시됩니다.


[그림 4]

③ [그림 5]와 같이 대화창이 표시되면 [추가] 버튼을 눌러 표시되는 "복원할 위치 선택" 창에서 SQLWORLD 백업장치를 선택하면 됩니다. 백업 장치가 아니고 물리적인 파일인 경우는 "파일이름" 부분을 선택하고 물리적인 파일을 지정하시면 됩니다.


[그림 5]

④ [그림 6]은 백업 장치 선택이 끝난 화면입니다. 이 화면에서 [내용보기] 버튼을 누르면 백업 내역이 표시되며 이 중에서 복원하고자 하는 시점의 백업 내역을 선택하시면 됩니다.


[그림 6]

3) T-SQL 문을 이용한 데이터베이스 복원

RESTORE DATABASE 문을 이용해서 백업 장치 또는 물리적인 파일로부터 데이터베이스를 복원 할 수 있습니다.

[예제 1]

USE Master
GO

RESTORE DATABASE sqlworld FROM SQLWORLD

o sqlworld 데이터베이스를 SQLWORLD 라는 백업 장치로부터 복원합니다.

[예제 2]

USE Master
GO

RESTORE DATABASE sqlworld FROM DISK = 'E:\Data\sqlworld.bak'

o sqlworld 데이터베이스를 E:\Data\sqlworld.bak 라는 물리적인 파일에서 직접 복원 합니다.

RESTORE DATABASE 에 대한 자세한 설명은 온라인 설명서(Books Online)을 통해 필히 확인하시기 바랍니다. 다양한 옵션들이 제공됩니다. 물론 이들이 자주 사용되는 옵션은 아니지만 이런것도 있구나..라고 확인은 해보시기 바랍니다. 다음 강좌에서는 차등 백업과 트랜잭션 백업에 대하여 살펴보도록 하겠습니다.

========================================================================================

Differential Backup/Restore

========================================================================================

1. 차등 백업(Differential Backup)의 특징

데이터베이스 차등 백업이란 전체 백업(Full Backup) 이후에 변경된 데이터만 백업받는 방법입니다. 예를 들어서 현재 100GB 정도의 데이터베이스가 있고 어제 저녁에 전체 백업을 받았다고 가정 하겠습니다. 오늘 하루 동안 입력된 데이터가 1,000건 정도 있다고 했을 때 가장 효과적인 백업(트랜잭션 백업을 제외하고)은 오늘 변경된 1,000 건의 데이터에 대한 백업만 받는 것입니다. 이후에 문제가 발생하게 되면 어제 받은 전체 백업을 복원하고 오늘 추가로 백업 받은 변경분 백업만 이어서 복원하게 되면 전체 데이터가 복원됩니다.

그래서 차 등백업이 효과적인 경우는 전체 데이터베이스 사이즈가 너무 커서 전체 백업을 받기에 너무 부담이 되는 경우입니다. 단지 변경 내용만 백업 받게 되면 짧은 시간에 백업을 받을 수 있어 효과적입니다. 중요한 것은 차등 백업만 있으면 아무 의미가 없다는 것입니다. 전체 백업 받은 것이 있어야 차등 백업이 의미가 있습니다. 다시 말하면 문제가 발생하여 데이터베이스 복원을 해야 하는데 차등 백업 데이터는 있는데 전체 백업 데이터가 없다면 복원이 불가능하게 됩니다.

혼동하기 쉬운 차등 백업의 특징이 있습니다. 차등 백업은 전체 백업이 이루어지고 난 이후에 변경된 내용을 백업 받는다고 했습니다. 이 사실을 정확히 이해 하셔야 합니다. 다음의 가정을 세우도록 하겠습니다.

고객 테이블에 홍길동 고객정보추가
전체 백업
고객 테이블에 안경태 고객정보 추가
차등 백업
고객 테이블에 김치국 고객정보 추가
차등백업
문제 발생

이렇게 문제가 발생 한 경우 데이터베이스 복원 작업을 하려고 합니다. 과연 이때 필요한 백업 데이터는 어떤것들 일까요?

위 경우 ④ 번의 차등 백업은 안경테 고객의 데이터를 가지고 있습니다. 그리고 ⑥ 번의 차등 백업은 김치국 고객의 정보 뿐만 아니라 안경태 고객의 정보도 가지고 있습니다. 왜냐하면 전체 백업 이후의 변경 데이터를 가지고 있기 때문입니다. 그래서 복원을 원한다면 전체 백업을 복원 한 후 ⑥ 번의 차등 백업을 복원 하면 데이터베이스 복원이 이루어지게 되는 것입니다.

2. 차등 백업 수행

1) EM에서의차등 백업

차등 백업을 받는 방법은 전체 백업을 받는 과정과 동일 합니다. 단지 아래 [그림 1]과 같이 백업 방법을 '데이터베이스 - 차등'으로 선택만 하시면 됩니다. 각 항목들의 의미는 전체 백업과 동일합니다.


[그림 1]

2) T-SQL 문을 이용한 전체 백업

BACKUP DATABASE 문을 이용해서 전체 백업은 물론 차등 백업을 수행 할 수 있습니다. 테이블을 하나 만들어 전체 백업과 차등 백업을 수행하고 그 결과를 보도록 하겠습니다.

[예제 1] Test1 테이블 만들기

CREATE TABLE Test1
(
col1 char(05),
col2 int
)
GO

o 간단한 구조의 테이블 Test1 을 만들었습니다.

[예제 2] 샘플 데이터 추가

INSERT INTO Test1 VALUES('AAAAA',10)
INSERT INTO Test1 VALUES('BBBBB',20)
INSERT INTO Test1 VALUES('CCCCC',30)

o 3개의 레코드를 추가 하였습니다.

[예제 3] 전체 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH INIT

o sqlworld 데이터베이스를 예전에 만든 백업 장치인 SQLWORLD에 전체 백업을 받았습니다.

[예제 4] 샘플 데이터 추가

INSERT INTO Test1 VALUES('DDDDD',40)
INSERT INTO Test1 VALUES('EEEEE',50)
INSERT INTO Test1 VALUES('FFFFF',60)

o 다시 3개의 레코드를 추가 하였습니다.

[예제 5] 첫번째 차등 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH DIFFERENTIAL, NOINIT

o 첫번째 차등 백업을 수행했습니다. NOINIT을 준 이유는 앞에서 백업받은 전체 백업을 보존하기 위해서 입니다. INIT으로 하게 되면 전체 백업 내용이 사라집니다.

[예제 6] 샘플 데이터 추가

INSERT INTO Test1 VALUES('GGGGG',70)
INSERT INTO Test1 VALUES('HHHHH',80)
INSERT INTO Test1 VALUES('IIIII',90)

o 다시 3개의 레코드를 추가 하였습니다.

[예제 7] 첫번째 차등 백업 수행

USE Master
GO

BACKUP DATABASE sqlworld TO SQLWORLD WITH DIFFERENTIAL, NOINIT

o 두번째 차등 백업을 수행했습니다.

3. 차등 백업으로 부터의 데이터베이스 복원

[예제 1] 에서 부터 [예제 7]까지의 과정에서 몇가지 데이터의 변화가 있었고 우리는 전체 백업 한번과 두번의 차등 백업의 과정으로 데이터베이스를 백업 받은 상태입니다. 이 시점에서 문제가 발생하여 sqlworld 데이터베이스를 복원해야 한다고 가정을 하고 복원 작업을 하도록 하겠습니다.

전체 백업으로 부터 복원하는 방법을 이전의 강좌에서 배웠습니다. 동일한 방법으로 sqlworld 데이터 베이스 복원을 시도하게 되면 아래 [그림 2]와같은 화면이 표시됩니다. 빨간색 부분을 보면 위에서 우리가 시도한 3번의 백업 히스토리가 보입니다. 그 중에서 파란색 부분은 두번의 차등 백업 히스토리입니다. [그림 2]에서는 맨 처음 전체 백업과 마지막 차등 백업이 선택되어 있습니다. 이때 전체 백업을 선택하지 않으려고 해도 할 수가 없습니다. 왜냐하먼 차등 백업은 전체 백업 내용이 복원 되어야 의미가 있기 때문입니다.


[그림 2]

위 [그림 2]의 상태에서 [확인] 버튼을 눌러 복원을 하면 전체 데이터가 복원 됩니다. 만일 전체 백업 내용과 첫번째 차등 백업 내용을 선택하고 복원을 하게 되면 Test1 테이블에는 6개의 레코드만 존재하는 상태가 됩니다. 마지막 입력된 3개의 레코드는 복원이 안되기 때문입니다.

========================================================================================

데이터베이스 옵션을 이용한 트렌젝션 로그제어

========================================================================================

1. 트랜잭션(Transaction) 이란?

트랜잭션(Transaction)이란 무언인가에 대하여 다음과 같이 온라인설명서에서는 이야기 하고 있습니다.

트랜잭션은 하나의 논리적 작업 단위로 수행되는 일련의 작업입니다. 작업의 논리적 단위는 ACID(원자성, 일관성, 격리성 및 영속성) 속성이라고 하는 네 가지 속성을 통해 트랜잭션으로서의 자격을 부여합니다.

원자성

트랜잭션은 더 이상 분류할 수 없는 작업 단위여야 하며 모든 데이터 수정 작업이 수행되거나 하나도 수행되지 말아야 합니다.

일관성

완료된 트랜잭션의 모든 데이터는 일관적이어야 합니다. 관계형 데이터베이스에서는 트랜잭션 수정에 모든 규칙을 적용하여 모든 데이터 무결성을 유지해야 합니다. 트랜잭션 마지막에는 B-tree 인덱스 또는 이중 연결 목록 등 모든 내부적 데이터 구조를 반드시 수정해야 합니다.

격리성

동시 트랜잭션에 의한 수정은 다른 동시 트랜잭션에 의한 수정과 격리되어야 합니다. 트랜잭션에서 다른 동시 트랜잭션이 수정하기 전 상태의 데이터를 보거나, 두 번째 트랜잭션이 완료된 후의 데이터를 볼 수는 있지만 중간 상태는 볼 수 없습니다. 결과적으로 시작 데이터를 다시 로드하고 일련의 트랜잭션을 재생하여 원래 트랜잭션이 수행된 후의 상태로 데이터를 되돌릴 수 있는데 이를 순차성이라고 합니다.

영속성

트랜잭션이 완료되고 나면 그 영향이 영구적으로 시스템에 적용됩니다. 수정은 시스템에 오류가 발생한 경우에도 지속됩니다.

이해하기가 상당히 어렵습니다.

로그 백업을 설명하기 위한 것이므로 트랜잭션에 대한 자세한 설명은 하지 않도록 하겠습니다. 이 강좌에서는 트랜잭션이란 데이터를 변경시키는 일련의 행위라고 생각해주시면 되겠습니다. 즉 테이블의 데이터를 수정(Update)하거나 삭제(Delete)하거나 추가(Insert)시키는 행위를 말합니다.

2. 트랜잭션 로그 백업 (Transaction Log Backup) 이란?

트랜잭션 로그 백업(일반적으로 로그 백업이라고 합니다)은 실제 데이터를 백업 받는게 아니고 데이터를 변경시킨 행위 자체를 백업받는것을 이야기 합니다. 예를 들어 고객 테이블에 '홍길동' 고객의 정보가 있는데 이 '홍길동' 고객이 이름이 '홍기동'으로 변경되었다고 한다면 데이터백업은 '홍기동' 이라는 데이터를 백업 받는 것이고 로그 백업은 '홍길동'의 이름이 '홍기동'으로 바뀌었다는 사실을 백업받은 것입니다. 만일 데이터에 문제가 생기는 이름을 바꾼 행위를 재수행 함으로써 데이터를 복원하게 됩니다.

SQL 서버는 관리자가 로그를 지우라는 설정을 하지 않는 한 문제 발생시 트랜잭션을 취소하거나 데이터베이스에 반영되지 않은 트랜잭션을 반영하기 위한 목적으로 로그를 남기게 됩니다. 이렇게 남는 로그는 관리자 입장에서 볼 때는 불의의 사태로부터 데이터를 복구 시킬 수 있는 중요한 수단이 됩니다.

또한 로그 백업은 데이터베이스의 사이즈가 너무 커서 데이터베이스 전체를 백업받기가 어려울 때 데이터의 손실을 막기 위한 또다른 백업 방법으로서 사용됩니다.

3. 로그에 대한 데이터베이스 설정

다음과 같은 내용을 데이터베이스 설정을 통하여 구현할 수 있습니다.

o트랜잭션 로그가 쌓이지 않게 하기
o 트랜잭션 로그가 쌓이게 하기
o 로그 파일의 사이즈가 무작정 커지지 않게 하기

1) 트랜잭션 로그가 쌓이지 않게 하기

트랜잭션 로그가 쌓이지 않게 하는 것은 실제 업무에서는 사용하지 않는게 좋습니다. 로그가 쌓이지 않게 하면 로그 파일이 무작정 증가하는 사태를 막을 수는 있으나 만일의 경우에 중요한 복구가 불가능 할 수 있기 때문입니다. 제 개인적인 생각으로는 시스템을 개발하는 동안에 테스트용 데이터가 기록되는 과정에서는 로그가 쌓이지 않게 설정을 해서 작업을 하고 실제 업무에 반영이 되는 시점에서는 로그가 쌓이게 하는게 좋습니다. 로그가 쌓이게 되면 관리자는 로그 백업을 이용해서 로그 사이즈가 계속 증가하는 사태를 막아야 합니다. (이에 대해서는 뒤에서 살펴보도록 하겠습니다)

로그가 쌓이지 않게 하기 위해서는 데이터베이스 복구 모델을 '단순(Simple)'로 하면 됩니다. SQL 서버 7.0의 경우는 데이터베이스 옵션 중에서 'trunc. log on chkpt' 옵션이 있는데 SQL 서버 2000에서는 복구모델을 이용해서 이 기능을 대신하게 됩니다. 물론 이전 버젼과의 호환을 위해서 'trunc. log on chkpt' 을 지정해주어도 되나 결과는 같습니다.

① 해당 데이터베이스 위해서 마우스 오른쪽 버튼을 눌러 표시되는 단축메뉴에서 [등록정보]를 선택하여 데이터베이스 등록 정보를 표시합니다.

② 다음 [그림 1]은 데이터베이스 옵션에서 복구모델을 '단순(Simple)'로 한 예입니다.


[그림 1]

복구 모델은 '단순' 으로 하게되면 커밋(Commit) 된 트랜잭션의 로그는 자동으로 제거되어 로그가 쌓이지 않게 됩니다.

만일 데이터베이스 복구 모델을 QA에서 변경하고자 하는 경우는 다음과 같이 ALTER DATABASE 를 이용하시면 됩니다.

USE Master
GO

ALTER DATABASE Sqlworld SET RECOVERY SIMPLE

o SIMPLE 위치에는 FULL 또는 BULK_LOGGED 가 지정될수 있습니다.

※ 복구 모델에 대한 자세한 설명을 원하시면 온라인설명서(Books Online)에서 '복구 모델'을 찾아보시기 바랍니다.

2) 트랜잭션 로그가 쌓이게 하기

로그가 쌓이게 하려면 위 [그림 1]에서 복구 모델을 '단순'이 아닌 '최대' 또는 '대량로그' 로 하시면 됩니다. 로그가 쌓이게 되면 로그가 증가함에 따라 로그 파일이 자동으로 증가하게 됩니다. (물론 데이터베이스 생성시 자동증가로 설정한 경우) 그러므로 이를 방치하게 되면 로그 파일이 무작정 증가하여 전체 하드디스크 공간을 차지하게 되는 경우가 있습니다. 실제 데이터베이스의 사이즈는 500MB인데 로그 사이즈는 50GB가 되는 경우도 있습니다.

로그 파일의 사이즈가 무작정 증가하지 않도록 하기 위해서는 정기적으로 로그 파일을 백업받아 주어야 합니다. 로그 백업은 만일의 경우에 대비해서 로그를 별도로 기록해주는 목적과 로그 사이즈를 줄여주는 목적 두가지를 가지고 있습니다.

로그 백업에 대해서는 다음 강좌에서 곧바로 다룰 것입니다. 우선 로그 사이즈 증가를 방지하기 위한 데이터베이스 옵션 설정에 대하여 살펴보도록 하겠습니다.

3) 로그 파일의 사이즈가 무작정 커지지 않게 하기

로그가 무작정 쌓이는 것은 백업을 통해서 방지 할 수 있다고 했습니다. 하지만 엄청난(?) 트랜잭션에 의해 발생된 로그로 인하여 로그 파일의 사이즈가 커진 상태에서 로그를 백업 받게 되면 로그는 줄어드나 커져버린 로그 파일의 사이즈는 별도의 설정이 없으면 자동으로 줄어들지 않게 됩니다.

로그 파일의 사이즈를 SQL 서버가 수시로 확인하여 불필요하게 커진 경우 그 안에 로그가 없으면(백업으로 인해) 로그 파일의 사이즈를 자동으로 줄어들게 할 수 있습니다. 이러한 설정은 데이터베이스의 '자동 축소' 옵션을 이용함으로써 가능합니다. 아래 [그림 2]은 '자동축소' 옵션을 선택한 화면의 예입니다.


[그림 2]

4. 정리

다음의 내용을 필히 기억해 주시기 바랍니다.

o 트랜잭션 로그는 만일의 사태에서 데이터 복구를 가능하게 하는 중요한 의미를 가지고 있어 함부로 지워서는 안됩니다.
o 실제 업무에서 데이터베이스를 사용 하는 경우는 데이터베이스 복구 모델을 '최대' 또는 '대량로그'로 설정하여 로그가 지워지지 않고 쌓이게 합니다.
o 쌓이는 로그를 정기적으로 백업 받아 로그가 꽉 차는 사태를 방지해야 합니다.
o 백업 받아 빈공간이 많아진 로그 파일을 자동으로 축소하기 위해서는 데이터베이스 옵션 중에서 '자동축소'를 선택하시면 됩니다.
o 자동 축소가 아닌 경우는 DBCC SHRINKDATABASE 또는 DBCC SHRINKFILE을 이용해서 수작업으로 축소시켜 주어야 합니다.

현재 자신이 사용하고 있는 데이터베이스의 옵션을 살펴보고 복구모델은 어떻게 되어 있는지, 로그 백업은 어떻게 이루어지고 있는지 확인을 해보시기 바랍니다.

다음 강좌에서는 로그 백업을 받는 방법을 살펴보고 증가된 로그를 백업받고 축소시켜주는 내용을 실습해 보고자 합니다.

========================================================================================

트렌젝션로그 줄이기 테스트

========================================================================================

1. 테스트를 위한 임시 테이블 만들기와 데이터 추가하기

예전의 테스트 처럼 sqlworld 데이터베이스를 이용하여 실제 상황을 재현해 보도록 하겠습니다. 현재 sqlworld 데이터베이스의 옵션은 다음과 같습니다.

o 데이터베이스 복구모델 : 최대
o 자동 축소기능 : 사용안함

다음 [그림 1]은 현재 sqlworld의 데이터베이스와 로그 사이즈를 보여줍니다.


[그림 1]

우선 현재의 sqlworld 데이터베이스를 백업 받도록 하겠습니다.(모든 백업의 기본은 전체 백업입니다)

USE Master
GO

BACKUP DATABASE sqlworld TO DISK = 'E:\Data\sqlworld.bak'

1) 테이블 만들기

다음과 같이 테스트 테이블 Test_Log를 만들도록 하겠습니다.

USE sqlworld
GO

CREATE TABLE Test_Log
(
col1 int PRIMARY KEY,
col2 char(1000)
)

다음과 같이 스크립트를 이용해서 레코드를 추가하도록 하겠습니다.

SET NOCOUNT ON
GO

DECLARE @num int
SET @num = 1
WHILE @num < 5001
BEGIN
INSERT INTO Test_Log VALUES(@num, REPLICATE('A',1000))
SET @num = @num + 1
END

위 작업을 통해서 오천개 정도의 레코드가 Test_Log 테이블에 추가되었습니다. 이로 인하여 sqlworld 데이터 사이즈와 로그 사이즈가 증가했습니다. 아래 [그림 2]가 그 내용을 확인해주고 있습니다.


[그림2]

만일 sqlworld 데이터베이스 복구 모델이 '단순' 이었다면 위와 같은 작업이 완료가 되면 로그가 자동으로 제거되어 [그림 2] 처럼 로그 사이즈가 증가하지 않을 것입니다.(이 내용이 잘 이해되지 않으면 바로 이전의 강좌를 다시한번 읽어보시기 바랍니다)

2) 데이터를 변경하여 데이터와 로그 사이즈 증가시키기

다음과 같이 데이터를 변경하고 삭제하여 로그 사이즈를 증가시켜 보겠습니다.

UPDATE Test_Log Set col2 = REPLICATE('B',1000) WHERE col1 < 1000
GO
DELETE FROM Test_Log WHERE col1 < 2000
GO
DELETE FROM Test_Log WHERE col1 < 4000

위 작업을 수행하니 Test_Log 테이블의 데이터 변경에 대한 로그와삭제에 대한 로그가 증가함에 따라 sqlworld 데이터베이스의 사이즈는 다음 [그림 3]과 같이 변하였습니다.


[그림3]

로그 파일은 0.99 MB에서 6.74 MB 로 사이즈가 증가함을 알 수 있습니다.

이처럼 트랜잭션이 발생함에 따라 로그가 계속 쌓이면서 로그 파일의 사이즈가 계속 증가함을 알 수 있습니다. 이제 확인할 내용은 로그 백업을 하면 로그가 줄어드는지, 그리고 로그 파일의 사이즈는 어떻게 되는지 하는 것입니다.

2. 트랜잭션 로그 백업을 통한 로그 줄이기

로그 백업은 예전에 배운 데이터베이스 백업과 비슷한 방법으로 이루어 집니다. EM을 통해서 할 수도 있고 QA에서 직접 BACKUP LOG 문을 이용하여 백업 받을 수도 있습니다. 이 테스트에서는 QA를 이용하여 현재 sqlworld 데이터베이스의 로그를 백업받도록 하겠습니다.

USE Master
GO

BACKUP LOG sqlworld TO DISK = 'E:\Data\sqlworld_log.bak'

수행하는 방법은 BACKUP DATABASE 문과 비슷합니다.

만일 로그를 백업 받지는 않고 단지 현재의 로그만 지우고 싶으면 다름과 같이 TRUNCATE_ONLY 옵션을 사용하면 됩니다.

USE Master
GO

BACKUP LOG WITH TRUNCATE_ONLY

이렇게 로그를 백업 받은 후의 sqlworld 데이터베이스의 사이즈를 보니 다음 [그림 4]와 같이 변한 것을 볼 수 있습니다.


[그림4]

로그 사이즈가 3.64 MB 에서 1.84 MB로 줄어 들었습니다. 하지만 로그 파일의 사이즈는 아직도 6.74 MB로서 원래 사이즈를 그대로 유지하고 있습니다. 결국 4.9 MB의 빈 공간이 놀고(?) 있게 됩니다.

3. DBCC SHRINKDATABASE을 이용한 로그파일 사이즈 줄이기

DBCC SHRINKDATABASE 을 이용해서 수작업으로 비어있는 로그 사이즈를 없애서 로그 파일의 사이즈를 축소해 보도록 하겠습니다.

USE Master
GO

DBCC SHRINKDATABASE(Sqlworld)

결과는 다음 [그림 5]와 같이 변한것을 알 수 있습니다.


[그림5]

로그 파일의 사이즈가 [그림 4]와 비교 할 때 6.74 MB에서 2.49 MB로 줄어든 것을 알 수 있습니다. DBCC SHRINKDATABASE에 의해 줄어드는 로그 파일의 사이즈는 실제 데이터 파일의 빈 공간이 많을 수록 효과가 좋습니다. DBCC SHRINKDATABASE 또는 DBCC SHRINKFILE에 대한 내용은 이전의 데이터베이스에 대한 강좌를 참고해 주시기 바랍니다.

4. 정리

로그 파일 사이즈 문제를 가지고 질문을 하시는 경우가 상당히 많습니다. 지금까지 설명드린 내용이 도움이 되었으면 합니다. 데이터베이스 관리자는 항상 로그 파일에 대한 관심을 가지고 모니터링을 해야 합니다. 하드디스크의 여유 공간은 충분한지도 수시로 확인하셔야 합니다. 그렇지 않으면 TempDB가 꽉 찼다는 등의 오류가 발생하게 됩니다.

========================================================================================

백업과 복원 정리

========================================================================================

이번 강좌에서는 복원에 대한 전체적인 내용을 살펴 보도록 하겠습니다. 즉, 전체 백업과 차등 백업 및 로그 백업을 받은 상태에서 복원을 하는 순서와 방법을 살펴보게 됩니다.

1. 테스트를 위한 임시 테이블 만들기와 데이터 추가하기

우선 현재의 sqlworld 데이터베이스에 테스트 테이블을 만들고 백업을 받도록 하겠습니다.

1) 테이블 만들기

다음과 같이 테스트 테이블 Test_Log를 만들도록 하겠습니다.

USE sqlworld
GO

CREATE TABLE Test1
(
col1 int,
col2 char(05)
)
GO

2) 데이터 추가하기

다음과 같이 스크립트를 이용해서 레코드를 추가하도록 하겠습니다.

INSERT INTO Test1 VALUES(1,'AAAAA')
INSERT INTO Test1 VALUES(2,'BBBBB')
INSERT INTO Test1 VALUES(3,'CCCCC')
INSERT INTO Test1 VALUES(4,'DDDDD')
INSERT INTO Test1 VALUES(5,'EEEEE')
GO

위 작업을 통해서 다섯개의 레코드가 Test1 테이블에 추가되었습니다.

2. 데이터베이스 백업

1) 데이터베이스 백업을 위한 백업 장치 만들기

다음과 같이 데이터베이스를 백업 받기 위한 백업 장치를 만들도록 하겠습니다.

EXEC sp_addumpdevice 'disk', 'sqlworld_dump', 'E:\Data\sqlworld_dump.bak'
GO

※ 백업 장치 만드는 방법에 대해서 이해하고 있지 못하신 분들은 예전에 진행된 백업 장치 만들기 강좌를 참고하여 주시기 바랍니다.

2) 데이터베이스 전체 백업

앞에서 만든 sqlworld_dump 백업 장치에 현재까지의 sqlworld 데이터베이스를 전체 백업 받도록 하겠습니다.

BACKUP DATABASE sqlworld TO sqlworld_dump WITH INIT
GO

이 전체 백업 작업으로 인해서 다섯개의 레코드가 추가된 Test1 테이블이 백업된 것을 알 수 있습니다.

※ 전체 백업에 대해 이해하고 있지 못하신 분들은 예전에 진행된 전체 백업 받기강좌를 참고하여 주시기 바랍니다.

3) 데이터 추가하기

다음과 같이 스크립트를 이용해서 다섯개의 레코드를 더 추가하도록 하겠습니다.

INSERT INTO Test1 VALUES(6,'FFFFF')
INSERT INTO Test1 VALUES(7,'GGGGG')
INSERT INTO Test1 VALUES(8,'HHHHH')
INSERT INTO Test1 VALUES(9,'IIIII')
INSERT INTO Test1 VALUES(10,'JJJJJ')
GO

위 작업을 통해서 다섯개의 레코드가 Test1 테이블에 추가되었습니다. 이제 Test1 테이블에는 col1 컬럼이 1 에서 10까지의 값을 갖는 열개의 레코드가 기록되어 있습니다.

4) 데이터베이스 차등 백업

앞에서 만든 sqlworld_dump 백업 장치에 현재까지의 sqlworld 데이터베이스를 차등 백업 받도록 하겠습니다.

BACKUP DATABASE sqlworld TO sqlworld_dump WITH DIFFERENTIAL
GO

이 차등 백업에 의해 앞의 3) 번에서 이루어진 다섯개의 레코드를 추가한 내용이 백업되었습니다.

※ 전체 백업에 대해 이해하고 있지 못하신 분들은 예전에 진행된 차등백업 받기 강좌를 참고하여 주시기 바랍니다.

5) 데이터 또 추가하기

다음과 같이 스크립트를 이용해서 다섯개의 레코드를 더 추가하도록 하겠습니다.

INSERT INTO Test1 VALUES(11,'KKKKK')
INSERT INTO Test1 VALUES(12,'LLLLL')
INSERT INTO Test1 VALUES(13,'MMMM')
INSERT INTO Test1 VALUES(14,'NNNNN')
INSERT INTO Test1 VALUES(15,'OOOOO')
GO

위 작업을 통해서 다섯개의 레코드가 Test1 테이블에 추가되었습니다. 이제 Test1 테이블에는 col1 컬럼이 1 에서 10까지의 값을 갖는 열개의 레코드가 기록되어 있습니다.

6) 데이터베이스 차등 백업

앞에서 만든 sqlworld_dump 백업 장치에 현재까지의 sqlworld 데이터베이스를 차등 백업 받도록 하겠습니다.

BACKUP DATABASE sqlworld TO sqlworld_dump WITH DIFFERENTIAL
GO

이 차등 백업에 의해 앞의 3)번과 5) 번에서 이루어진 열개의 레코드를 추가한 내용이 백업되었습니다.

7) 데이터 변경

다음과 같이 스크립트를 이용해서 col1 컬럼이 6보다 작은 다섯개의 레코드에 대하여 col2 컬럼을 전부 'XXXXX' 로 변경하였습니다.

UPDATE Test1 SET col2 = 'XXXXX' WHERE col1 < 6
GO

8) 트랜잭션 로그 백업

7) 번에서 이루어진 변경 처리를 로그 백업을 받도록 하겠습니다. 로그 백업을 위해 새로운 백업장치 sqlworld_log_dump 를 만들어 이 장치에 로그를 백업 받도록 하겠습니다.

EXEC sp_addumpdevice 'disk', 'sqlworld_log_dump', 'E:\Data\sqlworld_log_dump.bak'
GO

BACKUP LOG sqlworld TO sqlworld_log_dump WITH INIT
GO

9) 데이터 추가 변경 (문제 발생)

다음과 같이 스크립트를 이용해서 col1 컬럼이 5보다 큰 코드에 대하여 col2 컬럼을 전부 'YYYYY' 로 변경하였습니다.

UPDATE Test1 SET col2 = 'YYYYY'
GO

앗! WHERE 절을 적지 않아서 모든 레코드의 col2 컬럼이 'YYYYY'로 바뀌어 버렸습니다.

3. 현재까지 백업된 내용 정리

지금까지 이루어진 4번의 백업 작업에 의해 Test1 테이블에 대해서는 다음과 같은 내용이 백업되었습니다.

1) 전체 백업 : col1 컬럼에 1 부터 5 까지 다섯개의 레코드
2) 첫번째 차등 백업 : col1 컬럼에 6 부터 10 까지 다섯개의 레코드
3) 두번째 차등 백업 : col1 컬럼에 6 부터 15 까지 열개의 레코드
4) 로그 백업 : col1 컬럼이 6 보다 작은 다섯개의 레코드에 대해 col2 컬럼을 'XXXXX' 로 변경 한 행위

4. T-SQL을 이용한 데이터베이스 복원

현재의 상황에서 앞에서 수행되었던 모든 백업을 복원하여 col2 컬럼이 'YYYYY'로 바뀐 사태를 수습하도록 하겠습니다.

1) 전체 백업 복원

USE master
GO

RESTORE DATABASE sqlworld FROM sqlworld_dump WITH FILE =1, NORECOVERY
GO

o NORECOVERY 옵션으로 전체 백업 받은 내용을 복원 했습니다.
o FILE = 1은 sqlworld_dump 백업 장치에 여러 가지 백업(한번의 전체 백업과 두번의 차등 백업)이 있으므로 이 중에서 첫번째, 즉 전체 백업을 선택한다는 의미입니다.

2) 차등 백업 복원

RESTORE DATABASE sqlworld FROM sqlworld_dump WITH FILE = 3, NORECOVERY
GO

o NORECOVERY 옵션으로 차등백업 받은 내용을 복원 했습니다.
o FILE = 3 은 sqlworld_dump 백업 장치에 여러 가지 백업(한번의 전체 백업과 두번의 차등 백업)이 있으므로 이 중에서 세번째, 즉 두번째의 차등 백업을 선택한다는 의미입니다.
o 결국 첫번째의 차등 백업은 사용될 필요가 없습니다.

3) 로그 백업 복원

RESTORE LOG sqlworld FROM sqlworld_log_dump WITH RECOVERY
GO

o 로그 복원이 복원의 마지막 단계 이므로 RECOVERY 옵션을 사용하였습니다.

5. 과제

다음의 내용을 구현해 보시기 바랍니다.

1) 위에서 T-SQL로 구현한 복원을 EM(Enterprise Manager)를 이용해서 구현해 보세요.
2) 첫번째 차등 백업, 즉 col1 컬럼이 1부터 10까지만 가지고 있는 내용을 복원해 보세요.

부족한 부분은 관련된 강좌를 다시한번 확인하신 후 처리해 보시기 바랍니다.

Posted by 1010
02.Oracle/DataBase2010. 10. 29. 11:17
반응형
Posted by 1010
02.Oracle/DataBase2010. 8. 20. 14:39
반응형
SELECT  NULL + 100 FROM DUAL; 의 결과는 무엇일까요?

NULL과 사직연산을 하게되면 결과 값은  NULL이 됩니다.

그래서 SELECT NVL(NULL, 0) + 100 FROM DUAL; 과 같이 NULL 공포에서
벗어 나려고 NVL 함수를 자주 사용하게 됩니다.

근본적으로 컬럼값에 NULL이 없게 NOT NULL로 설계 했다면 NVL를 남발하는 일을
없었겠죠. ㅎㅎ

그리고 또하나 NULL이 포함된 컬럼에 그룹함수( SUM() ) 를 사용하면 어떻게 될까요?

SUM를 포함한 그룹함수에서는 NULL 컬럼을 자동으로 건너띄므로 NULL 값이 있다고
해서 전체 결과가 NULL로 변해 버리지 않습니다. 즉 NVL 함수를 사용할 필요가 없다는
것입니다.

NVL() 도 함수임으로 자주 콜하게 되면 부하가 생기겠죠. 설계에서부터 NULL이 나오지
않게 하고 그룹함수는 NVL를 사용할 필요가 없으니 굳이 넣어서 부하를 줄 필요가 없겠죠. . .


출처 : http://dev4u.tistory.com/184
Posted by 1010
02.Oracle/DataBase2010. 8. 16. 08:41
반응형
http://kr.forums.oracle.com/forums/thread.jspa?threadID=1038232

problem whle starting the SOA server.
게시일: 2010. 3. 3 오후 10:49
 
     
Hi,

I have Installed Oracle SOA suite in a server. I have created a domain and with in that domain, there is Admin server, Soa server and BAM server. They were working fine. But when I tried to re-start them recently , the Admin server was showing the warning

<Mar 3, 2010 10:42:58 PM PST> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "mds-SpacesDS": ORA-28001: the password has expired>

but still I am able to access teh web logic console of the admin server.

When I try to start the SOA server it gives the message

Internal Exception: weblogic.jdbc.extensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired

The same is the case with the BAM server also . The console of BAM server is showing the message

Internal Exception: weblogic.jdbc.extensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: ORA-28001: the password has expired.

I have used SYSTEM user credentials while installaing the SOA-SUITE. I have changed and re-set the password for that user. But That did not help.

can any one please let me know how this issue can be resolved. Please contact me if any more info is needed.

Thanks in advance for your time,
Raj Kumar
Anuj Dwivedi, TCS

글: 2,440
등록일: 08-10-29
Re: problem whle starting the SOA server.
게시일: 2010. 3. 3 오후 11:44   Raja Kumar님의 질문에 답변 Raja Kumar님의 질문에 답변
유용함
      댓글
Hi Raj,

Have you created any connection pool with name "mds-SpacesDS"?

ORA-28001: the password has expired

Above error shows that account of username, used in the DataSource of connection pool "mds-SpacesDS", has expired and password should be changed. After changing the pasword of DB user, mention the same in your Data-Source as well. Update the DBAdapter to refresh the connection pool.

Regards,
Anuj
Raja Kumar

글: 36
등록일: 08-12-04
Re: problem whle starting the SOA server.
게시일: 2010. 3. 4 오전 5:15   Anuj Dwivedi, TCS님의 질문에 답변 Anuj Dwivedi, TCS님의 질문에 답변
 
      댓글
Anuj,

Thanks for the reply.

This connection pool seems to have got created during the installation of SOA-suite.

Can you please tell me how can I findout the username of the Databse for which the password needs to be changed, sothat I can update the pwd and reflect that change in the DB Adpater configuration and the Datasource.

Thanks,
Raj Kumar
Raja Kumar

글: 36
등록일: 08-12-04
Re: problem whle starting the SOA server.
게시일: 2010. 3. 4 오전 6:00   Raja Kumar님의 질문에 답변 Raja Kumar님의 질문에 답변
 
      댓글
Hi,

Posted by 1010
02.Oracle/DataBase2010. 6. 24. 09:44
반응형
ORACLE에서 문자열을 비교하기 위해 Blank-Padded Comparison Semantics 과Nonpadded Comparison Semantics 이라는 방법을 사용한다. 여기에서 주의할 점은 Blank-Padded Comparison Semantics과 Nonpadded Comparison semantics의 결과가 항상 일치하는 것이 아니라는 점이다.

그러면 사례를 통해 두 비교방식에 대하여 알아보도록 하자.

Blank Padded Comparison
Nonpadded Comparison

'ab' > 'aa'
'ab' > 'aa'

'ab' > 'a '
'ab' > 'a '

'ab' > 'a'
'ab' > 'a'

'ab' = 'ab'
'ab' = 'ab'

'a ' = 'a'
'a ' > 'a'


위의 사례를 보면 비교되는 문자열이 Blank를 포함하고 있으면 padding과 non padding이 다른 결과를 나타내고 있다.

1.Blank-Padded Comparison Semantics

비교되는 두 값이 서로 다른 길이를 가질 경우에 길이가 짧은 쪽에 공백을 추가하여 길이를 동일하게 한다.
서로 다른 문자 값이 나타날 때까지 문자 단위로 비교를 수행한다.
서로 다른 값이 나타나면 문자 값이 큰 컬럼이 크다고 판단하고 비교를 종료한다. 그러나 서로 다른 값이 나타나지 않으면 중간에 어떤 유효한 값이 나타날 지를 알 수가 없기 때문에 끝까지 비교를 하게 된다. 만약 끝까지 비교를 하고도 다른 문자가 나타나지 않으면 같다고 판단한다.
Oracle에서 이 비교방식을 사용하는 경우는 다음과 같다.

양쪽 모두가 CHAR 혹은 NCHAR 타입인 경우
양쪽 모두가 문자타입의 상수일 경우
사용자 함수에서 반환된 값
2.Nonpadded Comparison Semantics

서로 다른 문자 값이 나타날 때까지 문자 단위로 비교를 수행한다.
서로 다른 값이 나타나면 문자 값이 큰 컬럼이 크다고 판단하고 비교를 종료한다. 만약 값이 같다면 길이가 짧은 컬럼만큼만 비교한 후 각 컬럼의 길이를 비교하여 길이가 긴 컬럼이 크다고 판단한다.
Oracle에서 이 비교방식을 사용하는 경우는 다음과 같다.

비교되는 값 중에 VARCHAR2 혹은 NVARCHAR2가 있을 경우 

[출처] Oracle의 문자열비교|작성자 짱가

Posted by 1010
02.Oracle/DataBase2010. 6. 16. 10:32
반응형

Ⅰ. Index 

인덱스는 테이블이나 클러스터에서 쓰여지는 선택적인 객체로써, 오라클 데이터베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조입니다. 인덱스는 일련의 엔트리 목록으로 구성되어 있으며, 이러한 엔트리는 테이블의 테이타 행에 사용되는 각각의 키값과 ROWID값을 가집니다. 따라서 특정한 값에 대해 ROWID값을 가지고 접근 하기 때문에 접근속도가 상당히 빠릅니다. 인덱스는 여러 가지 방법으로 구현될 수 있으나 오라클에서는 B*Tree기반의 인덱스를 사용합니다. 왜 이렇게 인덱스에 관해서 장황하게 설명하냐구요? 앞으로 나오는 거의 대부분의 튜닝 과정속에서 index가 중요하게 사용되기 때문입죠. 아울러 어떤이는 “가장 최적의 인덱스를 어떻게 구성할 것인가는 수 많은 애플리케이션을 잘 작성하는 것보다 훨씬중요하다.”라고 하더군요. 인덱스의 ROWID는 16진수 문자열로 표현된 테이블 데이터의 실제 메모리의 물리적인 주소를 저장하고 있는 데이터 타입을 말합니다. 아래는 인덱스를 생성하는 형식입니다.

CREATE [UNIQUE] INDEX index 

        ON table ( 

                column [ASC | DESC], .... 

        ) 

        [CLUSTER cluster] 

        [INITRANS int] 

        [MAXTRANS int] 

        [TABLESPACE tablespace] 

        [STORAGE storage_clause] 

        [PCTFREE int] 

        [NOSORT] 

여기서 column은 인덱스를 생성할 컬럼명을 뜻합니다. 인덱스 생성시 B*Tree의 키 값이 되겠죠,

따라서 SQL문에서 특정 column을 찾고자 할 때 이 키를 가지고 B*Tree 찾게 되므로 중요한 값입니다. 물론 index적용여부 또한 이 키가 결정 할 수도 있으니 키 선정에 많은 신경쓸 필요가 있겠군요. 뒤에서 인덱스 키를 선택하는 방법과 이를 이용한 쿼리 성능 향상 방법에 대해 다룹니다.

따라서 index가 생성되어 있는 경우 이 index를 이용한 검색은 물리주소를 직접 엑세스하기 때문에 일반검색에 비해 훨씬 빠른 속도를 냅니다. 그러니 우리에 목적은 얼마나 잘 이 index를 이용해 검색하느냐가 되겠지요. 그럼 바로 SQL문에서 index를 타지 못하는 경우를 살펴보겠습니다. 여기서 인덱스를 탄다고 하는 말은 인덱스를 이용한 검색이 실행됨을 뜻합니다. 다만 넓은 범위 처리시에는 테이블로의 랜덤 액세스가 증가하여 인덱스를 타는 경우 성능이 저하되기도 합니다. 그러한 경우는 clustering 적용을 검토해 봐야할듯 합니다. 그럼 인덱스를 사용할때 좋은 성능을 내는데도 불구하고 인덱스를 사용하지 못하게 되는 경우를 살펴보겠습니다.

 ◦ 인덱스 사용이 안되는 경우

1) index column이 변형되어 인덱스를 타지 못하는 경우

[예] select * from dept where substr(dname, 1, 3)='abc'; 

여기에서 인덱스로 사용 되어야 할 dname column이 함수로 인해 변형되어, index를 이루는 값을 찾지 못하여 full scan이 발생하는 경우입니다. 여기서 full scan이라함은 테이블의 처음부터 끝까지 순차적인 탐색이 일어나는 것을 뜻합니다. 정확히는 full rage scan이 맞으나 full scan이란 용어도 많이 쓰이므로 구분 없이 쓰겠습니다.

2) index column으로 사용될 column의 값이 부정형인경우 index타지 못한다. 

[예] select * from tmp where job<>'sales'; 

이 경우 역시 B*Tree에서 찾고자 하는 값이 아예 없으므로 인덱스를 타지 못하겠죠.

3)찾을 키가 NULL 혹은 NOT NULL의 경우 index를 타지못한다. 

[예] select * from emp where ename is NOT NULL; 

여기서 NULL인 경우 index는 만들어 지지만 key column엔 첨가되지 못하므로 index를 타지 못합니다, NOT NULL인 경우는 B*Tree에서 찾고자하는 키가 없으므로 역시 index를 타지못합니다. 

4)Optimizer의 취사선택으로 index scan이 발생되지 않는 경우 (‘7890‘만 인덱스로 생성된 경우) 

[예] select * from emp where job like 'ab%' and empno='7890'; 

이 경우는 SQL문이 해석되고 실행되는 과정에서 optimizer가 비용(여기선 탐색시간 혹은 응답시간 등)이 적게드는 키 값을 선택하여 그것을 기본으로 하여 다른 키 값을 찾기 때문에 (이것을 ‘경로를 선택한다’라고 합니다.) 위의 예에선 ‘ab%’에 해당하는 column이 테이블내에서 특정한 부분에 집중되어 있는 경우 optimizer가 이 column을 선택 할 경우 index를 타지 못하게 됩니다.

일단 이러한 경우만 피해간다고 하면 index사용시 상당한 효과를 볼 수 있겠습니다. insert, update, delete시 인덱스를 재구성해야하기 때문이죠 index도 서버에겐 하나의 overhead입니다. 그것을 어떤 상황에 맞게 구성하고 사용하는 것이 중요하겠죠.

 그러면 위와 같은 쿼리문이 꼭 필요한 경우에 인덱스를 적용시키고자 할 경우엔 어떻게 해야 될까요? “인덱스 타도록 강제로 지정해 주면 되지”하시면 정답입니다. 그럼 각각의 경우 어떻게 해결 할지 차례대로 살펴보겠습니다.

 ◦인덱스 미사용 해결

1) index column에 외부적(external)인 변형이 이루어진 경우

◦select * from dept where substr(dname, 1, 3)='abc';

→select * from dept where dname like "abc%";

◦select * from emp where sal*12=1200000;

→select * from emp where sal=1200000/12;

◦select * from emp where TO_CHAR(HIREDATE,'YYMMDD')='940101';

→select * from emp HIREDATE=TO_DATE('940101','YYMMDD');

◦select * from emp where job like 'ab%' and empno='7890';

→??? 앞서 말씀 드렸듯이 이경우는 데이터의 전체적인 분포를 알아야만 optimizer가 어떤 것을 선택 할지 예상이 가능하므로 테이블에 대한 지식이 우선해야 겠습니다.


◦select * from emp where empno between 100 and 200 and NVL(job, 'x')='clerk';

→select * from emp where empno between 100 and 200 and job='clerk';


◦select * from emp where deptno || nob='10salesman'; 

→select * from emp where deptno='10' and job='salesman'; 


[예외] 어디에나 그렇듯이 예외도 있습니다. 여기서 예외란 인덱스를 타지 않도록 만드는 경우가 인덱스를 타는 경우보다 빠른 SQL문을 말합니다. 이러한 방법을 사용하실 때엔 테이블 전체적인 데이터 분포도나 많이 사용되는 쿼리 종류라든지 혹은 자주 검색되는 데이터의 종류 등의 것에 대한 지식이 요구됩니다. 한마디로 테이블을 꿰고 있어야 된다는 말씀. 이러한 경우 index 적용을 피하게 하는 방법을 ‘의도적인 suppressing’ 이라합니다. 

[예]

◦select * from emp where job='manager'; 

→select * from emp where RTRIM(job)='manager'; 

여기서 job이 index로 구성 되있는 경우이고, 사람들이 입력시 왼쪽이나 오른쪽에 공백을 많이 입력하는 경우라면 굳이 index를 타는 것이 full scan보다 빠를 순 없습니다. 따라서 이러한 경우라면 full scan이 빠르겠죠. 


2) index column의 내부적(internal)인 변형시

앞서 살펴보았던 외부적인 변형들의 경우 대개 탐색을 위한 ‘키’값의 변형을 줄이는 방법이 많았던 반면 내부적인 변형은 바로 전에 보았던 suppressing이 주류를 이룹니다. 그럼 예를 보도록 하죠. 

테이블의 구조가 다음과 같다고 하고 아래의 예를 보시기 바랍니다. 

[테이블] 

create table samplet( 

        chr char(10), 

        num nubmer(12,3), 

        var varchar2(20), 

        dat date); 

◦select * from samplet where chr=10; 

→select * from samplet where TO_NUMBER(cha)=10; 

◦select * from samplet where num like '9410%'; 

→select * from samplet where TO_CHAR(num) like '9410%'; 

◦select * from samplet where dat='01-JAN-94'; 

→select * from samplet where dat=TO_DATE('01-JAN-94'); 

왜 설명 안하냐구요? 한번에 몽땅하겠습니다. suppressing의 경우 몇가지 기준이 있습니다. 대개의 경우 아래의 룰을 이용하시면 되겠습니다. 

변경 전 형식 
 변경 후 형식 
 
number=character
 TO_CHAR(number)=character
 
character=number
 TO_NUMBER(character)=number
 
date=character
 date=TO_DATE(character)
 

3) NOT Operator의 경우

◦select 'Not fount!' into :col1 from emp where empno<>'1234'; 

→select 'OK' into:col1 from emp where NOT EXISTS ( 

        select * from emp where empno='1234') 

여기에선 서브쿼리를 이용하여 키를 포함 하는 튜플들을 제외한 값들을 가져오게끔 변형한 예입니다. 이는 검색에 사용되는 키가 not operator인 경우 변형 할 수 있는 한가지 방법이 되겠습니다. 

◦select * from emp where ename like '김%' and job <> 'sales'; 

→(1)select * from emp where ename like '김%‘ 

        MINUS 

        select * from emp b where b.job ='sales'; 

→(2)select * from emp a where a.ename like ‘김%’ and NOT EXISTS( 

        select * from emp b where a.ename=b.ename and b.job='sales'); 

(1)번은 앞에서와 같은 변형방법으로 이것의 검색 횟수는 (자료가 n튜플 이라면) 2n번이 되겠습니다. 그에 비해 (2)번은 둘다 full scan이 일어나서 검색 횟수는 n2이 되겠죠. 

4) NULL, NOT NULL의 경우 

◦select * from emp where ename si not null; 

→select * from emp where ename > ''; 

ename이 문자형일 경우에 사용하는 예입니다.  

◦select * from emp where comm is not null; 

→select * from emp where comm > 0; 

comm이 number형일 경우 사용하는 예입니다. 

◦select * from emp where comm is null; 

→이건 full scan이 필요하겠죠. 아니면 null 값만을 가지고 index를 생성할수도 있으나 그만큼의 null이 있다면 그 외의 경우에서 빼는 방식이 더 빠르겠죠.

많은 사람들이 NULL을 정확하게 이해하지 못하고 사용하기를 꺼려합니다. 물론 그렇지 않은 분들도 많으시겠지만.... ^^;; 일단 하나만 기억 하고 넘어가야 할 것은 NULL이 탐색의 키로 이용될 경우 무조건 full scan이 발생하므로 이용시 많은 주의가 필요합니다. 그럼 NULL대해서 알아보죠. 

NULL은 테이블내에서 공백으로 표시 됩니다. 특징으로는 다음과 같죠 

∘ 어떤 값보다 크지도 않고 작지도 않다. 

∘ 그러므로 어떤 값과 비교될 수 없다. 

∘ 즉, NULL과의 연산결과는 NULL이 된다. 

대부분의 사람들이 세 번째를 놓치게 되는 경우가 많이 있습니다. 

즉 a,b중 하나가 NULL이면 avg(a+b)와 avg(a)+avg(b)는 모두 결과가 NULL이 됩니다. 

그러나 sum(a)의 경우는 NULL값을 참여시키지 않기 때문에 정확한 값이 나오죠. 

 그러면 이러한 NULL을 어떻게 이용 할 것인가? 

일단 조건이 있습니다. 특정한 data type이 테이블 내에서 많은 경우 아울러 full scan이 꼭 필요한 경우 이 data type을 NULL로 지정합니다. NULL은 공백으로 표시 되기 때문에 기억장치에서 공간을 차지 하지 않습니다. 따라서 NULL로 지정한 만큼 공간을 절약할 수 있겠죠. “그게 얼마나 된다고 굳이 NULL로 지정합니까?” 이렇게 물으신다면 만약 테이블 내에서 남여를 구분하는 column이 있다고 가정하면 남과 여중 한 값을 NULL로 한다면 일단 50%는 아끼는 셈이 되죠. 그양이 비록 작을 지라도. 따라서 이 경우에도 손익을 생각하셔서 적용하시면 됩니다. 

또 다음과 같은 경우에 NULL을 사용합니다. 


∘ 미확정 값을 표현하고자 할 때 

∘ 특정 값이 지나치게 많고 나머지 값만 주로 인덱스로 액세스 하고자 할때(위의 경우와 인덱스적용하여 공간과 탐색시간을 줄여주는 방법입니다.) 

∘ 결합인덱스의 구성컬럼이 된다면 NOT NULL로 

∘ 입력 조건값으로 자주 사용되면 NOT NULL로 


마지막의 두가지 경우는 앞으로 나올 예정이므로 따로 설명하지 않겠습니다. 


5) Optimizer의 취사선택으로 index scan이 발생되지 않는 경우를 앞서 살펴 보았습니다. 그러면 어떻게 해야 Optimizer가 제대로 index를 적용하도록 할까요? 이것을 알기위해서 먼저 Optimizer의 역할에 대해서 알아 보겠습니다. 

Optimizer의 목표는 select, update, insert, delete문을 최소한의 프로세싱 시간과 최단 시간의 I/O를 사용하여 실행 시키도록 하는 것이다. 이를 위해 실행계획을 세우고 문장을 실행하기 전에 가장 효과적인 계획을 선택하는 일을 한다. 이를 위해 Optimizer는 실행계획중 규칙기반 접근법(rule-based approach) 또는 비용기반 접근법(cost-based approach)중 하나를 선택한다. 그러나 Optimizer역시 사람이 만든것이라 완벽하게 처리할 수 없다 따라서 만물의 영장인 사람이 정확한 정보를 주어 신속하게 처리하도록 도움을 주어야만 한다. 그럼 앞에서 말한 두가지 접근법에 대해서 알아 보도록 하겠습니다.


①Rule-Based방식 

여러개의 가능한 경로를 찾아서 이미 정해져 있는 Rank를 기준으로 서로의 비용을 비교하고, 이를 토대로 가장 효율적인 것을 선택한다.

옵션 
 액세스경로(Access Path) 
 

 ROWID에 의한 단일 행 접근 
 

 클러스터 조인(Cluster Join)에 의한 단일 행 접근 
 

 Unique key 또는 Primary key를 사용하는 Hash Clushter key에 의한 단일행 접근 
 

 Unique key 또는 Primary key에 의한 단일행 접근 
 

 Cluster Join 
 

 Hash Cluster key 
 

 Indexed Cluster key 
 

 복합키(Composite key) 
 

 단일 컬럼 인덱스(single-column indexes) 
 
10 
 인덱스 컬럼에서의 바운드 범위 조회 
 
11 
 인덱스 컬럼에서의 언바운드 범위 조회 
 
12 
 sort-merge join 
 
13 
 인덱스 컬럼의 MAX 또는 MIN값 
 
14 
 인덱스 컬럼에서의 order by 사용 
 
15 
 full-table scan 
 


②Cost-Based방식 

가장 효율적인 실행계획을 선택하기 위해서 데이커베이스의 통계자료를 사용한다. 오라클 RDBMS사용시 ANALYZE명령어를 사용하면 테이블, 클러스터, 인덱스 등의 통계자료들이 수집, 저장 된다. Cost-Based방식은 이렇게 모인 데이터를 사용한다. 


③ANALYZE명령어 

Cost-Based방식에 사용할 통계 데이터를 모아준다. 또한, 이 명령어는 다음과 같은 목적으로도 사용된다.

Function 
 설   명 
 
통계데이터 수집
 Table, Cluster, Index등에 관련된 자료들을 모아 Cost-Based Optimization에 사용한다. 
 
데이터 무결성 확인
 Table, Cluster, Index등의 무결성 확인 작업을 한다. 
 
Chained-row통계
 Table, Cluster에 있는 데이터 체인행(Chained row)에 대한 통계 자료 수집 
 


그럼 Optimizer가 어떻게 작동하는지 몇가지 예를 들어 보겠습니다. 

∘select * from emp where ename like 'ab%' and empno='7890'; 

→둘다 index일 때 값이 더욱 확실한 empno index만 사용합니다. 

∘select * from emp where ename like 'ab%' and job like 'sa%'; 

→ename or job index중 하나만 사용, 혹은 full scan(이 경우엔 index merge라고 함) 

∘select * from emp where empno > '10'; 

→이와 같은 경우는 특정한 값을 찾는 것이 아니라 테이블 전체를 탐색해야 하므로 full scan선택이 비용이 덜듭니다. 따라서 full scan 선택. 

∘select /* INDEX(emp job_IDX)*/ from emp where ename like 'ab%' and job like 'sa%'; 

→만약 데이터의 분포도나 탐색빈도수가 job index가 월등히 많이 사용된다면 프로그래머가 강제적으로 우선순위를 높여줄수 있는데 이것이 바로 HINT라고 합니다. 형식은 위와 같이 쉽운 편이지만 테이블에 들어가는 데이터들에 대한 지식이 우선되야 하겠지요. 

<Hints에 관하여... 

Hints를 통해서 optimizer에게 알려줄수 있는 정보는 다음과 같습니다. 

-SQL연산을 위한 Cost-based접근 방식의 목표 

-index보다 더 효과적인 Scan방식 

-Join순서 

-병렬연산 순서 

문법 

/*+comment */ →‘+’ 다음에 나오는 내용이 Hints라는 것을 Optimizer에게 알려준다. 

이정도만 이해하고 넘어가도 될 것 같습니다. 


 


 


▸Index의 활용 및 적용기준 

“index를 언제 사용 할 것이냐?” 문제가 되겠지요. 절대적인 기준은 아니지만 대개의 경우 적용할 만한 적용 기준은 다음과 같습니다.


-6블록 이상의 테이블에 적용(6블록 이하는 연결고리만) 

-컬럼의 분포도가 10-15%이내인 경우 적용 

-분포도가 범위내이더라도 절대량이 많은 경우에는 단일 테이블 클러스터링을 컴토할 것 

-분포도가 범위 이상이더라도 부분범위 처리를 목적으로 하는 경우에는 적용 

-인덱스만을 사용하여 요구를 해결하고자 하는 경우는 분포도가 나쁘더라도 적용할 수 있음(손익분기점 10-15%이내) 

-질의에서 선택된 column의 값이 동일한 Rows들은 그 Table에 할당된 data block에 균일하게 분산되어 있을 때 

-Table의 row는 질의되는 column에 대하여 불규칙적으로 분포 

-Table에 할당된 각 data block은 최소한 10개의 row를 포함할 때 적용 

-Table은 상당히 작은 수의 column을 가질 때 

-Table에 대한 대부분의 질의들은 비교적 단순한 WHERE절일 때 

-Cache hit ratio는 낮고 operating system cache는 없을 때


<분포도 = 1/컬럼값의 종류 * 100 = 컬럼값의 평균 로우수/테이블의 총 로우수 * 100 

대개 앞의 것을 많이 이용합니다. 예를 들어 5가지 데이터가 들어있는 컬럼의 분포도는 20%이다.


 


 

<부분범위 처리란? 

먼저 전체범위 처리에 대해서 알아보면 SQL문에서 group by문이나 order by 문의 경우 테이블의 처음부터 끝까지 전제적으로 정렬이 이루어 져야 한다. 이러한 경우를 전제 범위 처리라 한다. 이와는 반대의 경우를 부분범위 처리라하고 튜닝시 되도록 전제범위처리를 피하는 것이 바람직하다. 


 

<손익분기점 read하고자 하는 컬럼스/access해야할 컬럼수 * 100 

 손익분기점이 높으면 hit ratio가 낮음을 의미하고, 손익분기점이 낮으면 hit ratio가 높다. 


 


 


지금까진 single index만을 살펴 보았습니다. 그러면 결합인덱스에 대해서 알아 보겠습니다. 

결합 인덱스는 말그대로 2개이상(오라클에선 16개까지 가능)의 컬럼을 가지고 index를 생성하는 경우를 말합니니다.  

▸결합인덱스의 장점 

-좋은 분포도 : 나쁜 분포도를 가진 column을 결합한 결합 인덱스가 더 좋은 분포도를 가질 수 있다. 

-저장 공간의 효율성 : 한 질의에 의해 선택된 모든 칼럼이 결합인덱스에 있을 경우, table을 access하지 않고 결합 인덱스 만으로 원하는 값을 가져올 수 있다. 그러나 그만큼의 디스크나 메모리에 부하가 많이 걸릴 것이다. 

[예] select empno from emp where empno='123';  

이 경우는 특별히 테이블을 access하지 않고 index만으로 해당값을 출력할수 있다. 따라서 검색속도가 비약적으로 빨라지는 효과를 볼 수 있습니다. 

▸결합 인덱스의 column선택을 위한 지침  

-각 column의 분포도 보다 결합 인덱스에서 결합된 분포도가 더 좋을 경우 

-여러 질의에서 하나이상의 칼럼값을 가진 칼럼의 동일한 집합을 질의할 경우, 이들 모든 칼럼을 포함하는 결합 인덱스 생성을 고려한다. 

▸결합 인덱스 구성시 column순서 배치를 위한 지침  

-WHERE절에 사용된 칼럼을 선행부분으로 만들기 위한 결합 인덱스를 생성 

-칼럼의 일부가 WHERE절에서 자주 사용될 경우 =>자주 select되는 column을 선행부분올 만들어서 이 column만으로 인덱스를 사용할 수 있도록 한다.  

-모든 칼럼이 WHERE절에서 동일하게 사용되면 =>질의 성능을 개선하기 위하여 CREATE INDEX statement에서 분포도가 좋은 순서대로 배열 

-모든 칼럼이 WHERE절에서 동일하게 자주 사용되지만 데이터가 한 column에 대해 물리적으로 정렬되어 있으면 =>그 column을 결합 인덱스의 첫번째로 구성 

-‘=’을 사용할 땐 선택범위가 좁은 것을 앞에 놓는다.


<in을 이용한 access효율 향상. (in은 ‘=’의 의미를 가지고 있다.) 

예) select * from tab1 where col1='a' and col2 between '111' and '112'; 

→select * from tab1 where col1='a' and col2 in('111', '112'); 

여기서 col2의 값이 적을수록 후자의 속도가 빨라진다. 물론 보통의 경우에도 후자가 빠르다. 

일반적으로 between, like문이 들어가는 SQL문은 in문으로 대체해 준다. 


 


 

[주의] 만약 index가 (a+b+c)로 이루어져 있을 경우 where조건에서 a, a+b, a+c, a+b+c가 나오면 index적용이 가능 하지만, b, b+c가 나오면 index적용이 불가능하다. -> B*Tree에서 검색이 불가능 하기 때문에.. 따라서 결합인덱스의 첫 번째 컬럼이 꼭 나와야 index를 적용할 수가 있다. 아울러 대개의 결합인덱스는 최고 5개까지가 적당함. 그럼 간략히 정리를 해보겠습니다. 

<인덱스 선정 절차 

-해당 테이블의 액세스 유형조사 

-대상 컬럼의 선정 및 분포도 분석 

-반복 수행되는 액세스 경로의 해결 

-클러스트링 검토 

-인덱스 컬럼의 조합 및 순서의 결정 

-시험생성 및 테스트 

-수정이 필요한 애플리케이션 조사 및 수정 

-일괄 적용 

<액세스 유형의 조사(설계단계) 

-반복 수행되는 액세스의 형태를 찾는다. 

-분포도가 아주 양호한 컬럼의 찾아 액세스 유형을 찾는다. 

-자주 넓은 범위의 조건이 주여되는 경우를 찾는다. 

-자주 조건절에 사용되는 컬럼들의 액세스 유형을 찾는다. 

-자주 결합되어 사용되는 경우를 찾는다. 

-sort의 유형을 조사한다. 

-통계자료 추출을 위한 액세스 유형을 조사한다. 

<index의 활용(선정기준) 

-분포도가 좋은 컬럼은 단독적으로 생성하여 활용도 향상 

-자주 조합되어 사용되는 경우는 결합인덱스 생성 

-각종 엑세스 경우의 수를 만족할 수 있도록 인덱스간의 역할 분담. 

-가능한 수정이 빈번하지 않는 컬럼 

-기본키 및 외부키(조인의 연결고리가 되는 컬럼) 

-반복수행(loop)되는 조건은 가장 빠른 수행속도를 내게 할 것 

-실제 조사된 액세스 종류를 토대로 선정 및 검증 

<index의 활용(고려사항) 

-새로 추가된 인덱스는 기족 액세스 경로에 영향을 미칠 수 있음 

-지나치게 많은 인덱스는 오버헤드 발생 

-넓은 범위를 인덱스로 처리시 많은 오버헤드 발생 

-Optimizer를 위한 통계데이타를 주기적으로 갱신 

-인덱스의 개수는 테이블의 사용형태에 따라 적절히 생성 

-분포도가 양호한 컬럼도 처리범위에 따라 분포도가 나빠질 수 있음. 

-인덱스 사용원칙을 준수애야 인덱스가 사용됨 

-조인(join)시에 인덱스가 사용여부에 주의 

-데이터 변경시 자주 리빌드해주는 것이 좋다.



Ⅱ. Cluster

 cluster는 테이블에 데이터를 저장하는 방식입니다. 데이터를 저장하는데 있어서 클러스터를 사용할 것인지의 여부는 SQL문장과는 아무런 관계가 없으면, 단지 테이블을 저장하는 방법에 적용됩니다. cluster는 다수 개의 테이블을 하나의 오라클 블록에 저장하는 메커니즘이며, cluster index를 꼭 필요로 합니다. 테이블을 clustering하는 순서는 다음과 같습니다.


①cluster를 생성한다. 

②cluster index를 생성한다. 

③cluster table들을 생성한다. 

그럼 cluster생성 문법을 알아 보겠습니다. 

CREATE CLUSTER cluster( 

        column data_type, ... 

        [PCTUSED int] 

        [PCTFREE int] 

        [INITRANS int] 

        [MAXTRANS int] 

        [SIZE int [K or M]] 

        [TABLESPACE tablespace] 

        [STORAGE storage_clause] 


여기서 주의 해야 할 것은 SIZE로 이것은 하나의 클러스터 키와 그 데이터를 함께 저장하는 데 필요한 스페이스의 크기를 byte단위로 지정한다. 즉 SIZE는 하나의 데이터 블록에 같이 저장될 쉬 있는 클러스터 키의 총수를 결정 짓는 옵션이다. 


[예] 

①create cluster cluster_t1_t2( 

        idnum number(3) 

size 400 

tablespace data1 

storage (initial 30k); 


②create index ind_cluster_t1_t2( 

on cluster cluster_t1_t2 

tablespace idx1; 


③create table t1( 

name varchar2(10), 

hire_date date, 

idnum number(3) 

cluster cluster_t1_t2 (idnum); 

create table t2( 

name varchar2(10), 

idnum number(3) 

cluster cluster_t1_t2 (idnum); 


이렇게 지정하면 테이블 t1과 t2의 데이터는 같은 데이터 블록에 저장됩니다. 그럼 이제 본론으로 들어가겠습니다. 

이해를 쉽게하기 위해 앞에서 보았던 index와 cluster index의 차이 점을 짚어보면 일반 index는 rowid를 가지고 있는 반면 cluster index는 block의 header를 가지고 있습니다. 따라서 보통의 경우엔 일반 index가 빠른 속도를 냅니다. 그러나 중복 데이터를 많이 가지고 있는 컬럼이 있는 테이블의 경우 그 성능이 훨씬 높게 됩니다. 물론 I/O이용이 적으면서 이러한 효과를 볼 수 있다니 얼마나 좋습니까. 따라서 앞에서 다루었던 index와 마찬가지로 cluster 역시 해당 테이블에 대한 정확한 이해를 바탕으로 이루어 져야 합니다. 그럼 정리해 보겠습니다. 

<cluster의 특징 

-지정된 컬럼값의 순서대로 로우를 저장시키는 방법 

-하나 혹은 그 이상의 테이블을 같은 클러스터내 저장 가능 

-엑세스 기법이 아니라 액세스 효율향상을 위한 물리적 저장기법 

-검색 효율을 높여주나 입력, 수정, 삭제시는 부하증가 

-분포도가 넓을 수록 오히려 유리(인덱스의 단점을 해결 5~7배) 

-분포도가 넓은 테이블의 클러스터링은 오히려 저장공간 절약 

마지막 것은 좀 이해가 안되는 부분이요. 이유인 즉슨 오라클 내부에서 동한건에 대해 나머지 값들은 저장이 안된다고 합니다. 따라서 그만큼의 저장 공간이 절약되겠죠. 

<cluster의 활용(선정기준) 

-6블록 이상의 테이블 

-다량의 범위를 자주 액세스 해야 하는 경우 

-인덱스를 사용한 처리가 부담되는 넓은 분포도 

-여러 개의 테이블이 빈번한 조인을 일으킬 때 

-반복 컬럼이 정규화 작업에 의한 어떨수 없이 분할된 경우 

-UNION, DISTICT. ORDER BY, GROUP BY가 빈번한 컬럼이면 고려해 볼 것 

-수정이 자주 발생하지 않는 커럼

-처리 범위가 넓어 문제가 발생되는 경우 단일 테이블 클러스터링 

-조인이 많아 문제가 발생되는 경우는 다중 테이블 클러스터링 

<cluster의 활용(고려사항) 

-데이터 처리(입력, 수정, 삭제)에 오버헤드 발생 주의 

-인덱스로도 충분한 범위는 클러스터링 효과가 없음 

-클러스터 키는 수정이 빈번하지 않을 것 

-각종 액세스형태에 대해 인덱스와 적절한 역할 분담 

-클러스터링은 기존의 인덱스의 수를 감소시킴(인덱스 재구성) 

-클러스터 SIZE 인자가 중요 

-클러스터 키별 로우 수의 편차가 심하지 않을 것 

-클러스터에 데이터 입력시 로우가 적은 테이블부터 실시할 것 

-클러스터링된 테이블 조인시 로우 수의 역순으로 from절에 기술할 것 

-클러스터 키를 첫 번째로 하는 인덱스는 생성하지 말것(optimizer에 의해 선택 문제 발생) 

<index와 cluster의 비교





 


Ⅲ. VIEW 

 보통 뷰를 이용는 경우는 보안이나 복잡한 쿼리를 피하기 위해 사용 하는 경우가 많이 있습니다. 그럼 과연 튜닝에는 어떻게 쓰일수 있을까요? 일반적으로 튜닝시에는 다음의 두가지 목적을 위해 사용합니다. 


<수행속도 향상을 위한 뷰 

-수행 속도 향상을 위해 미리 튜닝한 select문을 뷰로변환 시켜 사용 

-M:1조인의 연결회수를 감소 시키기 위해 먼저 group by된 뷰를 만들고 그 뷰와 조인을 일으키게 하기 위한 뷰 

-특정 client tool의 문제 해결을 위한 뷰 

-수행 속도에 심한 영향을 주는 넓은 범위 처리나 특정 컬럼의 조건검색을 막아 악성검색을 방지하기 위한 뷰 

-특정한 절차로 수행시키기 위해 뷰의 select list에 suppressing, hint등을 사용한 뷰 

설명이 필요 없으리라 생각됩니다. 

<SQL 기능 향상을 위한 뷰 

-불규칙적인 sort가 필요한 경우 

-group by결과를 다시 가공하고자 하는 경우(group by는 어쩔수 없이 full scan이 발생 합니다. 따라서 그에따른 비용도 많이 듭니다. 따라서 미리 group by결과를 뷰로 가지고 있으면 그만큼의 비용을 절감 할 수 있겠지요) 

-서로 다른 테이블의 group by결과를 같은 줄에 맞추려는 경우 

-ROWNUM을 이용한 특별한 처리 

-각 row에 있는 값들(예:일자)간의 가공처리(예:기간산정) 

-각각의 소계와 그 내역을 하나의 SQL로 처리 

-복잡한 outer join의 해결을 위한 뷰(outer join은 만족하는 레코드뿐만 아니라 만족하지 않는 레코드들도 출력을 해줍니다. 따라서 만족하지 않는 값으로 찾고자 할 경우 full scan이 발생하여 전제 SQL문의 속도를 늦춰 줍니다. 이러한 경우 뷰를 이용하여 만족하지 않는 레코드를 따로 처리해 놓으면 훨씬 빠른 속도를 얻을수 있습니다.) 

-테이블은 row를 가지지 않으나 뷰는 row를 가지도록 한 뷰 

-SQL*From의 execute_query를 활용하기 위한 뷰 

-기타 SQL의 기능 확장을 위해 원하는 임의의 집합이 필요한 경우 

-코드성 테이블을 미리 조인한 후 fact table과 다시 조인한다.(코드성테이블이란 master file과 같은 의미로 삽입이나 삭제가 거의 되지 않고 참조위주의 테이블을 말합니다. 예로 이자율테이블이나 할인율 테이블 같은 것이 되겠죠, 그리고 fact table은 사용자가 입력한 테이터 정보를 모두 가지고 있는 테이블입니다. 보통의 테이블들이 해당 되겠죠. 아울러 덩치도 아주 큽니다.) 

-조인시 데이터 범위가 작은 테이블을 먼저 조인한 다음 점점 큰 순서로 조인하는 것이 훨씬 빠른 속도를 냅니다. 

Ⅳ. 부분범위 처리(Partial Range Scan) 

그럼 일단 그림을 먼저 보겠습니다





 

<부분범위 처리 방법 

-조건을 만족하느 전제 집합이 아닌 일부분만 access 

-data량이 많아도 performance에 지장이 없고, 오히려 향상 

-index나 cluster를 적절히 활용한 sort의 대체(order by사용을 대체) 

-max처리 

-table은 access하지 않고 index만 사용하도록 유도 

-exists의 활용 

-rownum의 활용 (rownum- 1,2차 가공시 나오는 건수) 

-query를 이원화 하여 일부분씩 scan하도록 유도 

-stored function을 이용 

[예] 

여기서 첫 번째 문장에서는 index가 ymd만으로 이루어졌고, 두 번재 문장에서는 index가 ymd+item으로 이루어 졌다고 가정합니다. 

∘select * from product where ymd='951023' and item like 'ab%' order by ymd, item; 

→select * from product where ymd='951023' and item like 'ab%'; 

sort를대체하는 예 

∘select orddate, custno from orddate between '940101' and '941130' order by orddate desc; 

→select --+index_desc(a orddate) orddate, custno from order1t a where orddate between '940101' and '941130'; 

∘select orddate, custno from order1t where orddept like '7%' order by orddate desc; 

→select --+index_desc(a orddate) orddate, custno from order1t a where orddept like '7%' and orddate <='991231';


<index생성시 아무 옵션도 주지않을 경우 default로 ASC옵션이 적용되어 생성된다. 

따라서 DESC로 출력을 원할 경우 다음 두방법중 하나를 이용하면 된다. 

1. 뒤에서부터 검색하거나 

2. index create시 desc로 생성시켜줘야 속도 향상을 얻을 수 있다. 


 


 

max처리하는 예 (전자는 index(dept), 후자는 index(dept+seq)로 index생성 되어 있음) 

∘select max(seq)+1 from product where dept='12300'; 

→select /*+index_desc(a index1)*/ seq+1 from product a where dept='12300' and rownum=1; 


rownum이용 예 

∘select count(*) into:cnt from item_tab where dept='101' and seq>100 ...... 

→select 1 into:cnt from item_tabl where dept='101' and seq>100 and rownum=1... 

1:M join의 부분범위 유도 예 

∘select x.cust_no, x.addr, x.name, ....... from cust x, reqt y where x.cust_no=y.cust_no and x.cust_stat in ('a', 'c', 'f') and y.un_pay >0 group by x.cust_no having sum(y.un_pay) between :val1 and :val2; 

→select cust_no, addr, un_pay, .... from (select cust_no, addr, unpay_sum(cust_no) as un_pay, ......... from cust where cust_stat in ('a', 'c', 'f')) where un_pay between :val1 and :val2;



Ⅴ. 조인 메커니즘의 이해 

조인의 경우 사용히 매우 신중을 기해야 하는 것중의 하나입니다. 특히 조인 컬럼이용되는 컬럼의 선정시 특히 많은 주위를 해야 optimizer의 실행 순서 선택시 우리가 원하는 수행능력을 보장 받을 수 있습니다. 그럼 조인시 수행속도에 영향을 끼치는 것들에 대해서 한가지씩 알아 보겠습니다.


<driving의 영향





<Join순서의 영향





 

<index의 영향 

양쪽에 index 
 한쪽에 index 
 
① 
 tab1 
 range scan 
 ③ 
 tab1 
 range scan 
 
tab2 
 index scan 
 tab2 
 full scan 
 
② 
 tab1 
 range scan 
 ④ 
 tab1 
 full scan 
 
tab2 
 index scan 
 tab2 
 range scan 
 


①,②의 경우는 일량의 변화가 없다. 

③의 경우 n*m번 비교가 일어난다.(최악의 경우) 이런 경우 ④과 같이 변형하면 조금이나마 성능 향상에 도움이 된다. 

<Join시 유의사항 

-join되는 key column의 data type을갖게 한다. 

-join되는 key column을 index로 만들어 준다.(절대 변형되지 않도록한다.-변형시 full scan발생) 

-두 table간에 join이 맞지 않을 경우(한쪽에만 index가 있는 경우) driving table을 full scan table로 설정하는 것이 최악의 경우를 방지 할 수 있다. 

-두 index에 대한 분포도가 같은 경우 from절의 오른쪽에 있는 table을 driving으로 삼는다. 

-check조건이 되는 테이블의 범위는 넓을 수록 좋다.(사용자에게 테이블의 내용을 빨리 display 할 때 보다 빨리 전송단위 씩 보내줄수 있기 때문에) 

<join과 loop query의 속도 비교. 

-loop query가 빠른 경우 → 부분범위 처리가 발생 할 경우 

-부분범위 처리가 join과 loop query 둘다 발생하면 (전체가 부분범위 처리인 경우) → join이 빠르다. 

-전체 범위 처리가 발생한 이유가 모든 table에 있으면 → join이 빠르다. 

-연결되는 table중 하나를 부분범위로 바꿀수 있다면 → loop query가 빠르다. 

<Loop query? 

말 그대로 query를 loop로 돌려 특정 값을 다음 테이블내에서 찾는 방법입니다. 보통의 SQL문에서 사용하는 경우는 거의 없고 batch 혹은 pl_SQL 사용시 많이 이용됩니다. 


 



Ⅵ. Trace 

하하 이젠 분석도구라 불리는 놈들을 보겠습니다. 어디가 잘못 됐는지 알아야 고칠거 아닙니까? 따라서 가장 중요하다고 생각합니다. 그런데 어렵더군요. 저 역시 교육 받을 때 이 부분에서 거의 헤맸습니다. ^^;; 여러분은 그러시지 않기를 빕니다.  

<SQL Trace? 

SQL문을 튜닝하기 위해서는 현제의 SQL문이 어떻게 수행되는 가를 정확하게 파악해야 할 필요가 있습니다. 그럼 간단하게 Trace의 사용 목적에 대해서 알아보죠. 

< Trace 파일은 시스템을 튜닝하는데 필요한 아주 유요한 정보(cpu Time, 총수행시간, I/O횟수 등등 아래 자세히 설명)를 제공한다.  

< SQL문의 실행통계를 Session별로 모아서 Trace 파일을 만든다. 

   - SQL Parsing, Execute, Fetch를 수행한 횟수 

   - CPU Time, Elapsed Time(총 경과시간) 

   - Disk(물리적), Memory(논리적) I/O 수행한 횟수 

   - 추출된 Row의 수 

   - 라이브러리 캐쉬 miss 수 

   - Parse Count 

그럼 trace를 한번 만들어 보자구요. 물론 슆지는 않습니다. 또한 Trace를 생성하는 동안 시스템 전체적인 수행성능은 20%~30% 정도 감소합니다. 따라서 운영중인 DB의 경우에는 되도록 사용을 금하기소 되도록 개발용 장비에서 실행하기기 바랍니다. 

먼저 SQL_TRACE를 생성하려면 다음과 같은 파라미터들을 INIT.ORA에 지정해야합니다. 

- CREATE INDEX문에서 NOSORT Option의 사용 

- TIMED_STATISTICS=TRUE → 시간 통계를 모을 수 있게 한다. 

- SQL_TRACE=TRUE → Session을 종료하는 모든 사용자들의 Trace를 수행한다. 

- USER_DUMP_DEST=directory path → SQL_TRACE가 Trace 파일을 저장하는 디렉토리를 지정한다. default는 시스템 덤프(dump) 디레토리이다.(예; oracle_home/rdbms/log) 

-MAX_DUMP_SIZE=number → Trace 파일의 물리적인 크기를 바이트 단위로 지정할 수 있게 한다. 

[주의] SQL_TRACE는 공간이 부족하면, 완전한 출력이 되지 않습니다. 따라서 디스크 공간을 확보하신후 실행 시키싶시오, 아울러 주기적으로 필요 없는 파일들은 삭제해 주어야 합니다. 

[예]  

timed_statistics = true          # if you want timed statistics 

user_dump_dest = /oracle8/app/oracle/product/8.0.3/rdbms/log 

max_dump_file_size = 10240       # limit trace file size to 5 Meg each 

-SQL*Plus에서는 다음과 같이 세션을 초기화시켜야 합니다. 

SQL>alter session set sql_trace=true; 

-optimizer goal의 변경은 다음과 같습니다. 

SQL>alter session set optimizer_goal=rule;(optimizer goal을 정의) 

-RDBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION Produce사용 

SQL>execute RDBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(11,6,TRUE) 

여기서 11은 sid, 6은 Serial number(둘다 v$session에서 확인), TRUE는 Trace enable입니다. 

이렇게 설정해 두면 실행되는 질의문에 대해서 트레이스 파일이 생성된다. 생성되는 위치는 initSID.ora에서 정의한 user_dump_dest 디렉토리에 *.trc형태로 생성됩니다. 

그럼 이제 Trace 파일을 보기만 하면 됩니다. 그러나 생성된 트레이스 파일은(*.trc) 바로 볼 수 없습니다. 시험삼아 한번 vi에디터로 열고 보셔도 물론 됩니다. 그러나 수많은 문자들 가운데서 우리가 원하는 정보를 찾기란 너무 어렵습니다. 그래서 tkprof라는 유틸리티를 사용하여 생성된 트레이스 파일을 분석이 가능한 형식으로 전환해줘야 합니다. 물론 기본적으로 오라클에서 제공하는 유틸리티입니다.

이것은 이미 생성된 트레이스 파일이나 트레이스 파일을 생성하고 있는 중에도 tkprof를 수행시킬 수 있습니다. 트레이스 파일은 SQL문에 대한 실행계획뿐만 아니라 실행시간, 다양한 옵션을 이용하여 분석하기 쉬운 형태 등의 정보를 보여줍니다.

그럼 tkprof란 놈은 어떻게 실행 시킬까요? 

Usage: tkprof tracefile outputfile [explain=user/passwd] [table=schema.tablename] 

            [print=integer] [insert=filename] [sys=yes/no] [sort=option] 

 tracefile : 생성된 트레이스 파일명 

 outputfile : tkprof가 출력하는 텍스트 파일명(디폴트로 확장자가 .prf임) 

 explain=user/passwd : 해당 트레이스 파일이 수행된 세션의 사용자 및 패스워드 

 table=schema.tablename : 실행계획(execution plan)을 저장할 TKPROF 임시 테이블의 이름 

 print=integer : 트레이스 파일별로 출력시킬 SQL문의 수 

 aggregate=yes|no 

 insert=filename : List SQL statements and data inside INSERT statements. 

 sys=yes/no : TKPROF does not list SQL statements run as user SYS. 

 record=filename : Record non-recursive statements found in the trace file. 

 sort=option : Set of zero or more of the following sort options: 

 < sort option의 종류 > 

    prscnt number of times parse was called 

    prscpu cpu time parsing 

    prsela elapsed time parsing 

    prsdsk number of disk reads during parse 

    prsqry number of buffers for consistent read during parse 

    prscu  number of buffers for current read during parse 

    prsmis number of misses in library cache during parse 

    execnt number of execute was called 

    execpu cpu time spent executing 

    exeela elapsed time executing 

    exedsk number of disk reads during execute 

    exeqry number of buffers for consistent read during execute 

    execu  number of buffers for current read during execute 

    exerow number of rows processed during execute 

    exemis number of library cache misses during execute 

    fchcnt number of times fetch was called 

    fchcpu cpu time spent fetching 

    fchela elapsed time fetching 

    fchdsk number of disk reads during fetch 

    fchqry number of buffers for consistent read during fetch 

    fchcu  number of buffers for current read during fetch 

    fchrow number of rows fetched 

    userid userid of user that parsed the cursor 

여기서 SQL문을 실행하는데 걸린 CPU시간을 보여주는 EXECPU가 가장 실용적이다. 만약 init.ora 파라미터를 TIMED_STATISTICS=FALSE로 지정했을 때는 수행 중에 액세스된 블록 수를 보여주는 EXEQRY가 가장 실용적이다. 

[예] tkprof ccdb_ora_1124.trc 1124.txt explain=scott/tiger 

그럼 이제 우리가 눈으로 보기에 꽤 괜찮은 파일이 만들어 집니다.  

- tkprof는 정형화된 리스트(출력파일)를 생성합니다..

- 생성된 파일에는 다음과 같은 내용들을 포함하고 있습니다.

call 
 count 
 cpu 
 elapsed 
 disk 
 query 
 current 
 rows 
 
Parse 
 1 
 0.01 
 0.01 
 0 
 0 
 0 
 0 
 
Execute 
 1 
 0.00 
 0.00 
 0 
 0 
 0 
 0 
 
Fetch 
 1 
 0.00 
 0.02 
 2 
 3 
 0 
 1 
 
total 
 3 
 0.01 
 0.03 
 2 
 3 
 0 
 1 
 

보기 좋게 표로 만들었습니다만 실제론 이렇게 출력되진 않습니다. 그럼 하나 하나 살펴 보지요. 

- parse 

·SQL문이 파싱되는 단계에 대한 통계이다. 새로 파싱을 했거나, 공유 풀에서 찾아 온 것도 포함된다. 

·단, PL/SQL 내에서 반복 수행(Loop)된 SQL이나 PRO*SQL에서 보존커서(Hold cursor)를 지정한 경우에는 한번만 파싱된다. 

- execute 

·SQL문의 실행 단계에 대한 통계이다. UPDATE, INSERT, DELETE 문들은 여기에 수행한 결과가 나타난다. 

· 전체범위 방식으로 처리된 결과가 여러 건인 경우는 주로 여기에 많은 값이 나타나며 fetch에는 아주 적은 값이 나타난다. 

- fetch 

·SQL문이 실해되면서 페치된 통계이다.  

· 부분범위 방식으로 처리된 SELECT문들이나 전체범위 처리를 한 후 한 건을 추출하는 경우(AGGREGATE, 전체집계, Count 등)는 주로 여기에 많은 값들이 나타나고 execute에는 아주 적은 값이 나타난다. 

- count 

·SQL문이 파싱된 횟수, 실행된 횟수, 페치가 수행된 횟수이다.  

- cpu 

·pares, execute, fetch가 실제로 사용한 CPU 시간이다.(1/100초 단위)  

- elapsed 

·작업의 시작에서 종료시까지 실제 소요된 총 시간이다.  

- disk 

·디스크에서 읽혀진 데이타 블록의 수  

- query 

·메모리 내에서 변경되지 않은 블록을 읽거나 다른 세션에 의해 변경 되었으나 아직 Commit되지 않아 복사해 둔 스냅샷 블록을 읽은 블록의 수이다.  

·SELECT문에서는 거의가 여기에 해당하며 UPDATE, DELETE, INSERT 시에는 소량만 발생한다.  

- current 

·현 세션에서 작업한 내용을 Commit하지 않아 오로지 자신에게만 유효한 블록(Dirty Block)을 액섹스한 블록 수이다. 

· 주로 UPDATE, INSERT, DELETE 작업시 많이 발생한다. SELECT 문에서는 거의 없으나 아주 적은 양인 경우가 대부분이다. 

- rows 

·SQL문을 수행한 결과에 의해 최종적으로 액세스된 로우의 수이다. 

·서브쿼리에 의해서 추출된 로우는 제외된다. 

·만약 SUM, AVG, MAX, MIN, COUNT 등의 그룹함수를 사용한 경우라면 큰 의미가 없다. 


☞분석결과의 예  

- execute, fetch의 횟수가 동일하다는 것은 SQL 수행시마다 기본키에 의해 한건씩만 처리되고 있다는 것을 의미한다. 만약 pares가 1인데 execurte와 fetch가 100이라면 루프가 100번 수행되면서(어프리케인션은 한번만 수행되고 SQL은 루프 내에서 반복수행되었다. 왜냐하면, 어플리케이션이 여러번 실행되었다면 비록 SQL이 실제 파싱하지 않고 Shared SQL Area에서 찾아 왔다고 해도 parse의 횟수는 증가되기 때문이다) 보관커서 상태의 SQL이 한 건씩을 추출한 상태이다. 이 경우의 SQL문은 'SELECT ... INTO ...'형식으로 사용되었을 것이다.  

- parse가 1이고 execute가 1이며, fetch가 100이라면 SQL은 단 한번 수행되었고(루프 내에서 수행되지 않았음) 페치만 연속해서 100번을 수행한 것이다. 이 경우의 SQL문은 대개 'DECLARE CURSOR'로 선언한 SQL이 'FETCH ... INTO ...'에 의해 SQLCODE가 '1403'(Date Not Found)일 때까지 수행되었거나 부분범위 처리에 의해 일정 양만큼만 수행하고 멈추었을 때이다. 

- parse : execute : fetch의 비율은 공통 작업이 여러번 수행되면 그 배수로 나타난다. 예를 들면 parse : execute : fetch가 10 : 10 : 1000인 경우는 1 : 1 : 100인 작업이 10번 수행되었다는 것을 의미한다. 

- fetch가 10인데 rows가 100이라면 운반단위가 10인 다중처리(Array Processing)를 사용하여 한번 페치마다 10건의 로우가 추출되었음을 의미한다. 

- 트레이스의 중간부분에 'Misses im library cache during parse : 1'이라는 문장이 있다. 이것은 공유 SQL 영역에서 파상된 결과를 찾지 못하여 실제 파싱작업을 하게 되었다는 것을 의미한다. 

- 최종적으로 추출된 로우의 수는 적으나 많은 CPU 시간이 소요되었다면 이것은 분명히 적절한 액세스 경로로 수해되지 않았음을 의미한다. 

- CPU 시간과 ELAPSED 시간의 차이는 적을수록 좋다. 만약 CPU시간에 비해 ELAPSED 시간이 훨씬 많다면, 그 원인은 다음 중 하나일 가능성이 높다. 즉 주변의 다른 세션에서 많은 부하를 발생시켜 시스템 전체에 부하가 많이 걸려있는 경우나 혹은 어플리케이션의 문제이거나 다량의 데이타 처리에 따른 I/O 병목현상이 발생한 경우 

- disk, query, current의 숫자는 적을수록 좋다. 이 숫자들이 커다는 것은 메모리 공유영역의 적중률(Hit Ratio)이 낮다는 것을 의미한다. 

- Overall totals For All Statements에서 적중률 계산은 다음과 같다. 

 (Execute 'disk' + Fetch 'Disk')/(Execute 'query' + Execute 'current' + Fetch 'query' + Fetch 'Current') * 100 

 이 값이 10%이상이라면 메모리 캐쉬에서 데이타를 찾는 비율(적중률)이 너무 낮은 것이다. 

- 다음은 아주 빠른 응답이 요구되는 온라인 프로세싱 시스템의 경우에서만 적용되는 규칙들이다. 

 모든 Execute 'CPU'가 1초보다 적어야 한다. 

 Parse 'CPU' 시간이 Parse당 0.01초보다 적어야 한다. 

 작은 테이블(200로우 이하)에서만 전체 테이블 스캔이 일어나게 한다. 

 sysdate만 찾아오거나, 오직 연산만 하거나, 'SELECT ... INTO ...'로 값을 복사하는 경우를 위해서 DUAL 테이블들을 불필요하게 사용하는 것은 모두 없앤다. 

 동시에 작업되는 SQL들은 가능한 PL/SQL을 사용한다. 

 조인시에 옵티마이져가 적절한 드라이빙 테이블을 선택하는지를 확인하거나, 여러개의 조건들 중에서 주(드라이빙)가 되는 조건들과 부(체크)가 되는 조건들을 확인한다. 또한 적적한 인덱스가 사용될 수 있는지를 확인하여 주조건의 처리범위가 넓지 않도록 항상 유의한다. 



Ⅶ. Analyze 

이 명령어는 Cost-Based방식에 사용할 통계 데이터를 모아 줍니다.

Function 
 설   명 
 
통계데이터 수집 
 table, Cluster, index 등에 관련된 자료들을 모아 Cost-Based Optimizer에 사용한다. 
 
데이터 무결성확인 
 table, cluster, index등의 무결성 작업을 한다. 
 
Chained-row통계 
 table, cluster에 있는 데이터 체인행(Chained row)에 대한 통계 자료 수집 
 


다음으로 문법을 보죠. 문법은 아래와 같습니다.

ANALYZE object-name operation STATISTICS 

-object → TABLE, INDEX, CLUSTER 중에서 해당되는 오브젝트 종류 

-name → 오브젝트의 이름 

-operation  

· COMPUTE : 각각의 값들을 정확하게 계산 따라서 옵션은 가장 정확한 통계를 얻을 수가 있지만 가장 처리속도가 느린 단점이 있습니다. 

·ESTIMATE : 자료사전의 값과 데이타 견본을 갖고 검사해서 통계를 예상 이 방법은 덜 정확한 정보를 주지만 훨씬 처리속도가 빠릅니다. 

·DELETE : 테이블의 모든 통계정보를 삭제


Analyyze와 관련된 데이터 사전 뷰를 정리 했습니다. 

USER_INDEXS, ALL_INDEXS, DBA_INDEXS 

USER_TABLES, ALL_TABLES, DBA_TABLES 

USER_TAB_COLUMNS, ALL_TAB_COLUMNS, DBA_TAB_COLUMNS 





출처 : http://skyforce.egloos.com/1844944

Posted by 1010
02.Oracle/DataBase2010. 6. 16. 10:30
반응형
아주아주 어려운 난관에 부딪쳤다!
쿼리문을 만드는데 세로열로 된 컬럼값을 가로열로 모두 만들어야 한다는 아주 슬픈...
그래서 어떻게 하나... 부족한 실력 자책하며 이곳저곳을 떠돌고 열심히 구글링도 해보고
그래도 답이 없더라. 이런걸 보고 묵묵부답이라는 말을 사용하기도 하지...
하지만 의지의 한국인이라 하지 않던가... ㅋㅋ

여러가지 방안을 모두 사용해봤고 오라클 9i이상에서만 제공된다는 SYS_CONNECT_BY_PATH 도 써 봤고...
그래도 답이 나오지 않았으나 태권브이가 날 살렸다.
아래는 블로그의 내용을 살짝 카피해 온것이다....
글을 올리신 당사자께는 죄송^^

select  gbn,
          substr(xmlagg(xmlelement(a,',' || val) order by val).extract('//text()'), 2) val
  from test
group by gbn  
http://blog.naver.com/hyelee96/140073401311
Posted by 1010
02.Oracle/DataBase2010. 4. 19. 14:43
반응형
[오라클] like 연산에서 %, _ 문자로 검색하기
like 연산시 %는 모든 문자열을, _는 단일 문자를 나타냅니다.
%와 _가 포함되는 데이타를 조회하려면 escape문자를 지정해주면 됩니다.

select * from 테이블 where 컬럼 like '%KIMONG/_%' escape '/';

위와 같이 하면 컬럼에 KIMONG_가 포함되는 모든 열을 반환합니다.
Posted by 1010
02.Oracle/DataBase2010. 4. 5. 15:05
반응형
SELECT *
FROM A
AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '15' MINUTE);
Posted by 1010
02.Oracle/DataBase2009. 12. 9. 11:34
반응형
오라클 데이타딕셔너리

All_all_tables : user가 access할수있는 모든 Table
All_catalog : user가 access할수있는 모든 Table, Views, synonyms, sequence
All_clusters : user가 access할수있는 모든 clusters
less..
All_col_comments : user가 access할수있는 모든 Table,Views에 대한 칼럼comments
All_col_privs : user에게 또는 Public에게 허용된 모든 칼럼에 대한 권한.
All_col_privs_made : user가 부여한 칼럼에 대한 권한.
All_col_privs_recd : user에게 또는 Public에게 허용된 모든 칼럼에 대한 권한.
All_coll_types : user가 access 할수 있는 모든 collection type
All_cons_columns : 제약조건에 관련된 칼럼, access할수 있는 대한 정보
All_constraints : access할수 있는 테이블에 대한 제약조건.
All_db_links : user가 access 할수 있는 데이터베이스 link
All_def_audit_opts : 오브젝트가 생성될때 적용될수있는 default오브젝트감사내용.
All_dependencies : user가 access할수있는 오브젝트간의 dependencies(참조,link)
All_directories : user가 access할 수 있는 모든 directories (owner 는 항상 sys)
All_errors : user가 access할수있는 모든 objects(view,procedure,package, function,
packagebody) 에 대한 에러.
All_ind_columns : user가 access할수있는 테이블에 대한 인덱스의 칼럼.
All_ind_partitions : user가 access할수있는 인덱스partition, partition에 대한
storage매개변수, Analyze명령에 의해 결정된 partition통계.
All_indexes : user가 access할수있는 테이블의 인덱스.
이 view의 통계를 수집하기위해, Analyze명령을 사용한다.
병렬partition인텍스탐색을 지원한다.
All_labels : system labels 에 대한 Oracle server view.
All_libraries : user가 access할 수 있는 모든 libraries.
All_lobs : user가 access할 수 있는 모든테이블에 포함된 LOBs.
All_method_params : user가 access할 수 있는 method와 그method의 parameter.
All_method_results :
All_nested_tables : user가 access할수있는테이블내의 Nested Table
All_object_tables : user가 access할수있는테이블의모든정보.
All_objects : user가 access할수있는objects(index partition,table partition,package,
package body, trigger)
All_part_col_statistics : user가 access할 수 있는 테이블partition에 대한 칼럼통계와
막대그래프화된 정보.
All_part_histograms : user가 access할수있는 테이블partition의 histograms에 대한
histogram정보.
All_part_indexes : user가 access할수있는 모든partition된 index의 partition정보.
All_part_key_columns :user가 access할수있는 partition된 objects의 partition key
칼럼에 대한정보
All_part_tables : user가 access할수있는partition된 Table에 대한 partition정보.
All_refresh : user가 access할수있는모든 refresh groups.
All_refresh_children : user가 access할 수 있는 refresh groups 안의 모든objects
All_refs : user가 access할 수 있는 칼럼중 REF칼럼과, REF속성.
All_registered_snapshots : 모든 등록된 snapshots.
All_sequences : user가 access할수있는 sequences.
All_snapshot_logs : 모든 snapshot logs.
All_snapshot_refresh_times : 모든 snapshot refresh times.
All_snapshots : user가 acces할수있는 모든 snapshots.
All_source : user가 access할수있는 모든 stored objects의 text source.
All_synonyms : user가 access할수있는 모든 synonyms.
All_tab_col_statistics : 'User_tab_columns' view안의 정보에대한 칼럼통계와 그래프정보
All_tab_columns : user가 access할수있는모든 table, views, clusters에 대한 칼럼.
이view를 활용하기위해서는 Analyze명령어를 사용한다.
All_tab_comments : user가 access할 수 있는 모든 table, views에 대한 comments.
All_tab_histograms : user가 access할수있는table, views에 대한 histograms.
All_tab_partitions : user가 access할수 있는 각각의 테이블partition에 대한
partition정보, storage parameter, Analyze명령에 의한

통계정보등을 서술한다.
All_tab_privs : user혹은 PUBLIC가 부여받은 오브젝트권한.
All_tab_privs_made : user가 부여한 user권한과 오브젝트권한.
All_tab_privs_recd : user 또는 PUBLIC이 부여받은 오브젝트권한.
All_tables : user가 access할 수 있는 모든 테이블.
Analyze명령으로 이 view의 통계를 얻을 수 있다.
All_triggers : user소유의 trigger, user소유테이블의 trigger, 또는 user가
CREATE ANY TRIGGER 권한을 갖고있다면, 모든 트리거에 대한 정보.
All_trigger_cols : user소유의 trigger, user소유테이블의 trigger, 또는 user가
CREATE ANY TRIGGER 권한을 갖고있다면, 모든 트리거에 대한 칼럼정보.
All_type_attrs : user가 access할 수 있는 type의 attributes.
All_type_methods : user가 access할수있는type의 methods.
All_types : user가 access할 수 있는 type.
All_updatable_columns : join view에서 update가능한 칼럼에 대한 정보.
All_users : 데이터베이스의 모든 user에 대한 정보.
All_views : user가 access할수있는view의 텍스트.
Audit_actions : 감사추적type코드 정보.
catalog : Oracle 5.0 version과의 호환정보를 포함한다.
이view의 사용은 추천할만하지 못하다.
cat : user_catalog 에 대한 synonym.
chained_rows : ANALYZE LIST CHAINED ROWS 명령에 대한 default table.
clu : user_clusters 테이블의 synonym.
code_pieces : dba_object_size 와 user_object_size view를 create 시에 사용됨.
code_size : dba_object_size 와 user_object_size view를 create 시에 사용됨.
col : Oracle 5.0version 호환정보를 포함하고 있다.
cols : user_tab_columns view 의 synonym.
column_privileges : user가 부여한권한,부여받은권한, owner인권한,
또는 PUBLIC에게 부여받은 권한에 대한 칼럼정보.
Dba_2pc_neighbors : 진행중인 트랜잭션에 대한 연결 및 종료에 대한 정보.
Dba_2pc_pending : recovery를 기다리는 분산된트랜잭션에 대한 정보.
Dba_all_tables : 데이터베이스내의 모든테이블(object table, relational table).
Dba_audit_exists : "AUDIT NOT EXISTS" and "AUDIT EXISTS"에 의해 생성된
감사추적요소.
Dba_audit_object : 시스템내의 모든 object에 대한 감사추적기록.
Dba_audit_session : 세션연결과 종료에 관련된 모든 감사 추적기록.
Dba_audit_statement : GRANT, REVOKE, AUDIT, NOAUDIT, ALTER SYSTEM
관련된 감사추적기록.
Dba_audit_trail : 모든 감사추적요소.
Dba_blockers : 누군가가 스스로 걸지않은 lock이 해제되기를 기다리는 session정보.
Dba_catalog : 모든 데이터베이스 table, views, synonyms 과 sequence에 대한 정보.
Dba_clu_columns : cluster칼럼과 table칼럼의 mapping정보.
Dba_clusters : 데이터베이스내에 있는 모든 cluster.
Dba_col_comments : 데이터베이스내의 모든 table, views의 칼럼에대한 comments.
Dba_col_privs : 데이터베이스내의 칼럼에 대한 모든권한.
Dba_coll_types : 데이터베이스내의 모든 collection type, VARRAYs, nested tables,
object tables 등에 대한 정보.
Dba_constraints : 모든테이블에 대한 constraint(primary, check, unique,
referential integrity, with check option on a view,

with read only on a view) 정보.
Dba_cons_columns : constraint 정의안에 있는 access가능한 칼럼에 대한 정보.
Dba_data_files : 데이터베이스파일에 관한 정보.
Dba_db_links : 데이터베이스내의 모든 Link.
Dba_Ddl_locks : 데이터베이스내의 모든 DDL lock과 DDL lock이 현저하게
요구되는 사항에 관한정보.
Dba_dependencies : object 에 대한 Dependence.(REF, HARD)
Dba_directories : 데이터베이스내의 모든 directory objects.
Dba_Dml_locks : 데이터베이스내에 구성된모든 DML lock과 DML lock이
현저하게 요구되는사항에 관한정보.
Dba_errors : 데이터베이스내의 저장된 object에 대해 가장최근에 발생된 error.
Dba_exp_files : export파일에 대한 정보.
Dba_exp_objects : 점진적으로 export 되고있는 object에 대한 정보.
Dba_exp_version : 가장최근에 export된 session에 대한 version 정보.

Dba_extents : 데이터베이스내의 모든 세그먼트를 이루는 extents에 대한 정보.
Dba_free_space : 모든 테이블스페이스내의 free extents의 정보.
Dba_free_space_coalesced : 테이블스페이스내의 합쳐진 공간에 대한 통계정보.

Dba_indexes : 데이터베이스내의 모든 index. 통계정보를 얻기위해 Analyze를 사용.
Dba_ind_columns : 모든테이블과 클러스터에서 인덱스를 구성하는 칼럼에 대한정보.
Dba_ind_partitions : 각각의 index파티션에 대해서, 파티션정보, 파티션에대한
storage 매개변수, Analyze에 결정된 파티션통계자료.
Dba_jobs : 데이터베이스에 있는 모든 Jobs.
Dba_jobs_running : 데이터베이스내에 현재 실행중인 모든 Jobs.
Dba_libraries : 데이터베이스내의 모든 libraries.
Dba_lobs : 모든 테이블에 포함된 LOBs.
Dba_locks : 데이터베이스내에 생성된 모든 lock, latch과 lock,latch가
현저하게 요구되는 사항에 대한 정보.
Dba_method_params : 데이터베이스내에 type에 대한 method 매개변수.
Dba_method_results : 데이터베이스내에 type에 대한 method results.
Dba_nested_tables : 모든테이블내에 포함된 nested table에 대한 정보.
Dba_object_size : PL/SQL object에 대한 size, bytes.
Dba_object_tables : 데이터베이스내에 모든 object tables.
Dba_objects : 데이터베이스내에 모든 objects.(index partition, table partition,
package,package_body,trigger)
Dba_obj_audit_opts : 모든 table, view에 대한 감사 option.
Dba_part_col_statistics : 모든 table 파티션에 대한 칼럼통계와 그래프정보.
Dba_part_histograms : 모든 table 파티션의 histogram에 대한 데이터(endpoint).
Dba_part_indexes : 모든 partition index에 대한 정보.
Dba_part_key_columns : 모든 partition된 object에 대한 분할키칼럼정보.
Dba_part_tables : 모든 partition된 table에 대한 정보.
Dba_priv_audit_opts : 시스템과 user에 의해 감사를 받고있는 시스템 privileges.
Dba_profiles : 모든 profiles과 해당 profile의 limit을 나타냄.
Dba_queue_schedules : 메시지를 전달하는 schedule.
Dba_queue_tables : 데이터베이스내에 생성된 모든 queue테이블의
queue type의 name과 type.
Dba_Queus : 데이터베이스내의 모든 queue에 대한 동작특성.
Dba_rchild : refresh group 안의 모든 children object.
Dba_refresh : 모든 refresh group 에 대한 정보.
Dba_refresh_children : refresh group 안의 모든 object에 대한 정보.
Dba_refs : 데이터베이스내의 모든 테이블의 REF칼럼과, REF 속성을 가진 칼럼.
Dba_refistered_snapshot_groups : 모든 snapshot 사본 그룹.
Dba_registered_snapshots : 지역테이블의 원격snapshot 에 대한 정보.
Dba_rgroup : 모든 refresh group.
Dba_roles : 모든 데이터베이스내에 존재하는 roles.
Dba_role_privs : user와 role에 부여된 role에 대한 정보.
Dba_rollback_segs : rollback segments 에 대한 정보.
Dba_segments : 모든 데이터베이스 segment에 대한 할당된 storage에 대한 정보.
Dba_sequences : 모든 데이터베이스내의 sequences 에 대한 정보.
Dba_snapshot_logs : 모든 데이터베이스내의 snapshot_logs.
Dba_snapshot_refresh_times : snapshot refresh 한 시간.
Dba_snapshots : 모든 데이터베이스내의 snapshots.
Dba_source : 모든 데이터베이스내의 저장object 의 source를포함.
Dba_stmt_audit_opts : system, user에 의한 현재의 감사option에 대한 정보.
Dba_synonyms : 데이터베이스내의 모든 synonyms
Dba_sys_privs : user에게 부여된 system privilege와 role.
Dba_tab_col_statistics : Dba_tab_columns view에 있는정보에 대한 칼럼통계와
그래프정보
Dba_tab_columns : 모든 table, view, cluster에 대한 칼럼정보. Analyze명령어사용.
Dba_tab_comments : 데이터베이스내의 모든 table, view에 대한 주석.
Dba_tab_histograms : 모든 table의 칼럼에 대한 histogram.
Dba_tab_partitions : 각각의 table partition에 대해서, partition level의 partition정보와,
partition의 storage매개변수 ,Analyze 에의해 결정된 여러 partition통계정보.
Dba_tab_privs : 모든 데이터베이스내의 object에 부여된 권한.
Dba_tables : 모든 데이터베이스내의 관계형테이블에 관한정보.Analyze로
통계정보를 얻을수 있다.
Dba_tablespaces : 모든 테이블스페이스에 관한정보.
Dba_triggers : 모든 데이터베이스내의 trigger 정보.
Dba_trigger_cols : 모든 trigger에서 사용된 칼럼정보.
Dba_ts_quotas : 모든 user에게 할당된 tablespace.
Dba_type_attrs : 데이터베이스내의 type에 대한 속성.
Dba_type_methods : 데이터베이스내의 모든 type에 대한 methods.
Dba_types : 데이터베이스내의 모든 추상적데이터type.
Dba_updatable_columns : join view에서 데이터베이스관리자가
update할수있는칼럼정보.
Dba_users : 데이터베이스내의 모든 user정보.
Dba_views : 모든 데이터베이스내의 view의 text.
Dbms_alert!_info : 등록된 alert!정보.
Dbms_lock_allocated : 사용자에게 할당된 lock정보.
Deptree : utldtree.sql 에의해 생성되며, object의 dependency tree정보를 포함함.
'Sys' user인 경우. 이 object에 관련된 공유커서를 나타내고,
다른 user인 경우공유커서이외의 object를 나타낸다.
다른 user는 공유커서정보를 얻기위해, Sys.deptree를 access할수있다.

Dictionary : data dictionary table, view에 대한 정보.
Dict_columns : data dictionary table, view에 대한 칼럼.
Error_size : Dba_obejct_size 와 user_obejct_size view를 create 할때 사용된다.
Exceptions : 무결성제약조건에 위배되는 정보를 포함. utlexcpt.sql 로 생성.
File_lock : 병렬서버view. 초기화파라미터 GC_FILE_TO_LOCKS 에 명시된,
데이터파일에 PCM lock의 mapping정보.
File_ping : 병렬서버view.각데이타파일에 할당된 block의 수.
GC_FILES_TO_LOCKS 최적값을 구하기 위해 현존하는 데이터파일의
access방법을 결정하는데 이 정보를사용할 수 있다.
FILEXT$ : DBA_DATA_FILES 와 동일. (DBA_DATA_FILES의 사용을 추천)
GLOBAL_NAME : 현제 데이터베이스의 유일한 이름.
HS_ALL_CAPS : 모든 비 Oracle Data store (FDS) 와 관련된 특성에 관한정보.
HS_ALL_DD : 모든 비 Oracle Data store(FDS)에 대한 Data dictionary.
HS_ALL_INITS : 비 Oracle Data store(FDS)에 대한 초기화 매개변수.
HS_BASE_CAPS : 비 Oracle Data store(FDS)에 대한 기본특성에 관한정보.
HS_BASE_DD : 비 Oracle Data store(FDS)에 대한 Data dictionary.
HS_CLASS_CAPS : 비 Oracle Data store(FDS)에 포함된 class-specific 특성정보.
HS_CLASS_DD : 비 Oracle Data store(FDS) class_specific data dictionary.
HS_CLASS_INIT : 비 Oracle Data store(FDS) class-specific 초기화 매개변수.
HS_EXTERNAL_OBJECT_PRIVILEGES : user에게 부여된 object권한.
HS_EXTERNAL_OBJECTS : oracle server에서 access가능한 external obejct.
HS_EXTERNAL_USER_PRIVILEGES : 어느 특정object에 국한되지않은 모든
부여된권한
HS_FDS_CLASS : 비 oracle (FDS) class 에 관한 정보.
HS_FDS_INST : 비 oracle (FDS) instance에 관한정보.
HS_INST_CAPS : instance-specific 특성정보.
HS_INST_DD : 비 oracle (FDS) instance-specific data dictionary 변경정보.
HS_INST_INIT : 비 oracle (FDS) instance-specific 초기화 매개변수정보.
IDEPTREE : UTLDTREE.sql 로 생성하고, 관련tree를 나타냄.
Deptree의 자동정렬버젼.
INDEX_HISTOGRAM : Analyze index...validate structure 명령에 대한정보.
INDEX_STATS : 마지막 Analyze index..validate structure 명령에 대한정보.
NLS_DATABASE_PARAMETERS : 데이터베이스의 NLS 매개변수.
NLS_INSTANCE_PARAMETERS : instance의 NLS 매개변수.
NLS_SESSION_PARAMETERS : user session의 NLS 매개변수.

OBJ : user_objects 의 synonym.
PARSED_PIECES : Dba_object_size, User_object_size view를 생성시에 필요.
PARSED_SIZE : Dba_obejct_size, User_object_size view를 생성시에 필요.
Plan_table : explain plan의 결과에 대한 table. utlxplan.sql로 생성.
Product_component_version : Oracle 제품군의 버전과 상태설명.


Pstubtbl : Pstub utility에 의해 생성된 stub에 관한정보.
Publicsyn : public synonym 에 관한 정보.
Public_dependency : object와 관련된 dependencies.(parent object)
Resource_cost : 각각의 resource에 대한 cost.
Resource_map : 각각의 resource에 대한 정보.(resource name, resource number)
Role_role_privs : 다른 role에 부여된 role정보.(user가 access가능한 role에 한해)
Role_sys_privs : 다른 role에 부여된 system role정보(user가 access가능한role에 한해)
Role_tab_privs : 다른 role에 부여된 table privileges정보.
(user가 access가능한role에 한해)

SEQ : user_sequences 의 synonym.
Session_privs : 현재 user에게 사용가능한 권한.
Session_roles : 현재 user에게 사용가능한 roles.
Source_size : Dba_object_size, User_object_size view를 생성시 필요.
Stmt_audit_option_map : 감사 option type code정보.
Syn : user_synonyms 에 대한 synonym.
Synonyms : Oracle ver 5.와 호환성을 포함. not recommend
Syscatalog : Oracle ver 5.와 호환성을 포함. not recommend
Sysfiles : Oracle ver 5.와 호환성을 포함. not recommend
Syssegobj : Oracle ver 5.와 호환성을 포함. not recommend
System_privilege_map : system privilege code에 대한 정보.
Sys_objects : object ID와 object type 그리고 segment data block주소를 매핑하는정보.
Tab : Oracle ver 5.와 호환성을 포함. not recommend
Table_privileges : user가 부여한, 부여받은, 소유한, 그리고 PUBLIC으로
부여된 object 권한정보. Oracle ver 6.과 호환성을 포함. not recommend.
Table_privilege_map : access 가능한 권한code/권한명칭 정보.
Tabs : User_tables 의 synonym.
Tabquotas : Oracle ver 5.와 호환성을 포함. not recommend
Trusted_servers : 분산환경에서 서버가 신뢰할만한지를 나타냄.
Tp_pitr_check : catpitr.sql 에 의해 생성. 테이블스페이스의 point-in-time복구를
방해할지도 모르는 dependencies혹은 restriction에 관한 정보제공.
Ts_pitr_objects_to_be_dropped : 테이블스페이스의 point-in-time복구수행의 결과
손실된 object에 대한 정보. (point-in-time recovery의 경우만 해당).
User_all_tables : user가 사용가능한 테이블(object table, relational table)정보.
User_arguments : user가 access가능한 object의 매개변수정보.
User_Audit_object : cataudit.sql로 생성. object에 관련된 감사추적기록.
User_Audit_session : cataudit.sql로 생성. user의 연결/종료에 관련된 감사추적기록.
User_Audit_statement : cataudit.sql로 생성. user에 의해 실행된 GRANT,REVOKE,
AUDIT, NOAUDIT, ALTER SYSTEM 명령에 대한 감사추적기록.


User_Audit_trail : user와 관련된 전반적인 사항의 감사추적기록.
User_catalog : user 소유의 table, views, synonyms, sequences 의 이름과 type.
User_clusters : user소유의 cluster.
User_clu_columns : user table 의 칼럼과 cluster칼럼과의 매핑테이블.
User_col_comments : user 의 table, view의 칼럼에 대한 주석.
User_col_privs : user 가 소유한, 부여한, 부여받은 칼럼에 대한 권한.
User_col_privs_made : user 소유 object의 칼럼에 대한 권한.
User_col_privs_recd : user가 부여받은 칼럼에 대한 권한.
User_coll_types : user가 명명한 collection type정보.
User_constraints : user소유 테이블의 제약조건정의.
User_cons_columns : user소유 제약조건에 정의된 칼럼에 대한정보.
User_db_links : user소유 데이터베이스링크에 대한정보.
User_dependencies : user소유 object에 대한 dependencies.
User_errors : user소유 저장 object에 대한 현재의 에러.
User_extents : user소유 object에 속하는 세그먼트의 extent 정보.
User_free_space : user가 access가능한 테이블스페이스내의 free extent 정보.
User_indexes : user 소유의 indexes. Analyze명령을 사용해야함. 병렬서버를 지원.
User_ind_columns : user소유 index 또는 user소유 table 의 칼럼정보.
User_ind_partitions : user소유의 index partition각각에 대한설명과, partition정보,
partition의 storage 매개변수, Analyze명령으로 결정된 여러partition통계
User_jobs : user소유의 모든 job.(export/import!, execution)
User_libraries : user소유의 모든 libraries .
User_lobs : user소유의 table에포함된 LOBs정보.
internal LOBs( BLOBs, NCLOBs) 만해당, external LOBs(i.e, BFILES)은 아님.
User_method_params : user type의 method 매개변수.
User_method_results : user type의 method 의 results.
User_nested_tables : user소유 테이블에 포함된 nested tables.
User_object_tables : user가 사용가능한 object table.
User_objects : user소유의 object.(index partition, table partition, package,
packagebody, trigger)
User_object_size : user소유의 PL/SQL object.
User_obj_audit_opts : cataudit.sql로 생성. user소유의 table,view에 대한 감사option
User_part_col_statistics : user소유의 tablepartition정보에 대한 칼럼통계와 그래프정보.
User_part_histograms : user가 access할수있는 table partition의 histogram에 대한
그래프데이터(end-pointer).
User_part_key_columns : user소유의 partition object의 partition key칼럼에 대한정보.
User_part_indexes : 모든 user소유의 partition index의 partition정보.
User_part_tables : user소유의 partition table에 대한 object 레벨의 partition정보.


User_password_limits : user에게 적용된 password profile parameter.
User_queue_tables : user소유 스키마에 생성된 queue table내부의 queues정보.
User_Queues : user스키마의 모든 queue에 대한 동작 특성을 나타냄.
User_refresh : 모든 refresh group.
User_refresh_children : user가 소유한 refresh group 내부의 object에 관한정보.
User_refs : user소유테이블의 object type칼럼중 REF칼럼, REF속성.
User_resource_limits : 현재 user의 resource 한계.
User_role_privs : user에게 부여된 roles.
User_segments : user오브젝트에 포함된 데이터베이스 segments의 storage할당정보.
User_sequences : user 소유의 sequences.
User_snapshots : user 가 볼수있는 snapshots.
User_snapshot_logs : user 소유의 모든 snapshot logs.
User_source : user소유 저장 objects 의 모든 text source.
User_snapshot_refresh_times : snapshot refresh time.
User_synonyms : user소유의 synonym.
User_sys_privs : user에게 부여된 system 권한.
User_tab_col_statistics : user_tab_columns view에 대한 칼럼통계와
그래프정보를 나타냄.
User_tab_columns : user소유의 table, view, cluster의 칼럼정보.(Analyze명령사용)
User_tab_comments : user소유의 table, view에 대한 주석.
User_tab_histograms : user소유 table의 칼럼에 대한 histogram.
User_tab_partitions : user소유 table partition에 대한, partition 레벨의 분할정보와,
partition의 storage매개변수, Analyze에 의해 집계된 여러통계정보.
User_tab_privs : user가 소유한, 부여한, 부여받은 object에 대한 권한 정보.
User_tab_privs_made : user가 소유한 object에 관한 모든 권한.
User_tab_privs_recd : user가 부여받은 object 권한정보.
User_tables : user소유의 relational table에 대한 정보. (Analyze명령사용)
User_tablespaces : user가 access 가능한 tablespaces에 대한 설명.
User_triggers : user가 소유한 triggers 정보.
User_trigger_cols : user가 소유한 또는 user테이블에 있는 trigger안의 column 정보.
User_ts_quotas : user에게 할당된 tablespace quotas 정보.
User_types : 테이블안의 user소유의 type.
User_type_attrs : user type의 속성을 나타냄.
User_type_methods : user type의 methods를 나타냄.
User_updatable_columns : join view에서 사용자에게 update가 허용된 칼럼정보.
User_users : 현재 user에 관한 정보.
User_views : user 소유의 view에 대한 text.




FILEXT$ : 데이터파일의 AUTOEXTEND를 ON으로 변경했을 때 처음 생성.
V$ACCESS : 현재 데이터베이스내의 lock이걸린 object와 그 object를
access 하려는 session id.
V$ACTIVE_INSTANCES : 현재 데이터베이스내의 Mount된
모든 인스턴스에대하여 인스턴스 이름과, 번호를 매치.
V$AQ : 데이터베이스내의 모든 Queue에 대한 통계.
V$ARCHIVE : Archive에 필요한 redo log file에 대한 정보.
각각의 행은 하나의 thread에 대한 정보이다. V$LOG도 동일한정보.
V$ARCHIVE_DEST : 현재의 instance에서, 모든 archive log destination,
현재값, mode, status.
V$ARCHIVED_LOG : archive log 이름을 포함하는 controlfile에 대한 archive log 정보,
archive log 기록은 online중 redo log가 성공적으로 저장되었거나,
clear(log가 clear되면, name칼럼은 null이 된다)된후 insert된다.
V$BACKUP : 모든 online 데이터파일의 backup 상태를 나타낸다.
V$BACKUP_CORRUPTION : 데이터파일의 backup 중 에러정보를 나타낸다.
에러들은 control 파일과 achived log backup 에 포함되지 않는다.
V$BACK_DATAFILE : control 파일에서 datafile과 controlfile 의 backup정보를 보여줌.
V$BACK_DEVICE : 지원되는 backup 디바이스정보.
V$BACK_PIECE : controlfile에서 backup piece에 대한 정보를 포함.
각각의 backup set 은 하나 또는 그이상의 backup piece로 구성된다.
V$BACKUP_REDOLOG : controlfile에서 backup set의 저장된 log에 대한 정보.
Online redo logs는 곧바로 backup 되지 않는다: 먼저 disk에 저장된후 backup
된다. 저장된 log backup set 은 하나 또는 그이상의 logs들로 구성된다.
V$BACKUP_SET : controlfile에서 backupset 정보를 보여줌.
backup set 행은 backup set이 성공적으로 완료되었을 때 insert된다.
V$BGPROCESS : 백그라운드 프로세스 정보.
V$BH : 병렬서버 view이다.
SGA내의 모든 버퍼에 대한 ping의 상태와 수를 나타낸다.
V$BUFFER_POOL : 인스턴스내에서 사용가능한 모든 버퍼풀에 대한정보.
V$CACHE : 병렬서버 view이다.
특정데이타베이스object에 관련된 현재의 인스턴스의
SGA내부의 각각의 block에 대한 block header에 대한 정보.
V$CACHE_LOCK : 병렬서버view. platform-specific lock manager 식별자를 제외하면,
V$CACHE와 유사하다.
V$CIRCUIT : 가상 circuit에 관한 정보이며, 가상circuit란 dispatcher와 server를
통한 데이터베이스와의 user 연결을 말한다.
V$CLASS_PING : 각각blockclass마다 ping된 블록의 수를나타낸다.
다른class블록의 충돌을 비교하기위해 사용.
V$COMPATIBILITY : 이전버전으로 downgrade를 방지하기위해
데이터베이스인스턴스에 의해 사용된특성들을 설명.
다른 인스턴스가 갖고있는 특성에 영향을 미치지 않으며,
데이터베이스가 완전히 정지한이후에도 존재하지 않는 일시적인
비호환성들을 포함할수도 있다.
V$COMPATSEG : 이전버전으로 되돌아가는 것을 막기위한 데이터베이스에서
사용되는 영구적인 특성들.
V$CONTROLFILE : 컨트롤파일의 이름과 상태.
V$CONTROLFILE_RECORD_SECTION : 컨트롤파일의 record에 대한 정보.
V$COPY_CORRUPTION : 컨트롤파일로부터 데이터파일의 복사불량에 대한 정보.
V$CURRENT_BUCKET : 캐쉬내의 버퍼의 수가 감소할때 발생할 수 있는
캐쉬손실의 경우수를 예상하는데 유용.
V$DATABASE : control file 로부터 데이터베이스정보를 포함.
V$DATAFILE : 컨트롤파일로부터데이타파일에대한 정보를 포함.
V$DATAFILE_COPY :컨트롤파일로부터 데이터파일의 복사에 대한 정보를포함.
V$DATAFILE_HEADER : 데이터파일헤더에 대한 정보.

V$DBFILE : 데이터베이스를 구성하는 모든 데이터파일.
대신에 V$DATAFILE 추천한다.
V$DBLINK : 세션에 의해 open된 데이터베이스링크에 대한 설명.
이 데이터베이스링크들은 닫히기전에 commit되거나 rollback되어야만 한다.

V$DB_OBJECT_CACHE : library cache에 cach된 데이터베이스오브젝트를 나타냄.
V$DB_PIPES : 데이터베이스내에 현재 운영중인 pipe에 대한 설명.
V$DELETED_OBJECT : 삭제된 archived 로그, 데이터파일 copy,
컨트롤파일에서 백업piece 에 대한 정보. 이뷰의 목적은 복구목록의
재동조작업을 최적화하는 것이다. archived 로그나, 데이터파일 copy,
백업piece 등이 삭제될때는 해당하는 행이삭제되었음이 표시된다.
V$DISPATCHER : dispatcher 프로세스에 관한 정보.
V$DISPATCHER_RATE : dispatcher 프로세서에 관련된 확률통계.
V$DLM_CONVERT_LOCAL : lock 변환작업에 대한 경과시간.
V$DLM_CONVERT_REMOTE : 원격 lock변환작업에 대한 경과시간.
V$DLM_LATCH : DLM 잠금에 대한 통계.
각각의 잠금에 대한 통계보다는, 각 타입에 대한 총계를 포함.
개념적으로 IMM_GETS/TTL_GETS 값은 1에 가깝게 된다.
V$DLM_LOCKS : 병렬서버 view이다. 블록화되었거나, 다른 것을
블록화하고있는 lock manager에 알려진 모든 lock에 대한 정보.
V$DML_MISC : 잡다한 DLM 통계에 대한 정보.
V$ENABLEDPRIVS:사용가능한 권한에 대한정보, 이들권한은
SYS.SYSTEM_PRIVILEGES_MAP테이블에 존재해야만 한다.
V$ENQUEUE_LOCK : 큐에 대기상태인 오브젝트에의해 소유된 모든 lock이
view의 칼럼은 V$LOCK의 칼럼과 동일하다.
자세한 것은 V$LOCK을 참고.
V$EVENT_NAME : wait event 에 대한 정보.
V$EXECUTION : 병렬 질의 실행에 대한 정보.
V$EXECUTION_LOCATION : 병렬 질의 실행 트리의 위치에 대한 자세한 정보.
V$FALSE_PING : 병렬서버view. ping에 실패지도 모르는 버퍼에 대한 정보.
즉, 10회이상ping된 다른 버퍼와
동일한 lock으로 잠겨있는 버퍼를 말한다.
ping이 실패로 판명된 버퍼는 lock충돌을 감소시키기위해
1-44페이지의 "GC_FILES_TO_LOCK"에 다시 매핑된다.
V$FILE_PING : 데이터파일마다 ping된 블록수를 보여줌. 이정보는 현존하는
데이터파일에 대한 access패턴을 결정하는데 and,
데이터파일블록을 PCM lock에 새로 매핑하는것을 결정하는데 사용된다.
V$FILESTAT : 파일 read/write 통계.
V$FIXED_TABLE : 데이터베이스내의 모든 동적실행테이블, views, 유도테이블.
실제테이블을 참조하는 약간의 V$테이블은 리스트에 없다.
V$FIXED_VIEW_DEFINITION : (V$로 시작하는)고정view에 대한 설명.
유의해서 사용해야한다.
V$GLOBAL_TRANSACTION : 현재 활동중인 트랜잭션에 대한 설명.
V$INDEXED_FIXED_COLUMN : index된 동적실행테이블(X$ table)의 칼럼에
대한 설명. X$ table은 경고없이 변경할수있다.
이view는 보다 효과적으로 고정뷰(V$view)에 대한
V$INSTANCE : 현재의 인스턴스의 상태를 나타냄.
V$INSTANCE의 버전은 V$INSTANCE의 초기버전과 호환성이 없다.
V$LATCH : 하위 잠금에 대한 통계와 상위 잠금에 대한 요약통계.
즉, 상위잠금에 대한 통계는 그 하위잠금에 대한 각각의 통계를 포함한다.
V$LATCHHOLDER : 현재잠금에 대한 정보.
V$LATCHNAME : V$LATCH 에 있는 잠금에 대한 디코드된 잠금이름에 대한
정보. V$LATCHNAME의 행들은 V$LATCH의 행들과 1:1로 대응된다.

V$LATCH_CHILDREN : 하위잠금에 대한 통계를 포함.
V$LATCH의 칼럼에 child# 칼럼이추가되었다. LATCH#칼럼이 서로
동일하다면, 하위잠금이 동일한 상위잠금을 갖는 것이다.
V$LATCH_MISSES : 잠금을 획득하는데 실패한 시도에 대한 통계.
V$LATCH_PARENT : 상위잠금에 대한 통계.
V$LATCH_PARENT 칼럼은 V$LATCH칼럼과 동일하다.
V$LIBRARYCACHE : library cache의 실행과 활동통계.
V$LICENSE : license 한계에 대한 정보.
V$LOADCSTAT : 직접적재하는동안 컴파일된 SQL*loader 통계정보.
이테이블에대한 어떤 Select 문도 "no rows returned" 결과가 나오는데,
왜냐면, 동일한 시간에 데이터를 적재하면서, 쿼리를 날릴수 없기 때문이다.

V$LOCK : 현재 Oracle 서버에 의해 확립된 잠금에 대한 정보나 lock또는
latch에 대한 두드러진요청
V$LOCK_ACTIVITY : 병렬서버view이다. V$LOCK_ACTIVITY는 현재의
인스턴스의 DLM잠금동작을 나타낸다.
각각의 행은 잠금동작의 타입과 일치된다.
V$LOCK_ELEMENT : 병렬서버view이다. 버퍼캐쉬에 의해사용된 각각의
PCM잠금에 대해 v$LOCK_ELEMENT 에 한행이다.
잠금요소에 대응되는 PCM잠금의 이름은 'BL',indx,class등이다.
V$LOCKED_OBJECT : 시스템안의 모든 트랜잭션에 걸린 잠금을 나타낸다.
V$LOCKED_WITH_COLLISIONS : 병렬서버view이다.
여러버퍼를 보호하는 lock을 찾는데 사용되며, 그 버퍼들은 최소한
10회이상 각각 강제로 쓰여지거나, 강제로 읽혀진 버퍼들이다.
V$LOG : 컨트롤파일로부터 log 파일정보를 포함한다.
V$LOGFILE : redo log 파일정보. redo log 그룹과 멤버 파일명.
V$LOGHIST : 컨트롤파일로부터 log history정보를 포함. 지속적인 호환성을
포함하고 있다. 대신에 V$LOG_HISTORY의 사용을 권장한다.
V$LOG_HISTORY : 컨트롤파일로부터 log history 정보를 포함한다.
V$MLS_PARAMETERS : Oracle Server의 확정된 초기화파라미터를 나타냄.
V$MTS : multi-threaded server의 성능향상을위한 정보를 포함.
V$MYSTAT : 현재 세션에 대한 통계값포함.
V$NLS_PARAMETERS : 현재의 NLS 매개변수의 값들을 포함.
V$NLS_VALID_VALUES : 유효한 NLS 매개변수값.
V$OBJECT_DEPENDENCY : 현재 공유풀에 적재되어있는 package, procedure,
cursor등에 관련되어있는 object를 결정하는데 사용된다.
예를들면, V$SESSION, V$SQL등과 조인하면, 현재 어떤 user가
실행중인 SQL문에서 어떤 테이블이 사용되었는지를 알아낼수가 있다.
V$OFFLINE_RANGE : 컨트롤파일로부터 offline된 datafile을 보여준다.
DATAFILE행에 저장되어있는 각각의 데이터파일의 최종offline 간격을
보여줌. offline 간격은 테이블스페이스가 처음 offline normal,
또는 Read Only로 변경되고난이후 다시 online 또는 read-write로
변경된다음에 확정된다.
데이터파일이 스스로 Offline로 변경되거나 테이블스페이스가
OFFLINE IMMEDIATE로 변경되면, offline간격은 확정되지 않는다.

V$OPEN_CURSOR : 각각 user 세션이 열렸있거나, 정지되어있는 cursor를 보여준다.
V$OPTION : Oracle Server와 같이 설치된 선택사항들.
V$PARAMETER : 초기화 파라미터에 대한 설명이다.
V$PING : 병렬서버view이다.
최소한 1번이상 ping된 블록만을 보여준다는 것을 제외하고 V$CACHE view와
동일하다.특정 데이터베이스 object와 관련된 현재의 인스턴스내의 SGA에
있는 각각의 블록에대한 block header정보를 포함하고 있다.
V$PQ_SESSTAT : 병렬쿼리에 대한 session 통계를 포함.
V$PQ_SLAVE : 인스턴스내에 실행중인 parallel 쿼리서버에 대한 통계.
V$PQ_SYSSTAT : 병렬쿼리에 대한 시스템통계.


V$PQ_TQSTAT : 병렬쿼리 동작의 통계를 포함. 통계는 질의가 완료된후에
컴파일되며 세션이 살아있는동안 계속 남아있는다.
V$PROCESS : 현재 작업중인 프로세스에 대한 정보.
LATCHWAIT 칼럼은 프로세스잠금이 무엇을 기다려야하는가를 나타내며,
LATCHSPIN 칼럼은 프로세스잠금이 동작되는 것을 나타낸다.
멀티프로세서의 경우 Oracle 프로세스는 잠금을 기다리기전에 실시한다.
V$PWFILE_USERS : password 파일로부터 유도해낸
SYSDBA, SYSOPER 권한을 부여받은 user.
V$QUEUE : 멀티쓰레드 메시지큐에 대한 정보.
V$RECENT_BUCKET : 대용량 캐쉬실행을 평가하기에 유용한 정보.
V$RECOVER_FILE : media 복구에필요한 파일의 상태를 나타냄.
V$RECOVERY_FILE_STATUS : 각각의 RECOVER명령에 대한 각 데이터파일에
대한 정보를 한행씩 포함.
Oracle프로세스가 복구를 수행하는데 유용한 정보임.
recover manager는 서버프로세스에 직접 복구를수행하도록 했을 때,
recovery manager가 이 view에서 관련된정보를 참고할 수 있다.
다른user들에게는 유용하지 않다.
V$RECOVERY_LOG : 완벽한 media복구에 필요한 archived logs에 관한 정보.
이정보는 log history view인 V$LOG_HISTORY에서 유도된 것이다.
V$RECOVERY_PROGRESS : 데이터베이스복구작업이 중간에 멈추지않도록하는데
사용되며, 복구작업을 완료하는데 요구되는 시간을 측정하는데 사용된다.
V$RECOVERY_STATUS : 현재의 복구진행상태를 나타낸다. 단지 복구를 수행하는
Process 에대한 정보만이유용하다. 복구관리자가 서버프로세스에게 복구를
수행하라고 지시할때에, 복구관리자는 이view에서
관련정보를 참조할 수 있다. 다른 user에게는 불필요하다.
V$REQDIST : MTS dispatcher의 응답시간에 대한 그래프통계를 나타내며,
time range는 버킷 number의 지수함수로 증가한다.
V$RESOURCE : 자원(resource)의 이름과 주소정보를 포함.
V$RESOURCE_LIMIT : System 자원의 부분적인 사용에 대한 정보. 자원의
소비를 모니터링함으로서 낭비를 방지하는데 사용된다.

V$ROLLNAME : 모든 online중인 rollback segments의 이름.
데이터베이스가 open시에만 조회가능.
V$ROLLSTAT : 롤백세그먼트통계정보.
V$ROWCACHE : 자료사전활동에 대한 통계.
각각의 행은 하나의 자료사전cache 통계를 포함.
V$SESSION : 현재 open된 세션에 대한 정보.
V$SESSION_CONNECT_INFO : 현재의 세션에 대한 network 연결에 대한 정보.
V$SESSION_CURSOR_CACHE : 현재의 세션에 대한 cursor 사용에 대한 정보.
SESSION_CACHED_CURSORS 초기화파라미터에 대한 효율을 측정하지는
않는다.
V$SESSION_EVENT : 세션의 event 대기에 관한정보.
V$SESSION_LONGOPS : 장시간실행되는 작업에 대한 상태. SOFAR,
TOTALWORK칼럼은 진행상태를 제공한다. 예를들어
다음요소(hach cluster creations, backup, recovery) 에 대한
작동상태를 모니터링할 수 있다.
V$SESSION_OBJECT_CACHE : 로칼서버의 현재사용중인
user세션의 object, cache통계정보.
V$SESSION_WAIT : 활동중인 세션이 대기하고있는 자원또는 이벤트이다.
V$SESSTAT : user세션 통계이다. 통계number(statistic#)에 해당하는
통계name을 찾으려면, V$STATNAME를 참고하면 된다.
V$SESS_IO : 각각의 user세션에 대한 I/O 통계이다.
V$SGA : System Global Area 에대한 간략한 정보.(name, size)
V$SGASTAT : System Global Area에 대한 자세한 정보.(name, bytes, pool)

V$SHARED_POOL_RESERVED : Shared Pool내에 예약풀과 공간을
바꾸고자할 때 도움이 되는통계.
V$SHARED_SERVER : Shared Server processes 에 대한 정보를 포함.
V$SORT_SEGMENT : 주어진 인스턴스내의 각 sort세그먼트에 대한 정보.
테이블스페이스가 Temporary 타입일때만 update된다.

V$SORT_USAGE : sort 사용에 대해 기술한다.
V$SQL : Group by절이없는 공유sql영역에대한 통계이며 입력된
원래 sql문장의 각 child의 row를 포함.
V$SQL_BIND_DATA : 데이터가 이 서버에서 추출가능하다면 이 view를
조회하는 세션에 소유된 각 커서안에 있는 각각의 원격bind변수에 대한
클라이언트에 의해 보내진 데이터.
V$SQL_BIND_METADATA : 이view를 조회하는 세션에 소유된 각커서안에 있는
각각의 원격bind변수에 대해 클라이언트에의해 제공되는 bind metadata.

V$SQL_CURSOR : 이 view를 조회하는 세션과 관련된 각 cursor에 대한 디버깅정보.
V$SQL_SHARED_MEMORY : 메모리 스냅샷에 공유된 커서에 대한 정보.
공유풀에 저장된 각SQL문은 관련된 하나또는 그이상의 하위object를
가지고 있다.
V$SQLAREA : 공유SQL영역에 대한 통계를 가지고있으며, Sql 문자열마다
한행을 포함한다. 메모리내에 존재하는, parse된, 실행을 대기하고있는
SQL문장에 대한 통계를 제공한다.
V$SQLTEXT : SGA내부의 공유SQL 커서에 속해있는 SQL문장을 포함.
V$SQLTEXT_WITH_NEWLINES : 가독성이 증가되고, 공백을 포함한 SQL문장안에
newline과 tabs을 대체하지 않는다는 것을 제외하고는 V$SQLTEXT view와
동일하다.
V$STATNAME : V$SESSTAT와 V$SYSSTAT테이블에서 나타난 statistics에 대한 이름.
V$SUBCACHE : 현재 라이브러리 캐쉬메모리에 적재된 하위 캐쉬에 대한 정보.
모든 라이브러리캐쉬에 대해 언급하고있으며, 각 라이브러리 캐쉬object마다
각 적재된 하위 캐쉬에 대해 한행을 나타낸다.
V$SYSSTAT : 시스템 통계이다. 각 statistic number(statistic#)와 관련된 statistic의
이름을 찾기위해서는, "V$STATNAME"를 보시오.
V$SYSTEM_CURSOR_CACHE : 시스템 전반적인정보라는 것을 제외하고,
V$SESSION_CURSOR_CACHE와 유사한 정보를 나타낸다.
V$SYSTEM_EVENT : 이벤트에 대한 총 wait정보. TIME_WAITED,
AVERAGE_WAIT칼럼은 급속메커니즘을 지원하지 않는 플랫폼에서
0값을 포함할 것이다. 이런 플랫폼에서 DB를 운영중이고,
이칼럼이 wait time을 줄여주기를 원한다면, 파라미터파일의
TIMED_STATISTICS를 TRUE로 세팅하면된다.
단지 이렇게 하면, 시스템 성능에 약간의 마이너스효과를 가져올 것이다.
V$SYSTEM_PARAMETER : System parameter에 대한 정보.
V$TABLESPACE : 컨트롤파일로부터 테이블스페이스 정보를 나타내준다.
V$THREAD : 컨트롤파일로부터 thread 정보를 가져온다.
V$TIMER : 1/100 초로 나타낸 경과시간. 시간은 epoch가 시작된이후부터
측정되며, epoch는 OS의 특성이며, 값이 4bytes(약 497일)를 넘을때마다
0근처의 값이 된다.
V$TRANSACTION : 시스템내의 활동중인 트랜잭션.
V$TRANSACTION_ENQUEUE : 트랜잭션 오브젝트에 의해 소유된 lock를 나타냄.
V$TYPE_SIZE : 데이터블록용량을 측정하는데 사용되는 여러
데이터베이스컴포넌트들의 SiZe.
V$VERSION : Oracle Server의 core 라이브러리 컴포넌트의 Version수이다.
각 컴포넌트에 한 row가 있다.
V$WAITSTAT : 블록점유에 대한 통계. 통계가 사용가능한 시간에만 갱신된다.

출처 : Tong - 늘푸른 소나무(松)님의 오라클-SQL통

Posted by 1010
02.Oracle/DataBase2009. 11. 27. 15:34
반응형

SQL문 튜닝 개요

Added by honghoekim, last edited by honghoekim on 7월 31, 2009

Labels:

Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.

1.문제가 있는 SQL 식별

1)느린 프로그램을 식별
2)프로그램에서 SQL을 검토
3)SQL_Trace 및 TKPROF를 사용

  • SQL문 식별이 불가능한 경우(SQL이 동적으로 생성되는 경우) SQL TRACE를 사용하여 실행된 SQL을 포함하는 Trace file을 생성한 다음 TKPROF를 사용하여 출력 파일을 생성

2.Optimizer 통계 확인

1)모든 테이블에 대한 통계를 수집

  • 모든 SQL문의 실행 계획을 결정하는 CBO는 테이블 및 인덱스에 대해 수집된 통계를 사용함.통계가 수집되지 않았거나 통계가 데이터베이스에 저장된 데이터를 대표하지 못할 경우 Optimizer에 정보가 부족해 최상의 계획을생성할 수 없다.

3.실행 계획 검토

다음 사항을 검토

1)Driving table이 최상의 필터를 가지는 계획이 되어야 한다.
2)각 단계의 조인 순서는 가장 적은 수의 행이 다음 단계로 반환됨을 의미 한다.
3)조인 방식이 반환되는 행 수에 적합.예를 들어 인덱스를 통한 중첩 루프 조인은 많은 행이 반환될 때 최적화되지 않을 수 있다.
4)뷰가 효율적으로 사용 된다.뷰에 대한 access 필요 여부 확인
5)작은 테이블에도 비의도적인 cartesian product가 없다.
6)각 테이블이 효율적으로 액세스 된다.

4.SQL문 재구성

1)AND 및 = 를 사용
2)WHERE절에 변환된 열이 포함되지 않도록 함

  • 술어 절 또는 WHERE절에 SQL 함수 사용 금지
    3)복합 모드 표현식을 빼고 암시적인 유형 변환에 유의
    4)각 작업에 대해 별도의 SQL문을 작성
  • 다양한 작업에 대해 하나의 SQL문을 사용할 경우 각 작업에 최적화 되지 않은 결과 나옴.굳이 하나의 SQL문을 사용해야 할 경우 UNION ALL 연산자를 사용
    5)서브 쿼리에 대해 IN 대신 EXISTS를 사용
    -선택적 술어가 서브 쿼리에 있는 경우는 IN을 사용.선택적 술어가 상위 쿼리에 있는 경우는 EXISTS를 사용
    6)힌트로 엑세스 경로 및 조언 순서를 제어
    -인덱스를 통해 필요한 행을 얻는 것이 더 효율적인 경우 전체 테이블 스캔 사용 금지,
    더 적은 수의 행을 Fetch하는 다른 인덱스를 대신 사용할 수 있다면 Driving 테이블에서 많은 수의 행을 Fetch하는 인덱스의 사용을 피하자,
    조인 순서에서 나중에 테이블에 적은 수의 행을 조인하는 조인 순서를 선택

5.인덱스 재구성

1)비선택적 인덱스를 제거하여 DML 속도를 높임
2)성능에 중요한 액세스 경로를 인덱스화함
3)기존에 연결된 인덱스에서 열 순서를 변경
4)인덱스에 열을 추가하여 선택성을 높임
5)IOT를 고려

6.시간 경과에 따른 실행 계획 유지 관리


출처 : http://www.javastudy.co.kr:8080/pages/viewpage.action?pageId=786591

Posted by 1010
02.Oracle/DataBase2009. 11. 25. 17:56
반응형
- http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html
  • Oracle Database 11g Release 1 (11.1.0.7.0) JDBC Drivers
    ojdbc5.jar (1,890,499 bytes) - Classes for use with JDK 1.5.
    ojdbc6.jar (1,988,051 bytes) - Classes for use with JDK 1.6.
  • Oracle Database 11g Release 1 (11.1.0.6.0) JDBC Drivers
    ojdbc5.jar (1,879,860 bytes)
    ojdbc6.jar (1,977,267 bytes)
  • Oracle Database 10g Release 2 (10.2.0.4) JDBC Drivers
    classes12.jar (1,609,607 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,555,682 bytes) - classes for use with JDK 1.4 and 1.5
  • Oracle Database 10g Release 2 (10.2.0.3) JDBC Drivers
    classes12.jar (1,600,090 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,545,954 bytes) - classes for use with JDK 1.4 and 1.5
  • Oracle Database 10g Release 2 (10.2.0.2) JDBC Drivers
    classes12.jar (1,594,191 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,540,457 bytes) - classes for use with JDK 1.4 and 1.5
  • Oracle Database 10g Release 2 (10.2.0.1.0) JDBC Drivers
    classes12.jar (1,590,491 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,536,979 bytes) - classes for use with JDK 1.4 and 1.5
  • Oracle Database 10g 10.1.0.5 JDBC Drivers
    classes12.jar (1,442,469 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,378,346 bytes) - classes for use with JDK 1.4
  • Oracle Database 10g 10.1.0.2 JDBC Drivers
    classes12.jar (1,417,089 bytes) - for use with JDK 1.2 and JDK 1.3
    ojdbc14.jar (1,352,918 bytes) - classes for use with JDK 1.4
  • Oracle9i 9.2.0.8 JDBC Drivers
    ojdbc14.jar - JDBC classes (1,212,964 bytes) - For use with JDK 1.4
    classes12.jar - JDBC classes (1,234,433bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.jar - JDBC classes (1,063,074 bytes) - For use with JDK 1.1
  • Oracle9i 9.2.0.5 JDBC Drivers
    ojdbc14.jar - JDBC classes (1,200,046 bytes) - For use with JDK 1.4
    classes12.zip - JDBC classes (1,232,604 bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes (1,063,479bytes) - For use with JDK 1.1
  • Oracle9i 9.2.0.4 JDBC Drivers
    ojdbc14.jar - JDBC classes (1,187,584 bytes) - For use with JDK 1.4
    classes12.zip - JDBC classes (1,219,950 bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes (1,052,833 bytes) - For use with JDK 1.1
  • Oracle9i 9.2.0.3 JDBC Drivers
    ojdbc14.jar - JDBC classes (1,181,679 bytes) - For use with JDK 1.4
    classes12.zip - JDBC classes (1,213,897 bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes (1,048,261 bytes) - For use with JDK 1.1
  • Oracle9i 9.2.0.1 JDBC Drivers
    ojdbc14.jar - JDBC classes ( 1,174,976 bytes) - For use with JDK 1.4
    classes12.zip - JDBC classes ( 1,207,068 bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes ( 1,043,528 Bytes) - For use with JDK 1.1
  • Oracle9i 9.0.1.4 JDBC Drivers
    classes12.zip - JDBC classes (1,143,559 bytes) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes (988,625 bytes) - For use with JDK 1.1
  • Oracle9i 9.0.1 JDBC Drivers
    classes12.zip - JDBC classes( 1,081 kb) - For use with JDK 1.2 and JDK 1.3
    classes111.zip - JDBC classes ( 936 kB) - For use with JDK 1.1
  • Oracle8i 8.1.7.1JDBC Drivers
    classes12.zip - JDBC classes ( 1,892 kB) - For use with JDK 1.2
    classes111.zip - JDBC classes ( 1,741 kB)


출처 : http://pantarei.tistory.com/tag/oracle

Posted by 1010
02.Oracle/DataBase2009. 11. 5. 18:07
반응형

EyeQ MC - Developer Site

오라클 10g 이상에서 expdp와 impdp를 사용한 tablespace 복사 방법

- 복사할 원본 tablespace 이름은 “SRC”, 사용자는 “SRC_USER”라 한다. - 복사 대상 tablespace 이름은 “COPY”, 사용자는 “COPY_USER”라 한다. - system 권한이 있어야 한다.(password는 “manager”)

< 순서 >

1. 복사본 tablespace 및 사용자 생성

2. Dump 디렉토리 설정

3. 원본 export

4. 원본 import


1. 복사본 tablespace 및 사용자 생성(SQL-Plus 로긴 필요)

ⅰ)	tablespace 생성
	CREATE TABLESPACE copy
		DATAFILE 'C:\ORACLExe\ORADATA\XE\copy00.dbf' SIZE 100M
		DEFAULT STORAGE 
		(	INITIAL    500K
 			NEXT      10K
 			MINEXTENTS 2
 			MAXEXTENTS 50
			PCTINCREASE 50);
		
ⅱ)	사용자 생성 및 권한 부여(패스워드는 동일)
	create user copy_user
		identified by copy_user
		default tablespace copy;
	
	grant connect,resource to copy_user;
	grant create table, create sequence, create view TO copy_user;
	
ⅲ)	데이타 파일 추가(사이즈에 맞게 설정)
	ALTER TABLESPACE copy
	ADD DATAFILE 'C:\ORACLExe\ORADATA\XE\copy01.dbf' SIZE 100M
	AUTOEXTEND ON NEXT 10M
	MAXSIZE 1G;	
	

2. Dump 디렉토리 설정(SQL-Plus 로긴 필요)

ⅰ) dump 받을 디렉토리 설정
	CREATE OR REPLACE DIRECTORY expdpDIR AS 'C:\temp';
ⅱ) 설정된 디렉토리 확인
	select * from dba_directories;
	
ⅲ)	디렉토리에 대한 권한 부여
	grant read, write on directory expdpDIR to system,src_user,copy_user;

3. 원본 export

ⅰ)	오라클(10g) 설치 디렉토리의 bin 디렉토리로 이동
ⅱ) export 실행
	expdp system/manager SCHEMAS=SRC directory=expdpdir dumpfile=expdpSRC.dmp job_name=SRC_JOB logfile=SRC_exp.log
	

4. 원본 import

ⅰ) 오라클(10g) 설치 디렉토리의 bin 디렉토리로 이동
ⅱ) import 실행
	impdp system/manager REMAP_SCHEMA=SRC:COPY REMAP_TABLESPACE=SRC:COPY directory=expdpDIR dumpfile=expdpSRC.dmp job_name=COPY_JOB logfile=COPY_imp.log

ⅲ) 메시지 확인
	"작업이 16:46:13에서 성공적으로 완료됨"
 
oracle_tablespace_copy.txt · 마지막 수정: 2008/12/05 11:41 작성자 jsmoon
 
Posted by 1010
02.Oracle/DataBase2009. 11. 5. 18:04
반응형
제품 : ORACLE SERVER

작성날짜 : 2004-05-28

10G DATAPUMP: REMAP TABLESPACE 기능
===================================


PURPOSE


이 문서는 datapump의 REMAP_TABLESPACE 파라미터를 사용하여 데이터베이스 객체를
하나의 테이블 스페이스에서 다른 테이블스페이스로 옮기는 방법을 설명하는 것을 목적으로
한다.

Explanation

Example


범위와 적용 방안


데이터베이스 관리자 - 오라클 기술 지원 애널리스트

다음은, REMAP_TABLESPACE 기능을 사용하여 데이터베이스 객체를 하나의 테이블스페이스로 부터
다른 테이블스페이스로 옮기는 예제를 보여주고 있다.

이 작업은 datapump 임포트에를 통해 수행되며, 다음 세개의 datapump 명령에 의해 소스 스키마로 부터
객체를 추출 할 수 있다.

expdp SYSTEM/password TABLES=<schemaname.tablename>
expdp SYSTEM/password SCHEMAS=<schema>
expdp SYSTEM/password FULL=y

다음은 Scott의 객체를 NewScott의 스키마로 datapump export 명령에 의해 추출하는 절차를
보여준다.

expdp SYSTEM/manager SCHEMAS=scott DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp

=====================

sun1/home/prod/scmiller> sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Dec 23 14:29:18 2003

Copyright (c) 1982, 2003, Oracle. All rights reserved.

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create directory dpump_dir1 as '/home/prod/scmiller';

Directory created.

SQL> grant read, write on directory dpump_dir1 to public;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

sun1/home/prod/scmiller> expdp system/manager schemas=scott
DIRECTORY=dpump_dir1 DUMPFILE=newtbs.dmp

Export: Release 10.1.0.2.0 - on Tuesday, 13 January, 2004 12:29

Copyright (c) 2003, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** schemas=scott DIRECT
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. exported "SCOTT"."DEPT" 5.656 KB 4 rows
. exported "SCOTT"."EMP" 7.820 KB 14 rows
. exported "SCOTT"."SALGRADE" 5.585 KB 5 rows
. exported "SCOTT"."BONUS" 0 KB 0 rows
Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:
/home/prod/scmiller/newtbs.dmp
Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at 12:36

Scott의 객체가 어느 테이블스페잇에 존재하는지 확인 해 보자 :

Enter user-name: scott/scott

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

SQL> select owner, tablespace_name from dba_segments where owner='SCOTT';

OWNER TABLESPACE_NAME

------------------------------
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS
SCOTT USERS

이제 관련 테이블들을 삭제해 보자 :

SQL> drop table SALGRADE;

Table dropped.

SQL> drop table emp;

Table dropped.

SQL> drop table dept;

Table dropped.

SQL> drop table bonus;

Table dropped.

Import는 다음 명령으로 실행 시킨다.

impdp Scott/Scott DIRECTORY=dpump_dir1 DUMPFILE=newtbs.dmp
REMAP_TABLESPACE='USERS':'NEW_USERS'

sun1/home/prod/scmiller> impdp SYSTEM/manager DIRECTORY=dpump_dir1
DUMPFILE=newtbs.dmp REMAP_TABLESPACE='USERS':'NEW_USERS'

Import: Release 10.1.0.2.0 - Production on Tuesday, 23 December, 2003 14:50

Copyright (c) 2003, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Produn
With the Partitioning, OLAP and Data Mining options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": SYSTEM/******** DIRECTORY=dpump_dir1 D
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/SE_PRE_SCHEMA_PROCOBJACT/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. imported "NEWSCOTT"."DEPT" 5.656 KB 4 rows
. imported "NEWSCOTT"."EMP" 7.820 KB 14 rows
. imported "NEWSCOTT"."SALGRADE" 5.585 KB 5 rows
. imported "NEWSCOTT"."BONUS" 0 KB 0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at 14:53

sun1/home/prod/scmiller> sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Dec 23 14:54:13 2003

Copyright (c) 1982, 2003, Oracle. All rights reserved.

sun1% sqlplus

SQL*Plus: Release 10.1.0.2.0 - Production on Tue Jan 13 12:53:36 2004

Copyright (c) 1982, 2003, Oracle. All rights reserved.

Enter user-name: / as sysdba

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 -
With the Partitioning, OLAP and Data Mining options

SQL> select owner, tablespace_name from dba_segments where owner='SCOTT';

OWNER TABLESPACE_NAME


------------------------------
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS
SCOTT NEW_USERS

6 rows selected.

=======================

여러개의 REMAP_TABLESPACE 파라미터를 지정할 수는 있으나, 두개 이상의 타겟 테이블스페이스에 대해
동일한 소스 테이블스페이스를 지정할 수 없다. 타겟 스키마는 타겟 테이블스페이스 내
충분한 quota를 부여 받은 상태이어야 한다.

주의해야 할 점은 REMAP_TABLESPACE 파라미터는 Data Pump Import에서만 유일하게 제공하는 테이블스페이스
remap 이법이라는 것이다. 이것은, Import 유틸리티 보다 깨끗하고 단순하게 작업을 수행할 수 있게 해
준다. Import 유틸리티에서는, 사용자의 default tablespace를 변경 시키기위해서는, export 및
사용자 drop, 사용자의 생성, 데이터 import와 같은 여러 단계의 작업을 수행 해야만 했었다. 이 방법에는
많은 제약 사항이 존제하는데 (테이블스페이스 지정과 관련 구문) 이것은 일부 DDL이 수행 실패하는
결과를 초래 하기도 한다.

그러나 Data Pump Import는 REMAP_TABLESPACE 파라미터를 제공하므로, 모든객체에 대해 DDL 구문에
어떤 테이블스페이스 지정 구문을 사용했던 상관 없이 안전하게 remap 시킬 수 있는 기능을 제공한다.

Reference Documents

Note:261085.1 Datapump: Remap Tablespace feature
Oracle Database Utilities 10g Release 1 (10.1)


출처 : http://kr.forums.oracle.com/forums/thread.jspa?messageID=1699010


Posted by 1010
02.Oracle/DataBase2009. 10. 20. 19:59
반응형

오라클9i에서 local 접속하던중 ora-12451 에러가 발생했다.

1.cmd -> services.msc
2. OracleOraHome92TNSListener (oracle 9i) 가 시작됐는지 확인.
혹은
3. listener.ora 에서 HOST가 제대로 되어 있는 확인한다

- listener.ora

  1. 오라클 서버에서 클라이어튼의 요청을 듣고, 클라이언트와의 통신 환경을 설정하는 파일

  2. 오라클 서버에 존재


$ORACLE_HOME/network/admin/listener.ora

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\ora92)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = local)
      (ORACLE_HOME = C:\oracle\ora92)
      (SID_NAME = local)
    )
  )

***리스너 관련 명령어***

c:\>lsnrctl start  리스너 시작하기

c:\>lsnrctl stop  리스너 정지하기

c:\>lsnrctl reload  리스너 재시작하기

c:\>lsnrctl status  리스너 상태보기

c:\>lsnrctl help  도움말



- tnsnames.ora

  1. 오라클 클라이언트 측에서 오라클 서버로 접속시 필요한 프로토콜, 포트번호, 서버주소  등을 설정해주는 파일

  2. 클라이언트에 위치

  3. 예제

      JJS =
          (DESCRIPTION =
                   (ADDRESS_LIST =
                          (ADDRESS = (PROTOCOL = TCP)(HOST = ip주소 )(PORT = 1521))
                    )
                   (CONNECT_DATA =
                          (SERVER = 서버 명)
                          (SERVICE_NAME = db명)
                    )
           )


p.s) listener.ora와 tnsnames.ora파일의 위치는 ORACLE_HOME/network/ADMIN/에 존재

출처 : http://ragew.tistory.com/category/DB노트

Posted by 1010
02.Oracle/DataBase2009. 10. 20. 19:58
반응형
select      b.username username,
              c.sid sid,
              c.owner object_owner,
              c.object object,
              b.lockwait,
              a.sql_text SQL
from        v$sqltext a, v$session b, v$access c
where     a.address=b.sql_address
and        a.hash_value=b.sql_hash_value
and        b.lockwait = 'WAIT'
and        b.sid = c.sid
and        c.owner != 'SYS'


출처 : http://ragew.tistory.com/3
Posted by 1010
02.Oracle/DataBase2009. 10. 20. 19:57
반응형

### Lock 확인 쿼리
SELECT do.object_name, do.owner, do.object_type,do.owner, vo.xidusn, vo.session_id,
vo.locked_mode
FROM v$locked_object vo , dba_objects do
WHERE vo.object_id = do.object_id ;

####  어떤 object에 어떤 lock이 걸렸는지 확인
SELECT  T1.object_name, DECODE(locked_mode, 2, 'ROW SHARE', 3, 'ROW EXCLUSIVE',  4, 'SHARE', 5, 'SHARE ROW EXCLUSIVE', 6, 'EXCLUSIVE', 'UNKNOWN') lock_mode
FROM  dba_objects T1, v$locked_object T2
WHERE T1.object_id = T2.object_id;

#### session 확인
select * from v$session where status = 'ACTIVE'

#### cursor 확인
v$open_cursor

#### 테이블의 lock 확인
SELECT A.SID, A.SERIAL#, B.TYPE, C.OBJECT_NAME
FROM V$SESSION A, V$LOCK B, DBA_OBJECTS C
WHERE A.SID=B.SID
AND B.ID1=C.OBJECT_ID
AND B.TYPE='TM'
AND C.OBJECT_NAME IN ('<테이블이름>');

/*******************************************************************************
* LOCK 관련
*******************************************************************************/
--V$LOCK 을 사용한 잠금 경합 모니터링
SELECT s.username, s.sid, s.serial#, s.logon_time,
  DECODE(l.type, 'TM', 'TABLE LOCK',
         'TX', 'ROW LOCK',
      NULL) "LOCK LEVEL",
  o.owner, o.object_name, o.object_type
FROM v$session s, v$lock l, dba_objects o
WHERE s.sid = l.sid
AND o.object_id = l.id1
AND s.username IS NOT NULL   

--락이 걸린 세션 자세히 알아보기
select a.sid, a.serial#,a.username,a.process,b.object_name,
decode(c.lmode,2,'RS',3,'RX',4,'S',5,'SRX',8,'X','NO') "TABLE LOCK",
decode (a.command,2,'INSERT',3,'SELECT',6,'UPDATE',7,'DELETE',12,'DROP TABLE',26,'LOCK TABLE','UNknown') "SQL",
decode(a.lockwait, NULL,'NO wait','Wait') "STATUS"
from v$session a,dba_objects b, v$lock c
where a.sid=c.sid and b.object_id=c.id1
and c.type='TM'

--락이 걸린 세션 간단히 알아보기
select a.sid, a.serial#, b.type, c.object_name, a.program, a.lockwait,
      a.logon_time, a.process, a.osuser, a.terminal
from v$session a, v$lock b, dba_objects c
where a.sid = b.sid
  and b.id1 = c.object_id
  and b.type = 'TM';

select a.sid, a.serial#, a.username, a.process, b.object_name
from v$session a , dba_objects b, v$lock c
where a.sid=c.sid and b.object_id = c.id1
and c.type = 'TM'

--락이 걸린 세션을 찾아 내어 세션을 죽이려고 해도 죽지 않는 경우
--아래 쿼리문으로 OS단의 PROCESS ID를 찾아내어 OS에서 죽인다
--kill -9 프로세스아이디
select substr(s.username,1,11) "ORACLE USER", p.pid "PROCESS ID",
s.sid "SESSION ID", s.serial#, osuser "OS USER",
p.spid "PROC SPID",s.process "SESS SPID", s.lockwait "LOCK WAIT"
from v$process p, v$session s, v$access a
where a.sid=s.sid and
p.addr=s.paddr and
s.username != 'SYS'

--위 쿼리문의 결과가 있다면 락이 걸린 세션이 있다는것이므로 아래의 쿼리문으로 세션을 죽인다
ALTER SYSTEM KILL SESSION '11,39061'

출처 : http://cocoroworld.com/blog/root/entry/오라클-락lock


출처 : http://cocoroworld.com/blog/root/entry/오라클-락lock

Posted by 1010
02.Oracle/DataBase2009. 10. 19. 16:02
반응형

*** 토드에서 save as를 통한 엑셀 저장시 한글깨짐 현상발생시 아래와 같은방법을 사용한다. ***

 


<토드 9.0.x>

방법 1. save as에서 Write Wide Strings 옵션에 체크한다.

방법 2. 토드 종료 후 C:\program Files\Quest Software\Toad for Oracle\User Files 폴더에 있는

         toad.ini파일 [SAVEAS]아래에 있는 cbXLSWideStrings=0 을 1로 수정하고 토드 재시작

 

사용자 삽입 이미지


<토드 8.6>

방법 1. 토드 종료 후 C:\program Files\Quest Software\Toad for Oracle\User Files 폴더에 있는

         toad.ini파일 [SAVEAS]아래에 있는 cbXLSWideStrings=1을 추가하고 재시작 한다.

Posted by 1010
02.Oracle/DataBase2009. 10. 19. 15:46
반응형

토드(toad)에서 한글이 깨져보일때


어떤 이는 레지스트리에서 변경을 하라고 하고.... 어떤 이는 환경변수에서 추가를 하라고 하고....
그래서 둘다 해보았더니.....

결국 환경변수의 추가로 해결이 되었다...

내 컴퓨터 - 속성 - 고급탭 - 환경변수 버튼 클릭

시스템 변수 란 - 새롤만들기 버튼 클릭

변수 : NLS_LANG
변수값 : KOREAN_KOREA.KO16MSWIN949

으로 설정을 하면 된다..

만약 안되면 레지스트리 변경을 시도해보면 될 듯 함.
regedit > HKEY_LOCAL_MACHINE > SOFTARE > ORACLE
문자열 : NLS_LANG
값 데이터 : KOREAN_KOREA.KO16KSC5601 혹은 KOREAN_KOREA.KO16MSWIN949
Posted by 1010
02.Oracle/DataBase2009. 9. 24. 19:48
반응형
alter session set global_names=true;


dblink tl seq 를 자동증가 할때  ***.nextval

ORA-04054: 데이터베이스 링크 'HSCPROD.NEXTVAL'가 존재하지 않습니다
                    
SELECT AAA_SEQ@hscprod.NEXTVAL
  FROM DUAL; (X)

SELECT AAA_SEQ.NEXTVAL@hscprod
  FROM DUAL (O)



SEQUENCE

 CREATE TABLE T1(ID NUMBER(4) CONSTRAINT T1_PK PRIMARY KEY, DATA VARCHAR2(30));


PK에 대해 SEQUENCE를 줄수 있다. 입력시에 아래처럼. 테이블에 시퀀스 하나씩!

 SQL> INSERT INTO T1 VALUES(T1_S.NEXTVAL, 'AA');

1 개의 행이 만들어졌습니다.

 SQL> CREATE SEQUENCE T1_S;

시퀀스가 생성되었습니다.

SQL> SELECT * FROM T1;

        ID DATA
---------- ------------------------------
         1 AA
         2 BB


 세션마다 CURRVAL은 다르지만, NEXTVAL은 같다. 세션에서 NEXTVAL을 사용하게 되면 하나씩 올라가게 된다..

 GAP이 생기면 시퀀스를 쓰지 말아야 하는거죠. 시퀀스대신 SELECT MAX(ID)+1 처럼 해야 된다. <- LOCK이 걸릴수 있기때문에 쓰지 마라.

 ISQL에서는 트랜젝션이 있으니까 상관없긴 하다.


  1  CREATE SEQUENCE DEPT_S
  2  INCREMENT BY 10
  3* START WITH 10
SQL> /

시퀀스가 생성되었습니다.

SQL> SELECT DEPT_S.NEXTVAL FROM DUAL;

   NEXTVAL
----------
        10

SQL> SELECT DEPT_S.NEXTVAL FROM DUAL;

   NEXTVAL
----------
        20


3,5,2,4,6,2,4,6 으로 증가하게 하려면?

 SQL>
  1  CREATE SEQUENCE TS
  2  INCREMENT BY 2
  3  START WITH 3
  4  MAXVALUE 6
  5  MINVALUE 2
  6* CYCLE NOCACHE

시퀀스가 생성되었습니다.

SQL> SELECT TS.NEXTVAL FROM EMP;

   NEXTVAL
----------
         3
         5
         2
         4
         6
         2
         4
         6
         2
         4
         6

   NEXTVAL
----------
         2
         4
         6

14 개의 행이 선택되었습니다.

Posted by 1010
02.Oracle/DataBase2009. 9. 3. 11:36
반응형
1. 설 명

☞ Bulletin no : 12036 참고

 
Oracle 8i Release2(8.1.6)에서는 데이터를 암호화하여 저장할 수 있는
향상된 기능(DES Encryption)을 제공 합니다
 
 
신용카드번호, 패스워드 등 보안이 필요한 데이터를 암호화된 형태로 저장하여
기존의 3rd Party Tool이나, Application Logic으로 구현하던 암호화 정책을
데이터베이스 차원에서 구현할 수 있도록 해줍니다.
 
 
 
DBMS_OBFUSCATION_TOOLKIT

암호화 기능을 이용하려면 DBMS_OBFUSCATION_TOOLKIT을 이용해야 합니다.
 
 
이 패키지는 4개의 프로시져로 이루어져 있습니다.

- VARCHAR2 타입을 Encrypt/Decrypt할 수 있는 2개의 프로시져

- RAW 타입을 Encrypt/Decrypt할 수 있는 2개의 프로시져
(다른 타입은 지원하지 않으므로 number인 경우는 to_char 이용)
 
 

DBMS_OBFUSCATION_TOOLKIT을 이용하기 위해서는 :

1) SYS 유저로 아래의 스크립트를 실행 시킵니다.

   @$ORACLE_HOME/rdbms/admin/dbmsobtk.sql
   @$ORACLE_HOME/rdbms/admin/prvtobtk.plb
   
2) 권한을 부여 합니다.

   SQL>GRANT execute ON dbms_obfuscation_toolkit TO public;


2. 패키지 실행하기



--> 패키지 선언부 생성

CREATE OR REPLACE PACKAGE CryptIT AS
   FUNCTION encrypt( Str VARCHAR2,  
                     hash VARCHAR2 ) RETURN VARCHAR2;

   FUNCTION decrypt( xCrypt VARCHAR2,
                     hash VARCHAR2 ) RETURN VARCHAR2;
END CryptIT;
/
 
 
 
--> 패키지 본체 생성

CREATE OR REPLACE PACKAGE BODY CryptIT AS
   crypted_string VARCHAR2(2000);
 
   FUNCTION encrypt( Str VARCHAR2,  
                     hash VARCHAR2 ) RETURN VARCHAR2 AS
   pieces_of_eight INTEGER := ((FLOOR(LENGTH(Str)/8 + .9)) * 8);
 
   BEGIN
 
      dbms_obfuscation_toolkit.DESEncrypt(
               input_string     => RPAD( Str, pieces_of_eight ),
               key_string       => RPAD(hash,8,’#’),
               encrypted_string => crypted_string );
      RETURN crypted_string;
   END;
 
   FUNCTION decrypt( xCrypt VARCHAR2,
                     hash VARCHAR2 ) RETURN VARCHAR2 AS
   BEGIN
      dbms_obfuscation_toolkit.DESDecrypt(
               input_string     => xCrypt,
               key_string       => RPAD(hash,8,’#’),
               decrypted_string => crypted_string );
      RETURN trim(crypted_string);
   END;
END CryptIT;
/

 



3. 실행 예제


1) Encrypt하여 데이터 입력

-- 테스트 테이블을 생성 합니다.

SQL>create table encrypt_table( id number, passwd varchar(20) );


 
-- 테스트 데이트럴 입력 합니다.
-- CryptIT.encrypt(비밀번호, 키값)

SQL>INSERT INTO encrypt_table VALUES( 1, CryptIT.encrypt(’1234’, ’storm’));
1 개의 행이 만들어졌습니다.

 
SQL>INSERT INTO encrypt_table VALUES( 2, CryptIT.encrypt(’5678’, ’oramaster’));
1 개의 행이 만들어졌습니다.

 
 
2) Decrypt하여 데이터 조회
 
--> Decrypt하지 않으면 암호화된 데이터와 비교되서 결과값이 출력되지 않습니다.
SQL> select id, passwd from encrypt_table where passwd = ’1234’;
 
선택된 레코드가 없습니다.
 
 
--> 저장장치에 Encrypt된 값으로 저장 됩니다.

SQL> col passwd format a60
SQL> select id, dump(passwd) passwd from encrypt_table;

         ID PASSWD
---------- -------------------------------------------------------------
         1 Typ=1 Len=8: 246,27,80,184,227,225,245,31
         2 Typ=1 Len=8: 175,231,213,125,85,223,46,133
 


--> Encrypt할 때 사용한 Key로만 Decrypt할 수 있습니다.
 
SQL>SELECT id, CryptIT.decrypt(passwd,’storm’) passwd
       FROM encrypt_table
       WHERE CryptIT.decrypt(passwd,’storm’) = ’1234’;
 
        ID PASSWD
---------- -----------
         1 1234
 
 
SQL>SELECT id, CryptIT.decrypt(passwd,’oramaster’) passwd
    FROM encrypt_table
    WHERE CryptIT.decrypt(passwd,’oramaster’) = ’5678’;
 
        ID PASSWD
---------- -----------
         2 5678
 
 
주의) Table에 접근 권한이 있는 다른 유저도 Key값을 알면 Decrypt할 수 있습니다.
 
 
 
4) 관련 ORA error number
 
ORA error 28231 "Invalid input to Obfuscation toolkit"
- input data, key값이 NULL일 경우 발생
 
ORA error 28232 "Invalid input size for Obfuscation toolkit"
- input data가 8 bytes 배수가 아닐 경우 발생
 
ORA error 28233 "Double encryption not supported by DESEncrypt in Obfuscation toolkit"
- encrypt data를 다시 encrypt경우 발생
 

관 련 자 료
===========
Oracle8i Supplied PL/SQL Packages Reference Release 2 (8.1.6)
 

  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^


출처 : http://www.oracleclub.com/lectureview.action
Posted by 1010