|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
Добрый день! В базе куча процедур были созданы с чарсетом UTF8 и дефолтным (для UTF8) collation. Теперь этот коллейт надо поменять на другой (собственноручно-созданный) или сбросить на умолчательный для БД. Полей много, процедур много, баз много. Как бы это дело автоматизировать? п.с. пробовал обновлять rdb$fields.rdb$collation_id - помогает только до первого recompile. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 17:24 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseКак бы это дело автоматизировать? Любой текстовый редактор умеет массовый Search&Replace. Правишь образцово-показательный скрипт, создаёшь новую БД, переливаешь данные из старой. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 17:30 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
debose, Код: plaintext 1.
и перекомпилировать все ХП. Для полей ХЗ как. Наверное надо написать анонимный блок и в нём использовать EXECUTE STATEMENT ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 17:34 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а без пересоздания всех SP никак? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 17:34 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseа без пересоздания всех SP никак? "Ошибки надо смывать. Кровью!" (с) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 17:56 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
Симонов Денисdebose, Код: plaintext 1.
Да, спасибо. Дефолтный COLLATION там был другой (UTF8). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 19:16 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
А можно как-то пересоздать все процедуры в скрипте внутри самой БД? параллельно сбросив старый дефолтный COLLATION - а то IbExpert например после изменения DEFAULT COLLATIOn в исходниках процедур теперь явно показывает старый(UTF8) collation.. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 19:19 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseА можно как-то пересоздать все процедуры в скрипте внутри самой БД? теоретически - можно, через генерируемый ES, но думаю, что это гораздо геморройнее чем экспорт метаданных (isql -x ... вырезание триггеров и процедур из скрипта (пол-скрипта просто отрезать) изменение collate применение модифицированного скрипта. debose IbExpert например после изменения DEFAULT COLLATIOn в исходниках процедур теперь явно показывает старый(UTF8) collation.. склероз? дефолтный чарсет (и коллэйт) БД применяется ТОЛЬКО ДЛЯ НОВЫХ объектов, которые не имеют явно указанного чарсета или коллэйта. Для всех существующих объектов изменение дефолтного чарсета (и коллэйта) БД не имеет никакого значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2016, 20:35 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
kdvсклероз? Не склероз, а капризы. Я как юзер ДБ хочу решить свою проблему. И мне не нравится что в Firebird не только нет подходящего инструмента (возможности создать ДБ объект использующий дефолтный чарсет на любой момент, а не только на момент создания), а ещё и есть инструмент мешающий (что было дефолтным на момент создания - то теперь и юзай на веки вечные пока ALTER сам не вызовешь). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 04:52 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseЯ как юзер ДБ хочу решить свою проблему. Твоя проблема решается хранением скрипта создания БД в СКВ. Далее его правка, пересоздание, переливка данных. Но ты вовсе не хочешь "решить свою проблему", ты хочешь чтобы проблема как-то решилась сама, чужими руками. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 12:28 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseа капризы. Я как юзер ДБ хочу решить свою проблему. Данные и индексы УЖЕ созданы и хранятся в конкретной кодировке и коллэйте. Для смены чарсета и коллейта на них данные надо будет ПЕРЕКОДИРОВАТЬ, а индексы пересоздавать. Увы, нет, за тебя никто перекодировать не будет. потому что нет гарантии, что перекодирование возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 14:19 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
debosekdvсклероз? Не склероз, а капризы. Я как юзер ДБ хочу решить свою проблему. И мне не нравится что в Firebird не только нет подходящего инструмента (возможности создать ДБ объект использующий дефолтный чарсет на любой момент, а не только на момент создания), а ещё и есть инструмент мешающий (что было дефолтным на момент создания - то теперь и юзай на веки вечные пока ALTER сам не вызовешь). а где можно заменить коллейт разом на всей БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 14:42 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
deboseДобрый день! В базе куча процедур были созданы с чарсетом UTF8 и дефолтным (для UTF8) collation. Теперь этот коллейт надо поменять на другой (собственноручно-созданный) или сбросить на умолчательный для БД. Полей много, процедур много, баз много. Как бы это дело автоматизировать? п.с. пробовал обновлять rdb$fields.rdb$collation_id - помогает только до первого recompile. Давным-давно делал я что-то такое. Раньше в экземплах к UIB был дубликатор базы. Очень простой. На основе его и сделал. Создаешь другую СУБД, все объекты дублируются, но с нужными характеристиками. И перезаливаешь данные. Кодить совсем чуть-чуть, дольше ждать, пока данные перезальются. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 15:15 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2016, 15:44 |
|
Как изменить collation для всех полей/параметров всех хранимых процедур для кучи баз?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovТвоя проблема решается хранением скрипта создания БД в СКВ. Далее его правка, пересоздание, переливка данных. Но ты вовсе не хочешь "решить свою проблему", ты хочешь чтобы проблема как-то решилась сама, чужими руками. В таком же ключе. Моя проблема решается недопущением ошибки. Я действительно хочу хотел решить эту проблему "малой кровью" (без пересоздания базы из скрипта и перезаливания данных). Но раз уж вы пишете "Мне очень жаль, но инструмента для решения проблем такого рода в существующих версиях Firebird не предусмотрено. Единственное решение проблемы - пересоздать базу из скрипта с корректными коллэйтами.", то так и буду делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.02.2016, 13:29 |
|
|
start [/forum/topic.php?fid=40&msg=39180169&tid=1562323]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 477ms |
0 / 0 |