![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как переконвертировать Long v VarChar2 ? [Oracle]
DPashin © (2002-06-10 09:08:00)Имеется таблица с полем типа Long, содержащим строки длиной от 0 до 500 символов. Нужно преобразовать это поле к типу данных Varchar2. Как это сделать средствами Oracle, желательно через SQL?
Версия сервера-8.1.6.
DPashin (2002-06-11 06:06:00) [1]Спасибо.
MishGan` (2002-06-10 15:50:00) [2]Это можно сделать с использованием OCI (или чего нибудь подобного) только на клиенте.
Средства SQL/PLSQL не позволяют напрямую работать с LONG/LONG RAW полями.
DPashin (2002-06-10 15:07:00) [3]Может я конечно не прав, но
>//Заносим в него данные из старого поля
>update my_tbl
> set new_field = old_field;
не работает (Invalid use of long dataType).
DarkGreen (2002-06-10 11:40:00) [4]//Создаем временое поле
alter table my_tbl
add (new_field carchar2(500));
//Заносим в него данные из старого поля
update my_tbl
set new_field = old_field;
//Удаляем старое поле
alter table
drop column old_field;
//Пересоздаем его с нужным типом данных
alter table my_tbl
add (old_field carchar2(500));
//Опять данные перекачиваем
update my_tbl
set old_field = new_field;
//Удаляем временное поле
alter table
drop column new_field;
Или вот так, покороче, хотя может не получится (не знаю сможет ли от LONG в VARCHAR2 преобразовать:
alter table
modify (old_field varchar2(500));