Выгружаю таблицу в текст bcp. В тексте встречается символ с кодом 0. Как избавиться?

ignitor
Дата: 30.01.2009 09:37:15
И кстате почему
select replace('AAAAA',char(0),'')
возвращает пустую строку. Как избавиться от проклятого символа в запросе?
daw
Дата: 30.01.2009 09:40:24

> И кстате почему
>
> select replace('AAAAA',char(0),'')
>
> возвращает пустую строку.

а collation у сервера какой?
и @@version, на всякий случай.


Posted via ActualForum NNTP Server 1.4

ignitor
Дата: 30.01.2009 09:43:17
Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Collation Cyrillic_General_CI_AS
Glory
Дата: 30.01.2009 09:45:35
ignitor
И кстате почему
select replace('AAAAA',char(0),'')
возвращает пустую строку.

Куда возвращает ?
ignitor
Дата: 30.01.2009 09:47:14
В Query Analyzer
daw
Дата: 30.01.2009 09:50:33

да, действительно. в 8.00.2039 тоже. и от коллейшена не зависит, вроде бы.
а в 2005 (9.00.4035) - уже все нормально.

Posted via ActualForum NNTP Server 1.4

Gator
Дата: 30.01.2009 09:52:09
ignitor, смысл вашего примера - вне моего понимания (замена ОТСУТСТВУЮЩЕГО символа на пустую строку). Вы его выполняли? И результат пустая строка?
declare @s varchar(10)
set @s = 'a'+char(0)+'b'
select @s, replace(@s, char(0), 'C')

ignitor
Дата: 30.01.2009 09:52:30
Проблема не решаема через запрос?
daw
Дата: 30.01.2009 09:53:03

>и от коллейшена не зависит, вроде бы.

хотя, нет - в 2000 зависит. так нормально: select datalength(replace('AAAAA' collate Cyrillic_General_BIN,char(0),''))

Posted via ActualForum NNTP Server 1.4

ignitor
Дата: 30.01.2009 09:55:26
Смысл в том, что не все строки содержат нулевой символ.
Ваш запрос у меня выдает две колонки с соответсвующими значениями
|a|C|