Приложение. Расширения SQL

Создание таблицы со столбцом типа EXTFILE

CREATE OR REPLACE TABLE [<имя схемы>.]<имя таблицы>
   ( ... <имя столбца> EXTFILE [ ROOT '<корневой каталог>' ] ... );

При хранении в БД имя файла преобразуется следующим образом:

  • для DOS/Windows все символы '\' заменяются на '/';

  • для UNIX спецификация файла не меняется.

Если присутствует конструкция ROOT, то файлы с относительными именами (у которых первый символ не '/' в UNIX и не имя устройства в Windows) ищутся относительно указанного каталога, иначе относительно каталога БД.

Если значение <корневой каталог> задает относительный путь, то он считается относительно каталога БД.

Значение <корневой каталог>, заданное в конструкции ROOT, хранится для типа EXTFILE как DEFAULT-значение, содержащее текстовую строку.

Добавление данных

INSERT INTO [<имя схемы>.]<имя таблицы> [(... <имя столбца> ...)]
  VALUES (... EXTFILE('<имя файла>' [, <имя фильтра>]) | NULL ... );
<имя файла>::=NULL | ? |<спецификация файла>

Изменение данных

UPDATE [<имя схемы>.]<имя таблицы> SET <имя столбца> =
  EXTFILE('<имя файла>' [,<имя фильтра>]) | NULL ... ;

Установка нового корневого каталога

ALTER TABLE [<имя схемы>.]<имя таблицы> ALTER COLUMN <имя столбца>
  SET ROOT '<имя каталога>';

Отмена корневого каталога

ALTER TABLE [<имя схемы>.]<имя таблицы> ALTER COLUMN <имя столбца>
  DROP ROOT;