Salve, ho fatto uno scriptino di prova T-SQL ma a quanto pare non funziona:
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
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,
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?