You can user external table feature to access external files as if
they are tables inside the database.
When you create an external table, you define its structure and
location with in oracle.
When you query the table, oracle reads the external table and
returns the results just as if the data had been stored with in the database.
ACCESSING EXTERNAL TABLE DATA
To access external files from within oracle, you must first use
the create directory command to define a directory object pointing to the
external file location
Users who will access the external files must have the read and
write privilege on the directory.
Ex: CREATING
DIRECTORY AND OS LEVEL FILE
SQL> Sqlplus system/manager
SQL> Create directory saketh_dir as ‘/Visdb/visdb/9.2.0/external’;
SQL> Grant all on directory saketh_dir to
saketh;
SQL> Conn
saketh/saketh
SQL> Spool dept.lst
SQL> Select deptno || ‘,’ || dname || ‘,’ ||
loc from dept;
SQL> Spool off
CREATING EXTERNAL TABLE
SQL> Create table dept_ext (deptno number(2), Dname varchar(14), Loc
varchar(13))
Organization
external ( type oracle_loader
Default directory saketh_dir
Access
parameters
( records delimited by newline
Fields terminated by “,”
( deptno number(2),
Dname varchar(14),
Loc varchar(13)))
Location
(‘/Visdb/visdb/9.2.0/dept.lst’));
SELECTING DATA FROM EXTERNAL TABLE
SQL> select
* from dept_ext;
This will read from dept.lst which is a operating system level
file.
LIMITATIONS ON EXTERNAL TABLES
a)
You can
not perform insert, update, and delete operations
a)
Indexing
not possible
b)
Constraints
not possible
BENEFITS OF EXTERNAL TABLES
a)
Queries
of external tables complete very quickly even though a full table scan id
required with each access
b)
You can
join external tables to each other or to standard tables
No comments:
Post a Comment