Conversione HTML in testo in SQL può essere fatto in modo efficiente con una funzione definita dall'utente . Una funzione definita dall'utente accetta parametri, esegue un'azione, come ad esempio il parsing HTML , e restituisce il risultato sotto forma di valore . La funzione può essere eseguita da qualsiasi istruzione SQL o linguaggio di programmazione esterno . Cose che ti serviranno 
 conoscenza intermedia della T - SQL 
 autorizzazioni adeguate per creare una funzione di database oggetto 
 Show More Istruzioni 
 1 
 connettersi al database , e . creare un nuovo file SQL 
 2 
 Inserisci il seguente SQL : 
 
 CREATE FUNCTION [ dbo ] [ CleanHTML ] 
 
 ( 
 
 @ . DirtyText varchar ( MAX ) per 
 ) per 
 RETURNS varchar ( MAX ) per 
 AS 
 
 BEGIN 
 
 DECLARE @ BeginPos int 
 
 DECLARE @ endpos int 
 
 DECLARE @ Len int 
 
 - Sostituire l'entità HTML e con il carattere '&' ( questo deve essere fatto prima , come 
 < p > - '&' potrebbe essere doppio codificato come '&' ) per 
 SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 < br 
 SET > @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Length , '&' ) per 
 SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - Sostituire il codice HTML entità < con il carattere '<' < br 
 > @ BeginPos = CHARINDEX ( '<' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Length , ' < ; ' ) per 
 SET @ BeginPos = CHARINDEX ( ' <' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - Sostituire il codice HTML entità > con il '>' carattere 
 
 SET @ BeginPos = CHARINDEX ( '>' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 E @ endpos > 0 e @ Len > 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Lunghezza , '>' ) per 
 SET @ BeginPos = CHARINDEX ( '>' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - Sostituire l'entità HTML e con il carattere '&' 
 
 SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 < p > SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Length , '&' ) per 
 SET @ BeginPos = CHARINDEX ( '&' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - Sostituire l'entità HTML con il carattere ' ' < br 
 > @ BeginPos = CHARINDEX ('' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 5 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Lunghezza , ' ' ) per 
 SET @ BeginPos = CHARINDEX (' ' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 5 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - Sostituire i tag con un a capo 
 
 SET @ BeginPos = CHARINDEX ( '' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Length , CHAR ( 13) + CHAR ( 10) ) per 
 SET @ BeginPos = CHARINDEX ( '' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 3 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - sostituire eventuali 
 tag con un a capo 
 
 SET @ BeginPos = CHARINDEX ( ' 
' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 < p > SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Lunghezza , ' CHAR ( 13) + CHAR ( 10) ' ) per 
 SET @ BeginPos = CHARINDEX ( ' 
' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 4 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - sostituire i tag 
 con un a capo 
 
 SET @ BeginPos = CHARINDEX ( ' 
', @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 5 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > 0 ) BEGIN 
 < p > SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Lunghezza , ' CHAR ( 13) + CHAR ( 10) ' ) per 
 SET @ BeginPos = CHARINDEX ( ' 
 ' , @ DirtyText ) per 
 SET @ endpos = @ BeginPos + 5 
 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 END 
 
 - rimuovere qualsiasi cosa tra i tag  
  SET @ BeginPos = CHARINDEX ( '<' , @ DirtyText ) per 
 SET @ endpos = CHARINDEX ( '>' , @ DirtyText , CHARINDEX ( '<' , @ DirtyText ) ) per 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 
 
 WHILE ( @ BeginPos > 0 e @ endpos > 0 e @ Len > , 0 ) BEGIN 
 
 SET @ DirtyText = STUFF ( @ DirtyText , BeginPos @ , @ Length , '' ) per 
 SET @ BeginPos = CHARINDEX ( '<' , @ DirtyText ) < br 
 SET > @ endpos = CHARINDEX ( '>' , @ DirtyText , CHARINDEX ( '<' , @ DirtyText ) ) per 
 SET @ Len = ( @ endpos - @ BeginPos ) + 1 < br > 
 END 
 
 RITORNO LTRIM ( RTRIM ( @ DirtyText ) ) per 
 END 
 3 
 Compilare la funzione SQL . 
 < br > 4 
 Eseguire la funzione , e verificare che restituisce i risultati desiderati . Per esempio : 
 
 Selezionare da dbo.CleanHTML ( '  prova 
 < /BODY > < /HTML > ');