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

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

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

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

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

  • для ОС Linux, ЗОСРВ Нейтрино спецификация файла не меняется.

Если присутствует конструкция ROOT, то файлы с относительными именами (у которых первый символ не '/' в ОС Linux, ЗОСРВ Нейтрино и не имя устройства в 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;