char buf[1000];
GetTempPath(1000, buf);
char buf1[1000];
GetLongPathName(buf, buf1, 1000);
===================================================================
Output:
C:\Documents and Settings\IP\Local Settings\Temp\
파티션 테이블을 범위 분할 방식(PARTITION BY RANGE)으로 생성 했습니다.
SQL>CREATE TABLE emp_pt
(EMPNO NUMBER(4),
ENAME VARCHAR2(30),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2))
PARTITION BY RANGE(EMPNO)( -->범위 분할 방식으로 생성 합니다.
PARTITION emp_p1 VALUES LESS THAN (2000) TABLESPACE data1,
PARTITION emp_p2 VALUES LESS THAN (4000) TABLESPACE data2,
PARTITION emp_p3 VALUES LESS THAN (7000) TABLESPACE data3);
테이블이 생성되었습니다.
emp_p1 파티션은 2000보다 적은 값이 들어가며 data1 테이블스페이스에,
emp_p2 파티션은 4000보다 적은 값이 들어가며 data2 테이블스페이스에,
emp_p3 파티션은 7000보다 적은 값이 들어가며 data3 테이블스페이스에 각각 할당을 했습니다.
각각의 파티션을 일정한 범위로 나누어서 각각의 테이블 스페이스를 할당 했습니다.
오라클에서는 이 외에도 여러 가지 다른 방법으로 파시션 테이블을 생성 할 수 있습니다.
여기서는 가장 이해하기 쉬운 범위 분할 방식으로 생성 했습니다.
--- 데이터 조작 예제 ---
◈ INSERT
-- emp_p1 파티션에 등록이 됩니다.
SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal)
VALUES(1000, 'Ultra', 'SALESMAN', sysdate, 3000);
1 개의 행이 만들어졌습니다.
-- emp_p2 파티션에 등록이 됩니다.
SQL>INSERT INTO emp_pt(empno, ename, job, hiredate, sal)
VALUES(2000, 'lion', 'CLERK', sysdate, 2500);
1 개의 행이 만들어졌습니다.
☞ 위의 두 예제와 같이 일반적으로 Insert를 해도 empno에 따라서 자동적으로
파티션이 나누어져 Insert가 됩니다.
아래의 예제와 같이 따로 파티션을 지정해서 Insert를 할 수도 있습니다.
-- 파티션을 통해서 INSERT하는 방법
SQL>INSERT INTO emp_pt PARTITION (emp_p3)
VALUES (6000, 'scott2', 'CLERK', 5000, sysdate, 1500,0 ,10);
1 개의 행이 만들어졌습니다.
◈ SELECT
-- emp_p1파티션 조회
SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p1);
EMPNO ENAME JOB
---------- -------------------- ---------
1000 Ultra SALESMAN
-- emp_p2파티션 조회
SQL>SELECT empno, ename, job FROM emp_pt PARTITION (emp_p2);
EMPNO ENAME JOB
---------- ------------------- ---------
2000 lion CLERK