звездочка как результат конвертации

гест_20100215
Дата: 16.02.2010 00:15:10
Я не нашел тут ответа на этот вопрос, так что если это боян то прошу прощения.

select CAST(12345 as CHAR(4))
go
select CAST(12345 as NCHAR(4))

что означает этот код (0x2A), который изображается звездочкой в первом случае?
на любом collation всегда возвращается звезда, т.е. это не id кодовой страницы.
второй вариант на мой взгляд вполне предсказуемо себя ведет.
Glory
Дата: 16.02.2010 00:19:52
А вы подумайте над тем, как в 4 байта уместить 5 цифр.
гест_20100215
Дата: 16.02.2010 00:27:49
Я подумал и у меня точно не получается звездочки
Тот пример был несколько неудачный -

select CAST(12345 as CHAR(4))
go
select CAST(12345 as NCHAR(2))

чем они отличаются по размеру?
гест_20100215
Дата: 16.02.2010 00:48:35
нашел в BOL, - это оказывается обыкновенный хардкод магического числа
непонятно почему для уникода не используется оно..забыли в case/if чтоли включить его
SIMPLicity_
Дата: 16.02.2010 01:14:39
гест_20100215
нашел в BOL, - это оказывается обыкновенный хардкод магического числа
непонятно почему для уникода не используется оно..забыли в case/if чтоли включить его


???
Куякс...

Если можно, пожалуйста, выложите ссылку на цитату...
SIMPLicity_
Дата: 16.02.2010 01:53:40
Чесссна говоря, нифига не понял...
Зачем огород-то городить и всякое-недокументированное использовать, если можно, например, накатать:

select char(42), char(0x2A), '*'
select nchar(42), nchar(0x2A), N'*'

... на выбор...

No ROM Basic...
iap
Дата: 16.02.2010 09:24:20
гест_20100215
SQL Server вставляет символ с кодом ASCII 42 — звездочку (*)
А где там про "звездочку (*)"? Сюда цитату выложить можете?
гест_20100215
Дата: 16.02.2010 10:04:23
2SIMPLicity_

Дык понятно, что звездочка и в UTF-16 будет звездочкой , ибо UTF-16 ничем не отличается от ASCII для символов с малыми кодами.

Я потому и задал вопрос, - что за дикий и непонятный велосипед тянется уже как минимум с 2000

2iap
Используйте название линка, ну или хотя бы цифры "42" в качестве паттерна по поиску на странице.
гест_20100215
Дата: 16.02.2010 10:05:52
автор
Преобразование данных типа integer

При неявном преобразовании данных типа integer в данные типа character, если число слишком большое для символьного поля, SQL Server вставляет символ с кодом ASCII 42 — звездочку (*).