powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Смена типа данных в колонке и индексы, построенные на ней
9 сообщений из 9, страница 1 из 1
Смена типа данных в колонке и индексы, построенные на ней
    #39278741
MakeSure
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, необходимо поменять типы у колонок:
1. varchar2(10), который всегда добивается пробелами до длины 10, на char(10).
2. number на varchar2(100).

На обоих полях построены индексы.
При процессе:
1. новых двух временных колонок;
2. а) перенос значений из целевых колонок во временные;
  . б) очистка целевых колонок;
3. смена типа на целевых колонках;
4. возврат значений из временных колонок в целевые;
5. удаление временных колонок.

В этом случае остаются индексы на целевых колноках остаются валидными.
Не нужно ли ребилдить индексы в этом случае?
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278788
не нужно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MakeSureНе нужно ли ребилдить индексы в этом случае?
статистику сразу по таблице собери и будет достаточно.
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278829
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MakeSure,

Смена VARCHAR2 на CHAR и наоборот не требует приведенных тобой телодвижений - простой ALTER TABLE MODIFY:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SQL> create table tbl(name varchar2(10))
  2  /

Table created.

SQL> insert into tbl select ename from emp;

14 rows created.

SQL> commit;

Commit complete.

SQL> alter table tbl modify name char(10)
  2  /

Table altered.

SQL> desc tbl
 Name                                      Null?    Type
 ----------------------------------------- -------- ---------
 NAME                                               CHAR(10)

SQL> 



А вот для NUMBER <--> VARCHAR2 таки да.

SY.
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278844
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И индекс после смены типа (number->varchar2) надо будет пересоздать
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278847
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и varchar2->char тоже
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278857
Вячеслав ЛюбомудровИ индекс после смены типа (number->varchar2) надо будет пересоздать
если не пересоздавать?
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278861
MakeSure
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за ответы.
SY , это я знал, просто длинный путь указал сразу, чтобы не размывать тему разговора.

Вячеслав Любомудров , меня как раз и смутило немного, что в ходе теста индекс остался валидным.
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278876
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, я таки наврал
...
Рейтинг: 0 / 0
Смена типа данных в колонке и индексы, построенные на ней
    #39278932
MakeSure
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, сошлись на том, что после изменения типа данных в столбце достаточно пересобрать статистику по таблице.

Спасибо и всем хороших выходных =)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Смена типа данных в колонке и индексы, построенные на ней
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]