Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Глюки с CASE ? / 3 сообщений из 3, страница 1 из 1
13.09.2006, 13:02
    #33983776
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки с CASE ?
Может быть кто сталкивался с таким глюком...
Sybase ASA 8.0.3.5002

Есть процедура T-SQL:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create procedure test (@id varchar( 20 ), @OrderType integer) 
as 
begin
  ...
  insert into ...
    select  
      ..., 
      case @OrderType when  1  then 'a000x008x008' else 'a000x001' end
  ...
end

Процедура вызывается так:
Код: plaintext
  execute @rc = test @id,  1 

Оператор CASE на ОДНОМ из серверов стабильно срабатывает по ветке ELSE (на другом - правильно).
Переписал оператор по-другому:
Код: plaintext
  case when @OrderType= 1  then 'a000x008x008' else 'a000x001' end
Стало работать везде правильно.
Есть разумные объяснения?
...
Рейтинг: 0 / 0
13.09.2006, 13:14
    #33983841
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки с CASE ?
Подозреваю, что проблема в смешивании диалектов. В определенных ситуациях при таком смешивании поведение может быть непредсказуемым. Попробуй процедуру переделать на Watcom SQL



Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
13.09.2006, 13:26
    #33983904
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюки с CASE ?
Попробую, хотя процедура T-SQL вызывается из процедуры T-SQL, которая в свою очередь вызывается из клиентского приложения (ODBC/SQL Links/Delphi5)
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Глюки с CASE ? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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