Salve, ho fatto uno scriptino di prova T-SQL ma a quanto pare non funziona:
In pt è presente una stringa lunga oltre 16.000 caratteri, è una serie di indici separati da vigola e la stringa termina con una virgola, del tipo id,id,id,......id,id,codice:declare @prova as varchar(50) declare @tab as table(id varchar(50)) declare @start as bigint declare @end as bigint set @start=0 set @end=1 while @end>0 begin set @end=charindex(',',(select top 1 pt from reportserver..tbreportparam where ssid='prova'),@start+1) if @end>0 begin set @prova=substring((select top 1 pt from reportserver..tbreportparam where ssid='prova'),@start+1,(@end-@start)-1) insert into @tab (id) values (@prova) end set @start=@end end select * from @tab
Il problema è che in @tab non vengono salvati tutti gli indici ma solo pco meno della metà.
Secondo un'analisi ho constatato che si ferma esattamente al carattere 8.000 (guarda caso l'ottomillesimo carattere è una virgola)
pt è di tipo Text e facendo una select secca effettivamente in pt c'è la stringa per intero, quindi che sia un limite di usare tale select dentro il T-SQL che mi restituisce una stringa di 8000 caratteri?

Rispondi quotando
