ORA-00997 при конвертировании LONG -> VARCHAR

Ixtiander06
Дата: 21.02.2007 14:11:20
Привет всем,

простое желание: конвертировать DATA_DEFAULT из user_tab_columns в VARCHAR, чтобы спасти потом в другой таблице как VARCHAR. Заранее известно, что в тех записях, которые я выбираю значения маленькие. Вроде-бы тогда должна работать такая простая процедура:

create or replace
function getlong( l_data in long)
return varchar2
as
l_data1 varchar(4000);
begin
select l_data into l_data1 from dual;
return substr( l_data1, 1, 4000 );
end;
/

но когда вызываю

Select getlong(DATA_DEFAULT) from user_tab_columns
where table_name='ТАB1' and column_name='FIELD1'

выдает ORA-00997: illegal use of LONG datatype

неужели это как-то по-простому нельзя сделать (с PL/SQL конечно, ясно что иначе не получится)?
Elic
Дата: 21.02.2007 14:21:50
Ixtiander06
неужели это как-то по-простому нельзя сделать (с PL/SQL конечно, ясно что иначе не получится)?
Нельзя. STFF Как в запросе получить содержимое поля LONG?
Надо изначально всё делать в PL/SQL.