Update on external tables. Click here to learn how to make Oracle external
tables accept updates.Only in the last few
releases of Oracle have we been given the
ability to access non-Oracle files with Oracle SQL
using external tables.
Oracle external tables have
important ramifications for systems where external
files need to be available for non-database
applications and appear to be a table within Oracle.
See these related notes on external tables:
Inside Oracle external tables
Oracle external tables allow you to define the
structure of almost any flat file on your server and have it appear to
Oracle as if it were a real table:
 |
Oracle read and write
interfaces to OS files |
As you can see, Oracle lets a database program write
to flat files using the utl_file utility. Combined
with Oracle external table?s read ability, this new topology
removes the requirement that all Oracle data reside
inside Oracle tables, opening new applications for
Oracle. Let?s take a closer look at how this feature
works.
Defining an external table

Now that we have created the directory for the
external table, we can define the structure of the
external file to Oracle.
Defining an Oracle
external table |
 |
 |
|
In this syntax, we define the column of the Oracle external
table in much the same way as you would an internal
Oracle table. The external definitions occur in the
organization external clause.

Now that we?ve defined the Oracle external table,
we can run reports against the external table using
SQL, just as if the table resided inside the database.
In the query shown in Listing B, note the use of the
sophisticated ROLLUP parameter to summarize salaries
by both department and job title. The results are
available

Limitations
on Oracle External Tables
When Oracle external tables were first introduced,
their use had not yet been perfected. With earlier
versions, external
tables have several limitations, including:
- No support for DML. Oracle external tables are
read-only, but the base data can be edited in any
text editor.
- Poor response for high-volume queries. Oracle external
tables have a processing overhead and are not
suitable for large tables.