[문제1] hr.employees 테이블에서 2005년 이전에 입사한 사원들의 employee_id, last_name, salary, hire_date 데이터를 추출해서 emp_befor_2005.dat 파일로 저장해주세요.
[oracle1@oracle spool]$ vi emp_before_2005.dat
set pagesize 0
set linesize 200
set echo off
set termout off
set trimspool on
set feedback off
spool emp_before_2005.csv
select employee_id||','||last_name||','||salary||','||hire_date
from hr.employees
where hire_date < to_date('2005-01-01','yyyy-mm-dd');
spool off
[oracle1@oracle spool]$ sqlplus hr/hr
SQL> ! pwd
/home/oracle1/spool
SQL> ! ls
emp_before_2005.dat emp_sal.csv emp_sal.log insa.ctl insa.log
emp_sal.bad emp_sal.ctl emp_sal.sql insa.dat
SQL> @emp_before_2005.dat
SQL> ! ls
emp_before_2005.csv emp_sal.bad emp_sal.ctl emp_sal.sql insa.dat
emp_before_2005.dat emp_sal.csv emp_sal.log insa.ctl insa.log
/* 강사님 답안 */
[oracle1@oracle spool]$ vi emp_before_2005.sql
set pagesize 0
set linesize 200
set echo off
set termout off
set trimspool on
set feedback off
spool emp_before_2005.dat
-- 또는 spool emp_before_2005.csv
select employee_id||','||upper(last_name)||','||salary||','||to_char(hire_date, 'yyyy-mm-dd')
from hr.employees
where hire_date < to_date('2005-01-01','yyyy-mm-dd');
spool off
[oracle1@oracle spool]$ sqlplus hr/hr
SQL> @emp_before_2005.sql
[문제2] emp_before_2005.dat 파일에 있는 데이터를 SQL LOADER 를 이용해서 hr.emp_before_2005 테이블에 로드해주세요.
CREATE TABLE hr.emp_before_2005(
employee_id number,
last_name varchar2(20),
salary number,
hire_date date );
[oracle1@oracle spool]$ vi emp_before_2005.ctl
UNRECOVERABLE LOAD DATA
INFILE emp_before_2005.csv
INSERT
INTO TABLE hr.emp_before_2005
FIELDS TERMINATED BY ','
(employee_id, last_name, salary, hire_date)
[oracle1@oracle spool]$ sqlldr hr/hr control=emp_before_2005.ctl direct=true
SELECT * FROM hr.emp_before_2005;
/* 강사님 답안 */
CREATE TABLE hr.emp_before_2005(
employee_id number,
last_name varchar2(20),
salary number,
hire_date date );
[oracle1@oracle spool]$ vi emp_before_2005.ctl
UNRECOVERABLE LOAD DATA
INFILE emp_before_2005.dat
INSERT
-- TRUNCATE
INTO TABLE hr.emp_before_2005
FIELDS TERMINATED BY ','
(employee_id, last_name, salary, hire_date date 'yyyy-mm-dd')
[oracle1@oracle spool]$ sqlldr hr/hr control=emp_before_2005.ctl direct=true
#) 날짜로 인해 data 확인되지 않음
SELECT * FROM hr.emp_before_2005;
'문제 > Linux' 카테고리의 다른 글
231228 Linux 복습 겸 문제 (0) | 2023.12.28 |
---|---|
231226 Linux 복습 겸 문제 (1) | 2023.12.26 |
231218 Linux 문제 겸 test (0) | 2023.12.18 |
231206 Linux 문제 ⓓ 누적합 (1) | 2023.12.06 |
231206 Linux 문제 ⓒ 제외하고 출력 (1) | 2023.12.06 |