Причем функции преобразования типов ( to_lob, to_char и т.д. здесь не помогают).
Прямое преобразование типа LONG в тип CLOB не проходит, так как во-первых user_constraints является представлением словаря, а во-вторых структуру объектов словаря, «хозяйства» администратора базы данных менять не рекомендуется, да и привилегии на это нужны особые, которых у пользователя demo нет:
demo@10g> alter table user_constraints modify (search_condition CLOB);
Alter table user_constraints modify (search_condition CLOB)
*
ошибка в строке 1:
ORA-00942: таблица или представление пользователя не существует
Для того, чтобы запросы вышеприведенного типа обрабатывались (select * from user_constraints where search_condition like '%DEPARTMENT%';), возможен такой вариант преобразования типа LONG в тип CLOB:
demo@10g>create table my_user_constraints (
Constraint_name varchar2(30),
Table_name varchar2(30),
search_condition CLOB);
Таблица создана.
demo@10g> insert into my_user_constraints
(select constraint_name, table_name,to_lob(search_condition)
from user_constraints);
Строк создано.
Без функции преобразования to_lob() Oracle не позволяет переносить тип LONG в другой столбец такого-же типа или типа CLOB.
demo@10g>