Внешняя таблица – это таблица, доступная только для чтения, метаданные которой хранятся в базе данных, а данные – вне базы данных.
Определение этой внешней таблицы может рассматриваться как представление, которое используется для запуска любых SQL-запросов внешних данных без необходимости предварительной загрузки этих внешних данных в базу данных. Данные внешней таблицы могут запрашиваться и объединяться напрямую и параллельно без необходимости предварительной загрузки внешних данных в базу данных. Для запроса данных во внешней таблице можно использовать SQL, PL/SQL и Java.
Основное различие между внешними и обычными таблицами состоит в том, что внешние таблицы доступны только для чтения. Никакие операции DML не возможны, и для них нельзя создать никаких индексов. Однако можно создать внешнюю таблицу и таким образом выгрузить данные, используя команду CREATE TABLE AS SELECT
.
Сервер Oracle предоставляет два основных драйвера доступа к внешним таблицам. Один драйвер доступа к загрузчику (или ORACLE_LOADER
) применяется для чтения данных из внешних файлов, формат которых может интерпретироваться служебной программой SQL*Loader. Обратите внимание, что не все функциональные возможности SQL*Loader поддерживаются внешними таблицами. Драйвер доступа ORACLE_DATAPUMP
может применяться как для импорта, так и для экспорта данных с использованием формата, не зависящего от платформы. Драйвер доступа ORACLE_DATAPUMP
записывает строки из инструкции SELECT
, загружаемой во внешнюю таблицу как часть инструкции CREATE TABLE
…ORGANIZATION EXTERNAL
…AS SELECT
. Затем можно применить SELECT
для считывания данных из этого файла данных. Можно также создать определение внешней таблицы в другой системе и использовать этот файл данных. Это позволяет перемещать данные между базами данных Oracle.
Далее: Создание каталога для внешней таблицы