DarioSantarelli.Blog("UgiDotNet");

<sharing mode=”On” users=”*” />
posts - 176, comments - 105, trackbacks - 3

My Links

News


This is my personal blog. These postings are provided "AS IS" with no warranties, and confer no rights.




Tag Cloud

Archives

Post Categories

My English Blog

LEN e DATALENGTH su stringhe

Tutto nasce dalla necessità di ottenere la lunghezza di una variabile stringa che includa gli spazi bianchi alla fine. In T-SQL esiste la celeberrima funzione LEN che restituisce appunto il numero di caratteri di una stringa escludendo però gli spazi bianchi alla fine. La funzione DATALENGTH restituisce invece il numero di bytes usati per rappresentare l'espressione passata come argomento. Tramite il seguente esempio ci rendiamo conto di come in realtà occorra dare grande attenzione al tipo di codifica che si intende utilizzare per la rappresentazione delle variabili stringa:

DECLARE @MyVAR nvarchar(4) SET @MyVAR = 'abc ' -- UNICODE character data. (nvarchar) SELECT LEN(@MyVAR) -- restituisce 3 SELECT DATALENGTH(@MyVAR) -- restituisce 8 SELECT DATALENGTH(@MyVAR)/2 -- restituisce 4 -- NON-UNICODE character data. (varchar) SELECT LEN('abc ') -- restituisce 3 SELECT DATALENGTH('abc ') -- restituisce 4 SELECT DATALENGTH('abc ')/2 -- restituisce 2


Osserviamo come, di default, una stringa passata per valore venga in realtà parserizzata come un varchar e quindi come NON-Unicode (a meno dell'utilizzo del prefisso 'N' per stringhe costanti).... Banale ma non troppo direi!!!

 Technorati tags: *SQLServer, *T-SQL

Print | posted on martedì 16 ottobre 2007 21:24 | Filed Under [ SQL Server ]

Feedback

Gravatar

# re: LEN e DATALENGTH su stringhe

Ciao Dario,

> Osserviamo come, di default, una stringa passata per valore venga in realtà parserizzata come un varchar e quindi come NON-Unicode....

Giusto per segnalarti che puoi specificare una costante unicode facendola precedere dalla lettera 'N'. Esempio: N'abc '. http://msdn2.microsoft.com/en-us/library/aa223981(SQL.80).aspx

Spero che possa essere utile. -LV
16/10/2007 22:35 | LudovicoVan
Gravatar

# re: LEN e DATALENGTH su stringhe

Si si lo sapevo... mi sono semplicemente dimenticato di specificarlo.
Grazie comunque della puntualizzazione ;)
16/10/2007 23:20 | Dario Santarelli
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET