Länge von Variablen mit Leerzeichen am Ende falsch ?

07/10/2008 - 15:13 von Gerald Aichholzer | Report spam
Hallo NG,

ich stelle mit dem Management Studio eine Verbindung zu einem
SQL Server 2005 (9.0.3233) her und öffne eine neues Abfrage-
fenster, in dem ich folgendes eingebe:

declare @param1 varchar(200)
set @param1 = ' [KV] = 1 '

select len(@param1)
union all
select len(replace(@param1, ' ', '_'))
union all
select ascii(substring(@param1, 11, 1))

Der erste SELECT-Befehl liefert 10, der zweite 11!
Im dritten SELECT wird korrekt der Ascii-Code des letzten Leer-
zeichens ausgegeben.

Ist das das Normalverhalten bzw. wie kann ich abstellen, dass
bei len() die Leerzeichen am Ende abgeschnitten werden?

vielen Dank und schöne Grüße,
Gerald
 

Lesen sie die antworten

#1 Frank Kalis
07/10/2008 - 15:34 | Warnen spam
On 7 Okt., 15:13, Gerald Aichholzer wrote:

   declare @param1 varchar(200)
   set @param1 = '  [KV] = 1 '

   select len(@param1)
   union all
   select len(replace(@param1, ' ', '_'))
   union all
   select ascii(substring(@param1, 11, 1))

Der erste SELECT-Befehl liefert 10, der zweite 11!
Im dritten SELECT wird korrekt der Ascii-Code des letzten Leer-
zeichens ausgegeben.

Ist das das Normalverhalten bzw. wie kann ich abstellen, dass
bei len() die Leerzeichen am Ende abgeschnitten werden?




Das ist lt. Online Hilfe das Normalverhalten.
Wie wàre es mit SELECT DATALENGTH(@param1)?
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.org

Ähnliche fragen