powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Пустая строка превращается в пробел
5 сообщений из 5, страница 1 из 1
Пустая строка превращается в пробел
    #33022039
terss2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При переносе хранимых процедур, написанных для MS SQL 2000 на ASE 12.5 столкнулся с разночтением работы с "пустой" строкой.

В качестве примера можно запустить в Advantage следующий скрипт:
declare @str varchar(10)
select @str = '' -- Между кавычками НЕТ пробела
select '*' + @str + '*'

Результат:
* * -- Между звездочками ЕСТЬ пробел.

Т.е. значение @str равно пробелу, а не "пустой" строке. Проблему можно решить, заменив, например, select @str = '' на select @str = LTRIM('') , но в моем случае придется переписывать достаточно большое кол-во процедур.

Нельзя ли как нибудь "по доброму" переобучить ASE 12.5 на восприятие "пустой" строки, как "пустой" строки?
...
Рейтинг: 0 / 0
Пустая строка превращается в пробел
    #33022098
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я знаю, нельзя.
...
Рейтинг: 0 / 0
Пустая строка превращается в пробел
    #33022333
DrNull
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
declare @str varchar(10)
select @str = null
select '*' + @str + '*'

Будет ** - без пробела.
Экстракт процедур в текстовый файл, замена в любом текстовом редакторе '' на null и последующая проливка измененного скрипта.
...
Рейтинг: 0 / 0
Пустая строка превращается в пробел
    #33024112
terss2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
От варианта select @str = null я отказался сразу. Он для моих целей подходит ещё меньше, чем select @str = LTRIM(''). Дело в том, что приложение, которое использует эти хранимые процедуры, должно работать как на ASE 12.5, так и на MS SQL 2000. А 2000-й с NULL работает несколько иначе. Тестовая последовательность (declare @str varchar(10) select @str = null select '*' + @str + '*') на выходе дала бы значение NULL. Т.е. мне пришлось бы при дальнейшей модернизации программы вести параллельно две версии хранимых процедур. Одну для ASE 12.5, другую для SQL 2000, что, мягко говоря, неудобно. И вообще, мне хотелось бы не переписывать код, а добиться именно одинакового поведения серверов по отношению к "пустой" строке. Но в любом случае, спасибо за совет.
...
Рейтинг: 0 / 0
Пустая строка превращается в пробел
    #33024513
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
terss2002посмотрите SET CONCAT_NULL_YIELDS_NULL в BOL и подкрутите MSSQL
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Пустая строка превращается в пробел
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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