Quiet Time

■ 어제 배운내용 정리 
  1. 고급 SQL 과정 1장 , DCL 문( GRANT, REVOKE)
  2. 객체 권한, 시스템 권한
        
     시스템 권한 : SELECT ANY TABLE 권한

          DB의 어느 테이블이든 다 조회 할 수 있다.

  1. ROLE (CONNECT, RESOURCE, DBA롤)
  2. FLASHBACK 기술
          - FLASHBACK QUERY
          - FLASHBACK TABLE 
  1. EXTERBAL TABLE

          외부의 TEXT, EXCEL 파일의 DATA를 DB에 INSERT 하지 않고 
          파일에 링크만 걸어서 바로 SELECT 할 수 있게 한 테이블

          국민은행 ----------------------> 외환은행
                         이체내역 엑셀 전달

               



          
생성된 DIRECTORY를 확인하는 방법  
          
SELECT * FROM DBA_DIRECTORIES;
생성된 DIRECTORY를 삭제하는 방법
DROP DIRECTORY EMP_DIR;
                    
SQL> create table ext_emp
  (emp_id number(3),
  emp_name varchar2(10),
  hiredate date)
--- 일반 테이블 생성 문법과 같다.


  organization external
-- external table 을 생성하겠다.
* 우리가 기존에 만들었던 테이블은 heap table 이라고 한다.


  (type oracle_loader      ---- external table 이 외부의 data를 불러올때 사용하는                      
                                                                      SQL*loader 로 하겠다 (text ---> table)


  default directory emp_dir       --- 위에서 만들었던 디렉토리 이름을 명시한다.

  access parameters               --- text 파일에 대한 문법설명
  (records delimited by newline
  fields terminated by ","            --- 컬럼과 컬럼의 구분은 , 이다.

  (emp_name char,                   --- emp_ename 은 char 형식이다.
  emp_id char,                      --- emp_id는 char 형식이다.
  hiredate date "yyyy/mm/dd") )
  location ('emp1.txt') );


확장자 보이기로 해야 한다. emp1.txt.txt가 될 수 있음








문제413. ext_emp와 emp 테이블을 조인해서 아래의 결과를 출력하시오 ! ( ename 으로 조인하시오 )


select * from ext_emp, EMP
where emp_name = ename;



  • EXTERNAL TABLE의 제약사항

  1. 인덱스가 안걸린다
  2. DML 작업이 안된다.


문제414.EXT_EMP 테이브렝 EMP_ID에 인덱스를 생서하시오!
CREATE INDEX EXT_EMP EXT_EMP_EMP_ID
ON EXT_EMP(EMP_ID);

문제415. EXT_EMP 테이블의 데이터를 DELETE로 전부 지워보시오
DELETE FROM EXT_EMP;



문제416. EXTERNAL TABLE 을 생성하는 작업을 수행하시오!
  1. SQL gate에서 dept 테이블을 쿼리하고 결과를 csv로 저장하시오
     (이름 : dept.txt)

  1. dept1.txt.를 엑세스 하기 위한 external 테이블을 생성하시오
     (이름 : dept_ext)


문제417. 점심시간 문제. 우리반 (emp2) 테이블을 external 테이블로 생성하시오

  1. emp2.csv 로 파일을 생성한다.

  1. emp2_ext 로 external table을 생성한다.


create table emp2_ext
  (  EMPNO        NUMBER(10),
ENAME        VARCHAR2(30),
AGE        NUMBER(10),
BIRTH        DATE,
MAJOR        VARCHAR2(50),
EMAIL        VARCHAR2(40),
MOBILE        VARCHAR2(20),
ADDRESS        VARCHAR2(100),
TELECOM        VARCHAR2(10))
  organization external
  (type oracle_loader

  default directory emp_dir

  access parameters
  (records delimited by newline
  fields terminated by ","

  (  EMPNO        char,
ENAME        char,
AGE        char,
BIRTH        DATE "rrrr/mm/dd",
MAJOR        char,
EMAIL        char,
MOBILE        char,
ADDRESS        char,
TELECOM        char ))
  location ('emp2.csv') );