Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / [Sybase IQ] как изменить тип колонки и указать расположение колонок / 25 сообщений из 33, страница 1 из 2
23.05.2017, 17:16
    #39458320
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
У меня собственно говоря 2 вопроса:
1)У меня есть колонка с типом данных decimal (19,2) нужно поменять на (19,4)
2) При добавлении колонки я могу указать место колонки (по умолчанию добавляет в конец таблицы), а я хочу например в середину конкретно после какой то колонки
...
Рейтинг: 0 / 0
23.05.2017, 17:31
    #39458342
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,

для начала - какой из Sybase-серверов у тебя?
далее - если нужен определенный порядок колонок, то таблицу для этого мучить не надо. надо создать по таблице представление с правильным порядком полей.
...
Рейтинг: 0 / 0
23.05.2017, 17:35
    #39458343
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
23.05.2017 17:16, kolyady пишет:

> У меня собственно говоря 2 вопроса:

Сервер-то какой ;)?

> 1)У меня есть колонка с типом данных decimal (19,2) нужно поменять на (19,4)

alter table dba.mycooltable modify mycolumn decimal(19,4) ;

> 2) При добавлении колонки я могу указать место колонки (по умолчанию
> добавляет в конец таблицы), а я хочу например в середину конкретно после
> какой то колонки

Можешь хотеть дальше ;).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.05.2017, 18:27
    #39458389
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Dim2000,
При альтере ошибка
Could not execute statement.

ALTER TABLE MODIFY <column> <datatype> is not supported.
--
(dblib\db_alter.cxx 411)
SQLCODE=-1013024, ODBC 3 State="HY000"
Line 1, column 1

alter table dbo.tb_sc_LiquidatD modify OSTATOK decimal(19,4)

а расположение я так понял никак указать нельзя, или кто то может все таки извращался и получилось, при добавлении или уже после , передвинуть в нужное место

ВАЖНО удалить таблицу и создать заново не вариант, надо именно при добавлении колонки в существующую табл
...
Рейтинг: 0 / 0
23.05.2017, 18:29
    #39458390
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Добрый Э - Эх,

представление то понятно, вопрос именно как таблицу вымучить до нужного результата
...
Рейтинг: 0 / 0
23.05.2017, 18:56
    #39458405
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
23.05.2017 18:27, kolyady пишет:

> При альтере ошибка

У меня работает. Почему - догадайся сам ;).

> а расположение я так понял никак указать нельзя

Правильно понял. Тем более что порядок полей в таблице не важен.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.05.2017, 19:22
    #39458412
Teck
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyadyУ меня собственно говоря 2 вопроса:
2) При добавлении колонки я могу указать место колонки (по умолчанию добавляет в конец таблицы), а я хочу например в середину конкретно после какой то колонки

А для чего это? В MySql вроде было что-то похожее
Код: sql
1.
[FIRST | AFTER col_name ]

. Где вообще это может понадобиться?
...
Рейтинг: 0 / 0
24.05.2017, 09:21
    #39458567
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Dim2000,
Ну хотелось бы услышать решение , а не загадки.
Не работает потому что в принцыпи не работает это мое мнение, если я не прав перепиши скрипт так как чтоб оно работало, строка самого альтера внизу ошибки.
...
Рейтинг: 0 / 0
24.05.2017, 09:28
    #39458573
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,

тебя же первым вопросом спросили - какой именно у тебя Sybase-сервер. Ибо ASA, ASE и IQ - детища совершенно разных разработчиков. Каждая - со своими парадигмами и особенностями синтаксиса SQL. Поэтому вещи, работающие в одной из этих СУБД, совершенно не обязаны работать и в двух других. Кроме того, даже внутри одной "линейки" могут быть отличия от версии к версии.
...
Рейтинг: 0 / 0
24.05.2017, 09:30
    #39458574
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Teck,
И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным). Вот и вынес данную тему на обсуждение возможно ктото нарил таки как такое сделать.

Зачем это нужно, все очень просто есть таблици, есть на них же вьюхи, вьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш, поменять вьюху вместо звездочки на перечень колонок- это решение, но когда добавятся колонки в таблицу прийдется альтерить вьюху, со звездочкой альтерить не надо.

Короче если у когото есть конкретные решения этих вопросов буду рад их лицезренть, любителей загадок, кроссвордов и шарад прошу проходить мимо данного чата.
...
Рейтинг: 0 / 0
24.05.2017, 09:35
    #39458581
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Добрый Э - Эх,
Ну теперь то ясно что IQ какие есть идеи?
...
Рейтинг: 0 / 0
24.05.2017, 10:27
    #39458629
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyadyTeck,
И в ms sql, такая возможность есть и по моему в оракле тожев Oracle точно нет. А в MS SQL Server-е, если посмотреть, что выполняет SSMS в результате "мышечных" перестановок порядка полей в таблице, то легко увидеть, что он делает CREATE TABLE с нужным порядком полей, перезаливает данные из старой таблицы в новую, навешивает на новую таблицу всю обвязку (индексы, триггеры, ограничения целостности, права доступа), после чего старую таблицу удаляет, а новую переименовывает в имя старой. То есть, это, по сути, тот вариант, который ты просил тебе не предлагать...


kolyadyвьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш.ты это сам придумал или прочитал в документации / проверил на практике? Вообще-то, при создании представления по запросу select *, сервер распарсивает текущий список полей таблицы и в итоговый текст представления подставляет явное перечисление всех полей таблицы, в том порядке, что они есть на данный момент. "*" в этом слечае - не более чем синтаксический "рафинад" для упрощения труда ленивому прогруммисту. Соответственно, добавления поля в таблицу или смена их порядка не произведет на представление никакого эффекта и для учета этих изменений представление всё одно придется переделать...
...
Рейтинг: 0 / 0
24.05.2017, 10:38
    #39458639
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyadyДобрый Э - Эх,
Ну теперь то ясно что IQ какие есть идеи?
В глаза IQ не видел, но если верить синтаксической диаграмме, то должно быть что-то такое:
alter table <owner.table_name> alter column <column_name> decimal (19,4);
...
Рейтинг: 0 / 0
24.05.2017, 11:27
    #39458705
pand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyadyDim2000,
Ну хотелось бы услышать решение , а не загадки.
Не работает потому что в принцыпи не работает это мое мнение, если я не прав перепиши скрипт так как чтоб оно работало, строка самого альтера внизу ошибки.
Ух ты как стало модно вопросы задавать . а я на посторение не попал :)
...
Рейтинг: 0 / 0
24.05.2017, 14:13
    #39458897
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Добрый Э - Эх,

тож не катит

Could not execute statement.

Syntax error near 'OSTATOK' on line 1
SQLCODE=-131, ODBC 3 State="42000"
Line 1, column 1

alter table dbo.tb_sc_LiquidatD alter column OSTATOK decimal (19,4)
...
Рейтинг: 0 / 0
24.05.2017, 14:30
    #39458906
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
[quot Добрый Э - Эх]kolyadyTeck,

kolyadyвьюхи постороены запросом select * from table, добавлю в конец колонку которую они видели всегда в начале, будет кипиш.ты это сам придумал или прочитал в документации / проверил на практике? Вообще-то, при создании представления по запросу select *, сервер распарсивает текущий список полей таблицы и в итоговый текст представления подставляет явное перечисление всех полей таблицы, в том порядке, что они есть на данный момент. "*" в этом слечае - не более чем синтаксический "рафинад" для упрощения труда ленивому прогруммисту. Соответственно, добавления поля в таблицу или смена их порядка не произведет на представление никакого эффекта и для учета этих изменений представление всё одно придется переделать...

По этому поводу возможно у твоей версии БД так и есть но в моей все что ты добавляеш в табл, вьюха тут же отображает ничего при "*" альтерить не надо и отображает так как было добавлено тобиш все новые в конец толкает.
А в данный момент я хочу перевести колонку OSTATOK из decimal (19,2) в decimal (19,4)

В итоге получается следующее:
- просто заальтерить (расширить) колонку я немогу (покрайней мере рабочий механизм никто еще не подсказал);
- значит прийдется создавать новую колонку с правильным типом, апдейтить инфу со старой, дропать старую, ренеймить новую;
- в итоге колонка которая была вначале будет в конце
- и возможно у когото юзеры отнесутся нормально к такому мои же однозначно не

по факту

- нужен механизм (если он существует), чтоб альтериить существующие колонки БЕЗ дроп криэйт
- или на худой конец механизм чтоб переместить колонку в нужное место

Буду рад любым предложениям
...
Рейтинг: 0 / 0
24.05.2017, 14:53
    #39458918
pand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyadyTeck,
И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным ).
возможно Вы не пробовали искать
...
Рейтинг: 0 / 0
24.05.2017, 15:22
    #39458955
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,

Думаю новых предложений не будет.
Ибо Документация
The ALTER TABLE statement can change many characteristics of a table—foreign keys can be added or deleted, and so on. However, you cannot use MODIFY to change table or column constraints. Instead, you must DELETE the old constraint and ADD the new one. In all these cases, once you make the change, stored procedures, views, and any other item referring to this column will no longer work.

Т.е. менять через DROP ADD. Думаю колоно-ориентированная архитектура IQ влияет
А представление нужно делать как нужно.
Что за пользователи у Вас, которые относятся к этому ненормально? В чем они работают?
Они к номеру поля что-ли привязываются в выборке? Если так, то это ненормально.
Привязка в источнике данных должна идти к названию поля. Нормальное клиентское приложение умеет каждую колонку привязать к нужному полю по названию, а сами колонки расставить как надо пользователю. Независимо от того как они там в базе созданы
По вашему получается что один раз представление с *, я должен пересоздавать таблицы в него входящие так, чтобы обязательно соблюсти порядок полей, который заложен у пользователя! в его клиентской программе. Это очень "удобно" для разработчика базы
...
Рейтинг: 0 / 0
24.05.2017, 15:54
    #39458987
Sergey Orlov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,
А вообще про какую субд идет речь, я так в постах и не нашел...
...
Рейтинг: 0 / 0
24.05.2017, 16:02
    #39458994
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
pandkolyadyTeck,
И в ms sql, такая возможность есть и по моему в оракле тоже, я новичек в sybes iq, искал как в этой БД это делается, пока к сожелению не нашел :( возможно потому что инфы по данной БД намного меньше чем по остальным ).
возможно Вы не пробовали искать

прекрасный пост, но там нету того что я ищу, ну или я слепой :)
укажите незрячему путь :)
...
Рейтинг: 0 / 0
24.05.2017, 16:03
    #39458996
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
Sergey Orlov,
SYBES IQ
...
Рейтинг: 0 / 0
24.05.2017, 16:35
    #39459023
pand
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,

Если Вы по этой сслыке не видите доку по Sybase IQ , то я Вам ничем уже не помогу.
Если Вы хотите чтобы я за Вас искал ответы на ваши вопросы , то сначала нужно обсудить стоимость работ.
...
Рейтинг: 0 / 0
24.05.2017, 16:45
    #39459035
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
pandkolyady,

Если Вы по этой сслыке не видите доку по Sybase IQ , то я Вам ничем уже не помогу.
Если Вы хотите чтобы я за Вас искал ответы на ваши вопросы , то сначала нужно обсудить стоимость работ.

Данный форум не есть комерческий, хотите заработать предлагайте себя на фрилансерских сайтах.
Искать что то я Вас не прошу, я спрашиваю у людей которые знают как решить данную проблему, кинуть ссылку на доку (не будучи уверенным в том что там есть нужная инфа) не есть помощь , не знаете - не пишите.
...
Рейтинг: 0 / 0
24.05.2017, 18:27
    #39459116
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
kolyady,

Модератор с подозрением смотрит на тебя.
...
Рейтинг: 0 / 0
25.05.2017, 09:57
    #39459347
kolyady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Sybase IQ] как изменить тип колонки и указать расположение колонок
White Owl,

В чем суть подозрений?
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / [Sybase IQ] как изменить тип колонки и указать расположение колонок / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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