Sono giunto alla conclusione che un dato di tipo TEXT o NTEXT lo archivi e lo gestisci esclusivamente da codice e non può essere manipolato tramite T-SQL.
Vi spiego perché
La mia stringa contenuta in PT (di tipo text) è lunga oltre 16.000 caratteri.
contiene degli id separati da virgola (id,id,id,....) e termina con una virgola.
Io vorrei inserire nella variabile tabella @tab una riga per ogni indice.
E' impossbile.![]()
Ho provato la strada del CHARINDEX... (l'intenzione era ti prendere con l'unione del CHARINDEX e SUBSTRING i vari indici a mo di porzione.
CHARINDEX prende la massimo 8.000 caratteri, di conseguenza esaminava la stringa fino all'ottomillesimo carattere (di cui il problema riportato sopra).
Ho provato lo stratagemma inverso.
Mi sono salvato la stringa in una tabella temporanea con un unico campo di tipo text.
L'idea era quella, tramite SUBSTRING e CHARINDEX di prendere il primo indice e poi aggiornare la stringa levando l'indice iniziale es.
'1020,1939,46379,....' diventava dopo un giro '1939,46379,....'
Come per CHARINDEX SUBSTRING restituisce stringhe al massimo lunghe 8.000 e sempre in del secchio me la sono presa.
Ho provato tramite REPLACE ma nonostante nella documentazione ufficiale Microsoft sia indicato che lavora con dati di tipo NText e Text se gli do in pasto NText o Text da errore.
Continuo a prendermela in del secchio.
Concludo quindi che i Text e NText li lavori solo da codice esterno![]()

Rispondi quotando