powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase ASE 12.53 Пустая строка = пробел. Почему?
4 сообщений из 4, страница 1 из 1
Sybase ASE 12.53 Пустая строка = пробел. Почему?
    #33223693
Izumov Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было выявлено такое:
declare @a varchar
select @a = ""
select "[" + @a + "]"
Result: [ ] ( [SPACE] )

if char_length(" ") = char_length("")
select 1
else select 2
Result: 1

if ltrim('') like "% %"
select 1
else
select 0
Result: 1

Теперь уже понятно, что это так и задумано в АСЕ, но вопрос, почему только АСЕ так себя ведет?
Тоже самое на АСА и Сиквелл дает пустую строку с длиной 0.

В чем смысл такой нетривиальной интерпретации?
...
Рейтинг: 0 / 0
Sybase ASE 12.53 Пустая строка = пробел. Почему?
    #33225042
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я могу только предполагать - значение varchar(n) с реальной длиной 0 внутри интерпретируется как NULL. Поэтому, чтобы пустую строку отличать от NULL (в явном виде заданная константа - это еще пол беды, но пустая строка может быт и результатом вычисления выражения.) - сделано так вот.
...
Рейтинг: 0 / 0
Sybase ASE 12.53 Пустая строка = пробел. Почему?
    #33230789
Izumov Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а почему другие базы та же АСА и Сиквелл, нормально справляются с этой ситуацией и не вводят разработчиков в непонятки?
Неужели это так сложно реализовать?
...
Рейтинг: 0 / 0
Sybase ASE 12.53 Пустая строка = пробел. Почему?
    #33231168
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, в этом просто нет необходимости и кроме того это вредно. Все уже привыкли к такому поведению, есть куча кода, который на это расчитан.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Sybase ASE 12.53 Пустая строка = пробел. Почему?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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