Skip to main content

External Tables

 external tables

External tables allow Oracle to query data that is stored outside the database in flat files.

 The ORACLE_LOADER driver can be used to access any data stored in any format that can be loaded by SQL*Loader.

No DML can be performed on external tables but they can be used for query, join and sort operations. 

Views and synonyms can be created against external tables. They are useful in the ETL process of data warehouses since the data doesn't need to be staged and can be queried in parallel. 

They should not be used for frequently queried tables.

-- 

create two file Countries1.txt and Countries2.txt in the folder  

This is to be done on the file system

E:\data .


conn / as sysdba


CREATE OR REPLACE DIRECTORY ext_tab_data AS 'E:\data'; 



CREATE TABLE countries_ext (

      country_code      VARCHAR2(5),

      country_name      VARCHAR2(50),

      country_language  VARCHAR2(50)

    )

    ORGANIZATION EXTERNAL (

      TYPE ORACLE_LOADER

      DEFAULT DIRECTORY ext_tab_data

      ACCESS PARAMETERS (

       RECORDS DELIMITED BY NEWLINE

       FIELDS TERMINATED BY ','

       MISSING FIELD VALUES ARE NULL

       (

         country_code      CHAR(5),

         country_name      CHAR(50),

         country_language  CHAR(50)

       )

     )

     LOCATION ('Countries1.txt','Countries2.txt')

   )

   REJECT LIMIT UNLIMITED;


check the data that has been read from external tables( file system)


select * from countries_ext;

Comments

Prateek Kumar said…
very helpful lesson..
Ankit Gupta said…
awesome explanation
Sourav Nandy said…
nicely fabricated... great job.

Popular posts from this blog

PL / SQL practice programs

  PL / SQL  practice programs 1. Write a program to print the following format WELCOME TO PL/SQL PROGRAMMING   BEGIN   DBMS_OUTPUT.PUT_LINE('WELCOME   TO   PL/SQL   PROGRAMMING'); END; /   2. Write a program to print the numbers from 1 to 100   DECLARE N NUMBER(3):=1; V VARCHAR2(1000); BEGIN WHILE N <=1000 LOOP V:=V||''||N; N:=N+1; END LOOP; DBMS_OUTPUT.PUT_LINE(V); END; / 3. write a program to print the even numbers from 1 to 100 DECLARE N NUMBER(3):=0; BEGIN WHILE N <=100 LOOP N:=N+2; DBMS_OUTPUT.PUT_LINE(N); END LOOP; END; / 4. Write a program to print the odd numbers from 1 to 100 DECLARE N NUMBER(3):=1; BEGIN WHILE N <=100 LOOP N:=N+2; DBMS_OUTPUT.PUT_LINE(N); END LOOP; END; / 5. write a program for multiplication table DECLARE A NUMBER(2):=&A; B   NUMBER(2):=1; C   NUMBER(3); BEGIN WHILE B <

RDBMS MINI PROJECT

  Capgemini class room training.   RDBMS MINI PROJECT ( SPRINT ) LIBRARY MANAGEMENT SYSTEM   Table of Contents Serial No. Topic Name Content Page No. 1.   Introduction 1.1 Setup checklist for mini project 3     1.2 Instructions 3 2.   Problem statement   2.1 Objective 4     2.2 Abstract of the project 4     2.3 Functional components of the project 4     2.4 Technology used 5 3.   Implementation in RDBMS LOT 3.1 Guidelines on the functionality to be built 6 4.   Evaluation 4.1 Evaluation 7     1.      Introduction This document outlines a mini project for the RDBMS LOT

sample tables

  --sample tables DROP TABLE EMP; DROP TABLE DEPT; DROP TABLE BONUS; DROP TABLE SALGRADE; DROP TABLE DUMMY;   CREATE TABLE EMP        (EMPNO NUMBER(4) NOT NULL,         ENAME VARCHAR2(10),         JOB VARCHAR2(9),         MGR NUMBER(4),         HIREDATE DATE,         SAL NUMBER(7, 2),         COMM NUMBER(7, 2),         DEPTNO NUMBER(2));   INSERT INTO EMP VALUES         (7369, 'SMITH',   'CLERK',      7902,         TO_DATE('17-DEC-1980', 'DD-MON-YYYY'),   800, NULL, 20); INSERT INTO EMP VALUES         (7499, 'ALLEN',   'SALESMAN',   7698,         TO_DATE('20-FEB-1981', 'DD-MON-YYYY'), 1600,   300, 30); INSERT INTO EMP VALUES         (7521, 'WARD',    'SALESMAN',   7698,         TO_DATE('22-FEB-1981', 'DD-MON-YYYY'), 1250,   500, 30); INSERT INTO EMP VALUES         (7566, 'JONES',   'MANAGER',    7839,         TO_DATE('2-APR-1981', 'DD-MON-YYYY'),   2975, NULL,