Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Таблицы и Хранимые процедуры / 11 сообщений из 11, страница 1 из 1
27.04.2008, 19:05
    #35282333
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Не знаю, было ли, извините если повторюсь, поиском не нашел.
Есть большое количество ХП, внутри которых напрямую указаны имена таблиц (всякие UPDATE, SELECT и прочее), если быть точнее, то это база 1С 7.7.
Настает определенный момент, когда какая-нибудь таблица удаляется и создается заново, и после этого перестает работать ХП, которая была с ней связана, выдавая ошибку, что "Объект с таким-то ID не существует".
На скольк я понимаю, при компиляции ХП все имена таблиц заменяются на их ID.
Но как же быть в данном случае? Делать работу с таблицами только через execute "запрос" будет крайне не удобно из-за исползования локальных переменных внутри запросов. Это вообще как-то лечится?
Спасибо
...
Рейтинг: 0 / 0
28.04.2008, 01:09
    #35282591
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Zashibis пишет:

> Но как же быть в данном случае? Делать работу с таблицами только через
> execute "запрос" будет крайне неудобно из-за исползования локальных
> переменных внутри запросов. Это вообще как-то лечится?

Думаю, что после пересоздания таблицы надо пересоздать все процедуры,
ссылающиеся на нее.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
28.04.2008, 10:19
    #35282839
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
MasterZivДумаю, что после пересоздания таблицы надо пересоздать все процедуры,
ссылающиеся на нее.
Posted via ActualForum NNTP Server 1.4Бред не пишите, пожалуйста.
ZashibisВроде в обещали исправить данную фичу в будущих, либо уже исправили в 8.3.
З.Ы.
Кроме как использованием динамического sql данную фичу не обойти
...
Рейтинг: 0 / 0
28.04.2008, 10:49
    #35282931
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Dan Black MasterZivДумаю, что после пересоздания таблицы надо пересоздать все процедуры,
ссылающиеся на нее.
Posted via ActualForum NNTP Server 1.4Бред не пишите, пожалуйста.
почему же бред. повторный запуск скриптов на создание функций (CREATE OR REPLACE....) устраняет эту ошибку (в этом же сеансе). Dan BlackКроме как использованием динамического sql данную фичу не обойтиКажется еще закрытие-открытие сеанса может помочь (теорию не знаю, но при первом запросе ф-ии в сеансе она вроде бы как "компилируется" и кешируется"). Кстати сказать, проблема может возникать и после удаления индекса.
...
Рейтинг: 0 / 0
28.04.2008, 11:36
    #35283083
Dan Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
4321почему же бред. повторный запуск скриптов на создание функций (CREATE OR REPLACE....) устраняет эту ошибку (в этом же сеансе).
Кажется еще закрытие-открытие сеанса может помочь (теорию не знаю, но при первом запросе ф-ии в сеансе она вроде бы как "компилируется" и кешируется"). Кстати сказать, проблема может возникать и после удаления индекса.Я представляю, как в системе, где тысячи хп, они начинают перегенерироваться из-за что была удалена какая-нибудь временная таблица.
Открытие-закрытие сеанса, по-моему, тут не выход (в смысле постановке задачи). Zashibis: Или выход?

З.Ы.
Проблема после закрытия сеанса не должна возникать, так как при создании нового подключения или пересоздания хп, закешированные планы выполнения хп создаются заново.

З.З.Ы.
Использование минимального количества хп, работающих напрямую с подобными таблицами, позволяет уменьшить трудоемкость. Все остальные хп работают с подобными таблицами через строго определенные хп.
...
Рейтинг: 0 / 0
08.05.2008, 15:12
    #35302728
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Пересоздание всех ХП - это не выход.
База 1С 7.7 - это порядка 300 таблиц и 1000 ХП.
...
Рейтинг: 0 / 0
08.05.2008, 15:41
    #35302812
tadmin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
в качестве offtopic,
не пояснит ли автор, что это за 1C7.7 на postgresql ?
...
Рейтинг: 0 / 0
08.05.2008, 16:33
    #35302979
Zashibis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
...
Рейтинг: 0 / 0
09.05.2008, 14:05
    #35303829
tkopets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
установи версию PostgreSQL 8.3
...
Рейтинг: 0 / 0
10.05.2008, 01:56
    #35304222
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Dan Black пишет:

> Открытие-закрытие сеанса, по-моему, тут не выход (в смысле постановке
> задачи). Zashibis: Или выход?

я думаю - нет. Но точно не знаю.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.05.2008, 01:56
    #35304223
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблицы и Хранимые процедуры
Zashibis пишет:

> База 1С 7.7 - это порядка 300 таблиц и 1000 ХП.
1000 процедур - это не много. К тому же если
другого выхода нет, то что же делать ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Таблицы и Хранимые процедуры / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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