Длина значений LONG может быть ограничена объемом памяти, доступной на вашем компьютере. Литералы LONG формируются, как описано для «Текстовых литералов».
Oracle также рекомендует преобразовать существующие столбцы LONG в столбцы LOB. Столбцы LOB имеют гораздо меньше ограничений, чем столбцы LONG. Кроме того, функциональность LOB улучшается в каждом выпуске, тогда как функциональность LONG была статичной для нескольких выпусков. См. Предложение modify_col_properties команд ALTER TABLE и TO_LOB для получения дополнительной информации о преобразовании столбцов LONG в LOB.
Вы можете ссылаться на LONG столбцы в операторах SQL в следующих местах:
Предложения SET операторов UPDATE.
Пункты VALUES операторов INSERT.
На использование значений LONG распространяются следующие ограничения:
Таблица может содержать только один столбец LONG.
Вы не можете создать тип объекта с атрибутом LONG.
Столбцы LONG не могут появляться в предложениях WHERE или в ограничениях целостности (за шкаф на заказ исключением того, что они могут появляться в ограничениях NULL и NOT NULL).
Столбцы LONG не могут быть проиндексированы.
Данные LONG нельзя указывать в регулярных выражениях.
Сохраненная функция не может возвращать значение LONG.
Вы можете объявить переменную или аргумент программного модуля PL / SQL, используя тип данных LONG. Однако вы не можете затем вызвать программный модуль из SQL.
В одном операторе SQL все столбцы LONG, обновленные и заблокированные таблицы должны находиться в одной базе данных.
Столбцы LONG и LONG RAW не могут использоваться в распределенных операторах SQL и не могут быть реплицированы.
Если в таблице есть столбцы LONG и LOB, вы не можете привязать более 4000 байтов данных к столбцам LONG и LOB в одном операторе SQL. Однако вы можете привязать более 4000 байтов данных к столбцу LONG или LOB.
Кроме того, столбцы LONG не могут появляться в этих частях операторов SQL:
Предложения GROUP BY, предложения ORDER BY или предложения CONNECT BY или с оператором DISTINCT в операторах SELECT.
Оператор UNIQUE оператора SELECT.
Список столбцов оператора CREATE CLUSTER.
Предложение CLUSTER оператора CREATE MATERIALIZED VIEW.
Встроенные функции, выражения или условия SQL.
SELECT списки запросов, содержащие предложения GROUP BY.
SELECT списки подзапросов или запросов, объединенных операторами множества UNION, INTERSECT или MINUS.
ВЫБЕРИТЕ списки CREATE TABLE. Как операторы SELECT.
ИЗМЕНИТЬ ТАБЛИЦУ. Заявления MOVE.
Списки SELECT в подзапросах в операторах INSERT.
Триггеры могут использовать тип данных LONG следующим образом:
Оператор SQL в триггере может вставлять данные в столбец LONG.
Если данные из столбца LONG можно преобразовать в ограниченный тип данных (например, CHAR и VARCHAR2), то на столбец LONG можно ссылаться в операторе SQL в триггере.
Переменные в триггерах нельзя объявлять с использованием типа данных LONG.
: NEW и: OLD нельзя использовать с ДЛИННЫМИ столбцами.
Вы можете использовать функции Oracle Call Interface для извлечения части значения LONG из базы данных.