powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Alter table add column ..
19 сообщений из 19, страница 1 из 1
Alter table add column ..
    #39598412
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день коллеги,
Кто знает помогите пожалуйста...

Имеется таблица которые состоит из 40 столбцов на базе оракл 12С. На него нужно добавить ещё одну колонку. Если добавлю колонку через sql,
Код: plsql
1.
Alter table table_1 add column column_1 varchar2(3000)


то колонка добавляется в конце таблице т.е на 41 позиции.. А как сделать чтобы колонка располагался например на 20 позиции, или после какой-то колонок?
Буду благодарен за каждый ответ..
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598420
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911,

Никак, либо CTAS с нужным порядком

p.s. Порядок важен только для выражений имеющих как список столбцов "*", и/или order by 4
именно поэтому, при разработки, не рекомендуют этим пользоваться

Лень набивать список столбцов - используйте скрипт генератор.
например:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
-- use: @ colgen owner table_name table_alias
select '        , '||'&3.."'||COLUMN_NAME||'"'
from all_tab_columns
where
        owner=upper('&1')
        and TABLE_NAME=upper('&2')
order by column_id
/
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598421
Человек и Кошка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА как сделать чтобы колонка располагался например на 20 позиции, или после какой-то колонок?
1) зачем??
2) drop table / create table...
3) создать view с (непонятно для чего) нужным порядком
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598423
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911А как сделать чтобы колонка располагался например на 20 позиции, или после какой-то колонок?Многочисленными манипуляциями такого достичь можно. Но не нужно.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598448
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек и Кошка,
Пересоздать таблицу не получается, 1) поскольку слишком много запросов на эту таблицу, Бизнес процесс перестаёт работать. 2) Каждую неделю - месяц нужно добавить новую колонку, как быть в этом случае? Каждый раз удалить и создать новую?
Порядок нужно для того чтобы, близко по смыслу колонки располагались друг за другом.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598451
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911Порядок нужно для того чтобы, близко по смыслу колонки располагались друг за другом.Это фигня.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598468
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,
Знаю это фигня, но как это делать??
Привожу пример, cit_id находится на 1 позиции а cit_name на 41, это не красиво..
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598470
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911это не красиво..Зато не упадёт в неподходящий момент. Не майся дурью.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598483
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911Elic,
Знаю это фигня, но как это делать??
Привожу пример, cit_id находится на 1 позиции а cit_name на 41, это не красиво..
ну, используйте красивые вью
как вам сказали уже, Не майся дурью.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598484
Человек и Кошка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911,

Заведи себе er-модель и там расставляй атрибуты в желаемом порядке.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598492
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911Elic,
Знаю это фигня, но как это делать??
Привожу пример, cit_id находится на 1 позиции а cit_name на 41, это не красиво..в OLTP наличие двух таких полей смахивает на кривую реализацию
Или это какая-то накопительная-аналитическая таблица?
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598493
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicМногочисленными манипуляциями такого достичь можно. Но не нужно.

Но не нужно - таки да. Многочисленными манипуляциями - таки нет:

Код: 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.
25.
SQL> select * from tbl;

        C1         C2         C3         C4         C5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5

SQL> alter table tbl modify (c3 invisible,c4 invisible,c5 invisible);

Table altered.

SQL> alter table tbl add c2_1 number;

Table altered.

SQL> alter table tbl modify (c3 visible,c4 visible,c5 visible);

Table altered.

SQL> select * from tbl;

        C1         C2       C2_1         C3         C4         C5
---------- ---------- ---------- ---------- ---------- ----------
         1          2                     3          4          5

SQL> 



SY.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598655
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Занудства ради - таки существуют сценарии, в которых неудачное расположение колонок лучше физически исправить.
Один из них - поисковые атрибуты во втором-третьем фрагменте chained rows. И само по себе нехорошо, а в сочетании со storage indexes можно запросто получить wrong result.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598674
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Это конфигурационная расширяемая таблица. С расширением проекта таблица тоже расширяется..
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598843
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousЗанудства ради - таки существуют сценарии, в которых неудачное расположение колонок лучше физически исправить.
Один из них - поисковые атрибуты во втором-третьем фрагменте chained rows. И само по себе нехорошо, а в сочетании со storage indexes можно запросто получить wrong result.
раз нашлись веские причины, почему надо исправить порядок столбцов,
тогда можно попробовать использовать пакет DBMS_REDEFINITION.
...
Рейтинг: 0 / 0
Alter table add column ..
    #39598869
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911Человек и Кошка,
Пересоздать таблицу не получается, 1) поскольку слишком много запросов на эту таблицу, Бизнес процесс перестаёт работать.

Alter table "может" приводить и к инвалидации хранимок, что тож может навредить биснес процессу

.....
stax
...
Рейтинг: 0 / 0
Alter table add column ..
    #39599042
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Нет неправильно, я это уже тестировал. При ALTER -е Инвалидов не будет..
...
Рейтинг: 0 / 0
Alter table add column ..
    #39599293
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
proxy_911,

11-я версия
Код: 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.
25.
26.
27.
28.
29.
30.
31.
32.
SQL> create or replace procedure stax_test_va is
  2   tmp number;
  3  begin
  4   update t set p=p where rownum=0;
  5  end;
  6  /

Procedure created.

SQL> select OBJECT_NAME,STATUS from user_objects where OBJECT_NAME='STAX_TEST_VA';

OBJECT_NAME                    STATUS
------------------------------ -------
STAX_TEST_VA                   VALID

  1* Alter table t add column column_1 varchar2(30)
SQL> /
Alter table t add column column_1 varchar2(30)
                  *
ERROR at line 1:
ORA-00904: : invalid identifier


SQL> Alter table t add column_1 varchar2(30);

Table altered.

SQL> select OBJECT_NAME,STATUS from user_objects where OBJECT_NAME='STAX_TEST_VA';

OBJECT_NAME                    STATUS
------------------------------ -------
STAX_TEST_VA                   INVALID



.....
stax
...
Рейтинг: 0 / 0
Alter table add column ..
    #39599478
proxy_911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax,

Это на тот момент когда у тя нету активных сессии на процу stax_test_va, В моем случае на процах слишком много запросов. Инвалидом будет Долли секунд.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Alter table add column ..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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