No. 22103 (V9.2) RANGE LIST PARTITIONING - ORACLE 9.2 ENHANCEMENT PURPOSE 이 문서는 Oracle 9.2의 새 기능인 Range list partition을 생성하고
Range List Partitioning은 RDBMS V9.2에서 처음으로 소개된 기능이다. Range-List method는 Range 형태로 먼저 데이타를 partition하고 Composite Range-Hash method와는 달리 이 방법은 각 row가 어느
단지 btree 또는 bitmap Local Index 만이 RANGE-LIST type일 수 있다. 아래의 command만이 가능하다. 1) Modify default attributes for table or partition.
The same known restrictions are still available for Range-List
CREATE TABLE empdata
Range-Hash method는 어떤 level에 모든 다른 subpartition들을
Storage 절은 TABLESPACE 절을 제외하고는 partition level로부터 상속받는다. Sample data to load:
[ 생성 / 수정 / 관리 ] set linesize 130;
SELECT TABLESPACE_NAME, PARTITION_NAME, SUBPARTITION_NAME
ALTER TABLE ptnew2
alter table ptnew2
alter table ptnew2 alter table ptnew2
ALTER TABLE ptnew2
SELECT partition_name partition, high_value,
select partition_name, SUBPARTITION_NAME,high_value, subpartition_position from user_tab_subpartitions |
'오라클'에 해당되는 글 5건
- 2014.11.07 오라클 Oracle instantclient 설치하기
- 2009.11.20 파티션(Range List Composition Partition)
- 2009.09.21 PL/SQL EXCEPTION 종류
- 2009.09.03 Table Lock 걸렸을 때 처리하는 법 (ORA-00054)
- 2009.06.24 오라클 함수
보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.
PL/SQL EXCEPTION 종류
sql
2009/08/13 14:57 http://blog.naver.com/soo02da/150067422573
|
PL/SQL EXCEPTION 종류
예외 내용 |
예외 번호 |
SQLCODE |
발생시점 |
ACCESS_INTO_NULL |
ORA-06530 |
-6530 |
초기화 되지 않은 오브젝트에 값을 할당하려고 할 경우 |
CASE_NOT_FOUND |
ORA-06592 |
-6592 |
CASE 문장에서 ELSE 구문도 없고 WHEN 절에 명시된 조건을 만족하는 것이 하나도 없을 경우 |
COLLECTION_IS_NULL |
ORA-06531 |
-6531 |
초기화 되지 않은 중첩 테이블이나 VARRAY같은 콜렉션을 EXISTS 외의 다른 메소드를 접근을 시도할 경우 |
CURSOR_ALREADY_OPEN |
ORA-06511 |
-6511 |
이미 오픈된 커서를 다시 오픈하려고 시도하는 경우 |
DUP_VAL_ON_INDEX |
ORA-00001 |
-1 |
유일 인덱스가 걸린 칼럼에 중복 데이터를 입력할 경우 |
INVALID_CURSOR |
ORA-01001 |
-1001 |
허용되지 않은 커서에 접근할 경우(오픈되지 않은 커서를 닫으려고 시도하는 경우) |
INVALID_NUMBER |
ORA-01722 |
-1722 |
SQL 문장에서 문자형 데이터를 숫자형으로 변환할 때 제대로 된 숫자로 변환이 되지 않을 경우 |
LOGIN_DENIED |
ORA-01017 |
-1017 |
잘못된 사용자나 비밀번호로 로그인을 시도할 때 |
NO_DATA_FOUND |
ORA-01403 |
+100 |
SELECT INTO 문장의 결과로 선택된 로우가 하나도 없을 경우 |
NOT_LOGGED_ON |
ORA-01012 |
-1012 |
오라클에 연결되지 않았을 경우 |
PROGRAM_ERROR |
ORA-06501 |
-6501 |
PL/SQL 내부에 문제가 발생했을 경우 |
SELF_IS_NULL |
ORA-30625 |
-30625 |
OBJECT 타입이 초기화 되지 않은 상태에서 MEMBER메소드를 사용할 경우 |
STORAGE_ERROR |
ORA-06500 |
-6500 |
메모리가 부족한 경우 |
SUBSCRIPT_BEYOND_COUNT |
ORA-06533 |
-6533 |
중첩 테이블이나 VARRAY의 요소값에 접근할 때, 명시한 인덱스 번호가 콜렉션 전체 크기를 넘어설 경우 |
SUBSCRIPT_OUTSIDE_LIMIT |
ORA-06532 |
-6532 |
중첩 테이블이나 VARRAY의 요소값에 접근할 때, 잘못된 인덱스 번호를 사용할 경우(예, 인덱스 번호로 -1 사용시) |
SYS_INVALID_ROWID |
ORA-01410 |
-1410 |
오라클 리소스를 기다리는 동안 타임아웃이 발생했을 때 |
TIMEOUT_ON_RESOURCE |
ORA-00051 |
-51 |
오라클이 리소를 기다리는 동안 타임아웃이 발생했을 때 |
TOO_MANY_ROWS |
ORA-01422 |
-1422 |
SELECT INTO 문장에서 하나 이상의 로우가 반환될 때 |
VALUE_ERROR |
ORA-06502 |
-6502 |
문자형 데이터를 숫자형으로 변환하는데 타당한 수사가 아니거나 값을 할당 시 값의 크기가 선언된 변수의 크기를 넘어서는 경우와 같이 값을 변환하거나 할당할 때 오류가 발생할 경우 |
ZERO_DIVIDE |
ORA-01476 |
-1476 |
제수가 0일 때 |
[출처] PL/SQL EXCEPTION 종류|작성자 셩이
2007/04/26 14:26
http://blog.naver.com/xacti/80037278371
ORA-00054 발생했을때 처리하는 방법.
여러가지 문제가 있을수 있지만...
Commit을 안했다던지... 무슨 작업중이라던지... 이유는 다양합니다.
Truncate같은 명령은... ORA-00054라는 에러라도 출력하지만...
DML(Delete) 문장 실행시 그냥 멈쳐버립니다.ㅡㅡ;;;
오라클 재시작!!! 하면 간다하게 처리됩니다.^^;
하지만 DB 특성상 재시작 할수 없는 경우가 많죠~
그때는 Lock걸린 세션을 찾아서.. Kill해주면 됩니다.
다음 명령어로 검색.
select a.sid , a.serial#
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='TABLE_NAME';
SID SERIAL#
------- ----------
2715 40427
Kill은 이렇게...
alter system kill session '2715,40427';
[출처] Table Lock 걸렸을 때 처리하는 법 (ORA-00054)|작성자 핑크
ROW LOCK (TX) TABLE LOCK (TM)
RS : ROW SHARE LOCK SELECT .. FROM .. WHERE .. FOR UPDATE OF .. ; 이나 단, SELECT .. FROM FOR UPDATE OF 명령에 의해 WHERE 조건에 걸린 ROW 에 대해서는 SELECT .. FOR UPDATE OF; 문장은 테이블에는 RS LOCK 이므로 에러는 안나지만,
RX : ROW EXCLUSIVE LOCK UPDATE ..;, INSERT INTO ..;, DELETE FROM ..; 이나
S : SHARE LOCK LOCK .. IN SHARE MODE; 에 의해 테이블에 생긴 LOCK 이다.
SRX : SHARE ROW EXCLUSIVE LOCK TABLE .. IN SHARE ROW EXCLUSIVE MODE; 에 의해 테이블에 생긴 LOCK 이다.
X : EXCLUSIVE LOCK TABLE .. IN EXCLUSIVE MODE; 에 의해 테이블에 생긴 LOCK 이다. [출처] [oracle]table lock 종류|작성자 도날도 |
※ Error관련 내장함수
- SQLCODE : 현재 발생한 오류에 따른 오류 코드를 반환
- SQLERRM : 오라클 오류 코드와 연결된 오류 메시지를 반환
※ 문자열 함수
① ASCII <--> CHAR : ASCII, CHAR로 변환하기
② CONCAT : 조합하기(||와 같은 역할)
③ SUBSTR : 자르기
④ SUBSTRB : 자르기
⑤ INITCAP : 첫글자만 대문자, 나머지글자는 소문자로 변환하기
⑥ UPPER / LOWER : 대문자/소문자로 변환하기
⑦ LPAD / RPAD : 왼쪽채우기/오른쪽채우기
⑧ LENGTH : 문자열의 길이 반환하기
⑨ LANGUAGE : KOREAN_LOREA.KO16KSC5601/AMERICAN_AMERICA.US7ASCII
⑩ REPLACE : 문자 대체하기
⑪ INSTR : 문자열에서 해당문자의 위치 반환하기
⑫ LTRIM / RTRIM : 문자열의 왼쪽/오른쪽 공백 버리기
⑬ TRANSLATE : 문자 대체하기(REPLACE와 같은 기능이나 스트링단위가 아닌 문자단위)
※ 수학 함수
① ROUND : 반올림(해당자리수까지 보여주면서 반올림)
② TRUNC : 버림값
③ MOD : 나눈후 나머지
④ CEIL : 무조건 올림
⑤ POWER : 승수값
⑥ GREATEST : 주어진 데이터중 최대값
⑦ LEAST : 주어진 데이터중 최소값
※ DATE 함수
- ADD_MONTHS : 지정된 날짜에 1달을 더함. 만일 결과가 나온 달이 현재 일수보다
작은 일수를 갖고 있는 달로 변경되면 그 달의 마지막 날을 반환
- LAST_DAY : 주어진 달의 마지막 날을 반환
- MONTHS_BETWEEN : 두 날짜 사이의 개월수를 계산. 만일 두 날짜가 그 달의 마지막
이라면 정수를 반환하고 그렇지 않으면 한달을 31로 계산한 분수값을 반환
- NEW_TIME : 사용자가 지정한 시간대에 대한 시간/날짜 값을 반환
- NEXT_DAY : 시작 날짜 다음에 지정된 요일이 처음으로 나오는 날짜를 반환
- ROUND : 월,년도,세기 등과 같이 선택한 날짜 파라미터를 반올림
- SYSDATE : 시스템 날짜와 시간을 DATE형식으로 반환
- TRUNC : 일,월 등과 같이 지정된 날짜 파라미터를 잘라냄
- date + number : date에 number만큼 후의 날짜를 보여줌(일수를 더함)
- date - number : date에 number만큼 전의 날짜를 보여줌(일수를 뺌)
- date1 - date2 : date1에서 date2까지의 총 일수를 보여줌(어떤날짜에서 다른날짜를 뺌)
- date1 + 숫자/24 : date1에서 시간을 더해 날짜를 보여줌(시간에 날짜를 더함)
① MONTHS_BETWEEN : 날짜와 날짜 사이의 개월수를 반환
② ADD_MONTHS : 날짜에 개월수를 더한 일자를 반환
③ NEXT_DAY : 해당일 다음에 오는 특정 요일을 반환
④ LAST_DAY : 지정한 달의 마지막날 반환
⑤ SYSTEM시간
※ 변환 함수
① TO_CHAR : DATE형, NUMBER형을 문자형으로 변환
② TO_NUMBER : 문자를 숫자형으로 변환
③ TO_DATE : 날자 형태의 문자열을 format에 맞게 날짜 형식으로 변환
to_date('" + ls_refill_date2 + "235959','yyyymmddhh24miss') "
④ NUMBER와 DATE를 문자타입으로 변환
⑤ TO_TIMESTAMP : 문자열을 timestamp형식으로 변환
⑥ NVL : null일때 0을 보여줌
⑦ DECODE : default 반환, 디폴트가 없는 경우에는 null값을 반환. 반환하는 값은 최초의
result와 같은 데이터타입(if..then..else기능을 구사하는 유용한 함수)
⑧ NULLIF : 결과값이 동일하면 null, 그렇지 않으면 첫번째 인자값 반환
⑨ NVL2 : 첫번째 인자값이 null이 아니면 두번째 인자값, null이면 세번째 인자값 반환
* 오라클의 환경변수 값 구하기
select userenv('language') "lanugage",userenv('sessionid') "sessionid"
from dual;
※ 그룹 함수
① COUNT : 행의 개수를 구함
② AVG : 평균을 구함
③ SUM : 합계를 구함
④ MIN : 최소값을 구함
⑤ MAX : 최대값을 구함
⑥ STDDEV : 표준편차를 구함
⑦ VARIALCE : 분산을 구함
⑧ VSIZE : 어떤값의 바이트수를 구함
** 변환함수/그룹함수는 예를 아직 못 올렸네요
조만간 업데이트 할게요^-^