powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Нужно многократное использование временной таблицы
5 сообщений из 5, страница 1 из 1
Нужно многократное использование временной таблицы
    #35897956
yon_brover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется база Sybase ASA 12.5, по-моему, с АБС Диасофт.
Имеется средство мониторинга, которое присоединяется к Sybase с помощью jdbc-драйвера.

Средство мониторинга, судя по всему, держит одну и ту же открытую сессию и раз в 10 минут выполняет один и тот же запрос к Sybase. В начале скрипта я использую временную таблицу #cld. Скрипт примерно такой:
Код: plaintext
1.
2.
insert * into #cld from xxx
select * from #cld, abc where #cld.dt = abc.dt
Естественно, повторная вставка в уже существующую временную таблицу валится с ошибкой.
Пытаюсь в конце скрипта удалять временную таблицу:
Код: plaintext
1.
if object_id(N'tempdb..#cld') is not null drop table #cld
Но она то удаляется, то не удаляется. Может быть не каждые 10 минут скрипт добегает до конца.
И в итоге сессия мониторинга зависает при очередном выполнении, говоря, что #cld уже существует и нечего далее не делая.

Кроме того творятся такие вещи: Если дропать таблицу #cld не в конце скрипта, а в начале скрипта, то она не дропается - команда игнорируется. Если же после команды drop ставить ";" или "go", то в клиенте Sybase дроп происходит нормально. А jdbc-шный мониторинг ругается на эти ";" или "go", говоря, что это некорректный символ.
...
Рейтинг: 0 / 0
Нужно многократное использование временной таблицы
    #35897990
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yon_brover,

бред какой-то ...
автор, что вы хотите сделать то? чего хотите добиться?
...
Рейтинг: 0 / 0
Нужно многократное использование временной таблицы
    #35898179
yon_brover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходима корректная многократная работа скрипта, использующего временную таблицу, в рамках одной сессии. С учетом ограничений синтаксиса, которые дает jdbc-драйвер.
...
Рейтинг: 0 / 0
Нужно многократное использование временной таблицы
    #35898586
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замените начало скрипта
Код: plaintext
insert * into #cld from xxx
на
Код: plaintext
1.
2.
3.
4.
5.
if object_id(N'tempdb..#cld') is null 
    create table #cld (...)
else
    truncate table #cld
 
insert into #cld () select ... from xxx
в конце скрипта временную таблицу не удаляйте
...
Рейтинг: 0 / 0
Нужно многократное использование временной таблицы
    #35901349
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yon_broverНеобходима корректная многократная работа скрипта, использующего временную таблицу, в рамках одной сессии. С учетом ограничений синтаксиса, которые дает jdbc-драйвер.
Возьми свой скрипт в begin/end скобки. И/или закрывай транзакцию.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
begin
   create table #tmp(aa int)
   -- some work
end
-- Здесь временная таблица уже умерла
begin transaction
   create table #tmp(bb int)
   -- some work
commit
-- Временной таблицы тоже больше нет.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Нужно многократное использование временной таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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