Текущее время: Ср, июн 18 2025, 00:09

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Глюк в ABAP с использованием range в запросе
СообщениеДобавлено: Чт, май 31 2007, 09:59 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
При выборке из БД обнаружили, что записи:

Code:
select ...
where aaa eq '005'


и

Code:
select ...
where aaa between '005' and '005'


не эквивалентны. Т.е. в первом случае ничего не выбирается. а во втором - выбираются записи, у которых aaa = '005'.
Кто-нибудь сталкивался с таким глюком?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Глюк в ABAP с использованием range в запросе
СообщениеДобавлено: Чт, май 31 2007, 10:11 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
profiteer написал(а):
При выборке из БД обнаружили, что записи:

Code:
select ...
where aaa eq '005'


и

Code:
select ...
where aaa between '005' and '005'


не эквивалентны. Т.е. в первом случае ничего не выбирается. а во втором - выбираются записи, у которых aaa = '005'.
Кто-нибудь сталкивался с таким глюком?


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

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Глюк в ABAP с использованием range в запросе
СообщениеДобавлено: Чт, май 31 2007, 10:14 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
sy-uname написал(а):
profiteer написал(а):
При выборке из БД обнаружили, что записи:

Code:
select ...
where aaa eq '005'


и

Code:
select ...
where aaa between '005' and '005'


не эквивалентны. Т.е. в первом случае ничего не выбирается. а во втором - выбираются записи, у которых aaa = '005'.
Кто-нибудь сталкивался с таким глюком?


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


Проверили, поле aaa объявлено как NUMC 3, наш range объявлен именно для этого поля. Проверяли так же запись просто числами (5 вместо '005')
При этом обнаружено еще одно странное явление.
при записи

Code:
select ... where aaa lt '005'

запись с aaa = '005' выбирается. а при
Code:
select ... where aaa eq '005'

не выбирается.

неприятная ситуация.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 10:20 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
А так:
select ...
where aaa eq 5


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 10:21 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
Lars написал:
А так:
select ...
where aaa eq 5


Пробовали. Поведение такое же, как и при '005'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 10:32 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пт, окт 21 2005, 09:24
Сообщения: 832
Откуда: от верблюда...тоже:)
Пол: Мужской
шот я не понял...у Вас range и если написать отак:
Code:
r_aaa = 'IEQ005'. append r_aaa.
select ...
where aaa IN r_aaa

кина не будет :shock: шот не верицца

_________________
а подпись...а подписи не будет :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 10:48 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Был у нас как то немного похожий случай неадекватного выполнения запроса. Помог пересбор статистики

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 10:49 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Галка инициализации установлена?
А не смотрели как лежит значение если просто select , грубо говоря, into table сделать ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 11:49 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
А если план выполнения запросов посмотреть для обоих случаев?
Существуют индексы с этим полем?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 31 2007, 12:09 
Специалист
Специалист

Зарегистрирован:
Ср, окт 04 2006, 09:08
Сообщения: 204
Спасибо всем откликнувшимся.
Сейчас попробуем пересбор статистики.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB