powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ошибка АСА 9
6 сообщений из 6, страница 1 из 1
Ошибка АСА 9
    #33137290
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АСА 9.0.2

Имеет место непонятная ошибка. Выполняется запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
update s.project p set 
    start_date=current timestamp
  where id= 5555 
    and exists (select  1  from s.v_access   //это проверка прав доступа пользователя
                  where session_id='x'
                    and access_id= 2 
                    and content_id=p.id
               );

Получается ошибка:
Run time SQL error -- *** ERROR *** Assertion failed 102501 (9.0.2.3137)
Work table: NULL value inserted into non-null column
SQLCODE=-300, ODBC 3 Sate="HY000"

Если во внутреннем запросе p.id заменить на его значение 5555, то запрос отрабатывает. Внутренний запрос проверяет имеет ли право пользователь редактировать данный проект. Представление s.v_access довольно сложное. Триггеров нет, обновляемое поле не входит в индексы и внешние ключи.

Запрос выполняется из сохраненки, поэтому константу поставить не могу, а подстановка формального параметра или локальной переменной ошибку не исправляет.

Мы проверяли на разных билдах (2551, 3044), ошибка повторяется. Переписывание подзапроса с "exists" на "in" не помогает. Экспорт-импорт данных в новую базу тоже ничего не меняет. Вроде бы раньше на версии 9.0.1 этой ошибки не было, этой сохраненке уже года два и она работала.

Какие есть идеи у уважаемых специалистов, что это может быть и как с ним бороться?
...
Рейтинг: 0 / 0
Ошибка АСА 9
    #33137291
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
текущая версия asa 9.0.2.3137. то есть та, на которой проявляется проблема.
...
Рейтинг: 0 / 0
Ошибка АСА 9
    #33137299
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри
текущая версия asa - 9.0.2.3137. то есть та, на которой ТОЖЕ проявляется проблема.
...
Рейтинг: 0 / 0
Ошибка АСА 9
    #33137303
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127АСА 9.0.2

Имеет место непонятная ошибка. Выполняется запрос:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
update s.project p set 
    start_date=current timestamp
  where id= 5555 
    and exists (select  1  from s.v_access   //это проверка прав доступа пользователя
                  where session_id='x'
                    and access_id= 2 
                    and content_id=p.id
               );

Получается ошибка:
Run time SQL error -- *** ERROR *** Assertion failed 102501 (9.0.2.3137)
Work table: NULL value inserted into non-null column
SQLCODE=-300, ODBC 3 Sate="HY000"

Если во внутреннем запросе p.id заменить на его значение 5555, то запрос отрабатывает. Внутренний запрос проверяет имеет ли право пользователь редактировать данный проект. Представление s.v_access довольно сложное. Триггеров нет, обновляемое поле не входит в индексы и внешние ключи.

Запрос выполняется из сохраненки, поэтому константу поставить не могу, а подстановка формального параметра или локальной переменной ошибку не исправляет.

Мы проверяли на разных билдах (2551, 3044), ошибка повторяется. Переписывание подзапроса с "exists" на "in" не помогает. Экспорт-импорт данных в новую базу тоже ничего не меняет. Вроде бы раньше на версии 9.0.1 этой ошибки не было, этой сохраненке уже года два и она работала.

Какие есть идеи у уважаемых специалистов, что это может быть и как с ним бороться?
Судя по всему баг, надо бы его попытаться "воспроизвести" и заявить в CASE. Попробуйте переписать UPDATE с EXISTS на JOIN, что то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
UPDATE s.project p
  INNER JOIN s.v_access a ON
    a.session_id='x' AND
    a.access_id= 2  AND
    a.content_id=p.id
SET p.start_date=CURRENT TIMESTAMP
WHERE p.id= 5555 ;
...
Рейтинг: 0 / 0
Ошибка АСА 9
    #33137709
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c127 пишет:

> Какие есть идеи у уважаемых специалистов, что это может быть и как с ним
> бороться?

Сделать МАКСИМАЛЬНО упрощенный пример, в котором проявляется эта ошибка.
Это должен быть скрипт, позволяющий увидеть ошибку на свежесозданной
базе. Это то, что ASCRUS назвал "воспроизвести". Если действительно
ошибка имеет место быть, то отправить в sybase (case или форум) и
подождать около месяца свежего EBF.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Ошибка АСА 9
    #33138062
c127
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ASCRUS

Да, согласен, я попробую. Пока вынес внутренний запрос в сохраненку, ошибка исчезла, но получился совсем другой план зароса.

2 Александр Гoлдун

Я и сам об этом думал и даже рыпнулся в этом направлении, но при упрощении запроса ошибка быстро исчезает.

Кстати при замене запроса с update на select ошибка тоже исчезает, т.е. сам по себе оптимизатор работает вроде правильно.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ошибка АСА 9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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