powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Чтобы это могло быть? Плавающий глюк.
6 сообщений из 6, страница 1 из 1
Чтобы это могло быть? Плавающий глюк.
    #33096216
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внутри ХП создаю временую таблицу, делаю в нее выборку. Потом обновляю одно из полей этой временой таблицы.
На большинстве баз (более двухсот) этот код работает идеально. На двух - команда update падает с -734-ой ошибкой (Cannot update of delete an all-NULL row from table #tmp). Данные выбираются вполне нормальные. Что это может быть не представляю совершенно.

Сначала грешил на поломаную базу. Выгрузил все данные в скрипты, проверил их в csv виде - все в порядке, загрузил в свежую базу - скрипт работает. Перезапустил сервер - скрипт не работает. Очень смахивает на устаревшие кеши или статистику, но как может сохранятся статистика на сессионую времянку? Тем более что я таблицу эту даже вручную дропаю, заново создаю - снова ошибка есть.
Но проявляется эта зараза только на двух боевых базах из более чем двухсот! Пытаюсь повторить это на чистой базе - нет ошибки.

Принимаются самые бредовые идеи. У меня они уже кончились.

ASA 9.0.1 - 9.0.2.2451
...
Рейтинг: 0 / 0
Чтобы это могло быть? Плавающий глюк.
    #33096448
Litus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:-) 1-ая бредовая идея:
может дело в опциях баз?
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Чтобы это могло быть? Плавающий глюк.
    #33096686
Peter Kirillow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может поможет

http://www.ianywhere.com/developer/product_manuals/sqlanywhere/0901/en/html/dberen9/00000124.htm
...
Рейтинг: 0 / 0
Чтобы это могло быть? Плавающий глюк.
    #33096779
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlВнутри ХП создаю временую таблицу, делаю в нее выборку. Потом обновляю одно из полей этой временой таблицы.
На большинстве баз (более двухсот) этот код работает идеально. На двух - команда update падает с -734-ой ошибкой (Cannot update of delete an all-NULL row from table #tmp). Данные выбираются вполне нормальные. Что это может быть не представляю совершенно.

Сначала грешил на поломаную базу. Выгрузил все данные в скрипты, проверил их в csv виде - все в порядке, загрузил в свежую базу - скрипт работает. Перезапустил сервер - скрипт не работает. Очень смахивает на устаревшие кеши или статистику, но как может сохранятся статистика на сессионую времянку? Тем более что я таблицу эту даже вручную дропаю, заново создаю - снова ошибка есть.
Но проявляется эта зараза только на двух боевых базах из более чем двухсот! Пытаюсь повторить это на чистой базе - нет ошибки.

Принимаются самые бредовые идеи. У меня они уже кончились.

ASA 9.0.1 - 9.0.2.2451
Сложно привести даже бредовые идеи, не видя кода. Хотелось бы посмотреть на скрипт создания времянки и тот кусок процедуры, где выскакивает ошибка.
...
Рейтинг: 0 / 0
Чтобы это могло быть? Плавающий глюк.
    #33098267
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSСложно привести даже бредовые идеи, не видя кода. Хотелось бы посмотреть на скрипт создания времянки и тот кусок процедуры, где выскакивает ошибка.
Там все примитивно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table #tmp(ClientId char( 11 ), Service char( 2 ), DropDate date, ReEnr char( 1 ) default 'R');

insert into #tmp (ClientId, Service, DropDate)
	select ClientId, Service, StartDate
		from Client_Status
		where StartDate>=pStartDate and StartDate<=pEndDate and StatusCode='DROP';

update #tmp a set a.ReEnr='N' where a.DropDate=
	(select min(b.StartDate) from Client_Status b where b.ClientId=a.ClientId and
	b.StatusCode='DROP');
После вставки во времянке получаются две строки:
123456, 'LC', '2005-03-20', 'R'
658427, 'LC', '2005-03-20', 'R'
Ни единого null значения нету.
...
Рейтинг: 0 / 0
Чтобы это могло быть? Плавающий глюк.
    #33098550
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь может в
Код: plaintext
1.
2.
update #tmp a set a.ReEnr='N' where a.DropDate=
	(select min(b.StartDate) from Client_Status b where b.ClientId=a.ClientId and b.StatusCode='DROP');
подселект:
select min(b.StartDate) from Client_Status b where b.ClientId=a.ClientId and b.StatusCode='DROP'
пуст
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Чтобы это могло быть? Плавающий глюк.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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