-- db 내부
1. datafile
2. control file
3. redo log file (복구할 때 필요)
4. archive log file (redo log file의 복사본)
5. parameter file (인스턴스 구조정보)
6. alert log file (오라클 에러 시 열어봐야하는 파일)
7. password file
19c
- data file
: csv 파일, text file, 엑셀 파일- control file
: sql loader 의 controlfile 로 csv 파일의 문법이 들어있는 파일- bad file
: 입력 거부된 data가 들어있는 파일 (문법과 맞지 않아서)- discard file
: 입력 거부된 data가 들어있는 파일 (문법은 맞는데 테이블에 제약으로 인해서 거부된)- log file
: 입력하면서 발생한 작업 이력 데이터
■ 실습 순서
#1. sample.csv 를 준비합니다.
#2. ora19 의 scott 유져에서 sample 테이블을 생성합니다.
create table sample
( line_no varchar2(20),
time_inout varchar2(10),
in_cnt varchar2(10),
out_cnt varchar2(10) );
#3. sample.csv 를 리눅스에 /home/oracle 밑에 올립니다.
#4. 데이터 입력 문법이 들어있는 control file 을 생성합니다.
$ vi sample.txt
options(skip=1)
load data
infile '/home/oracle/sample.csv'
into table sample
fields terminated by ','
optionally enclosed by '"'
(line_no, time_inout, in_cnt, out_cnt)
#5. sqlloader 를 이용해서 데이터를 이행합니다.
$ sqlldr scott/tiger control=sample.txt data=sample.csv
#6. 데이터가 잘 들어갔는지 확인합니다
$ vi sample.log
Total logical records skipped: 1
Total logical records read: 20
Total logical records rejected: 0
Total logical records discarded: 0
create table dept100
( deptno number(2),
dname varchar2(14),
loc varchar2(13) );
답:
[oracle@ora19c ~]$ cat dept2.txt
options(skip=1)
load data
infile '/home/oracle/dept2.csv'
into table dept100
fields terminated by ','
optionally enclosed by '"'
(deptno,dname,loc)
[oracle@ora19c ~]$ sqlldr scott/tiger control=dept2.txt data=dept2.csv
create table sales100
as
select *
from sh.sales
where 1 = 2;
alter table sales100
add prod_name varchar2(20);
답:
control file 생성
options(skip=1)
load data
infile '/home/oracle/sales.csv'
into table sales100
fields terminated by ','
optionally enclosed by '"'
(PROD_ID,CUST_ID,TIME_ID date 'YYYY/MM/DD HH24:MI:SS',CHANNEL_ID,PROMO_ID,QUANTITY_SOLD,AMOUNT_SOLD,PROD_NAME)
[oracle@ora19c ~]$ sqlldr scott/tiger control=sales.txt data=sales.csv
truncate table sales100;
[oracle@ora19c ~]$ sqlldr scott/tiger control=sales.txt data=sales.csv direct=y
- y : direct path load 방식으로 load 한다. (HWM 위로 입력)
- n : conventional load 방식으로 load 한다. (HWM 아래에 입력)