SQL Server – Função table-valued para quebrar uma string em linhas com tamanho de até N caracteres

Visualizações: 589
Tempo de Leitura: 3 minutos

Olá pessoal,
Tudo bem com vocês ?

Neste post de hoje, vou compartilhar com vocês uma função UDF do tipo Table-valued que permite quebrar strings em linhas, forçando que o tamanho máximo de cada linha seja N caracteres separados por um caractere separador definido na chamada da função.

Essa função surgiu de uma necessidade em um projeto crítico onde trabalho, no qual temos strings VARCHAR(MAX) e precisamos exportar essas strings em um arquivo TXT com tamanho máximo de 60 caracteres, mantendo um Id para identificar o registro original e um ranking (usei ROW_NUMBER) para identificar a ordem de cada parte da string.

Interessado em aprender mais sobre split?

Exemplos de uso

Exemplo simples:

Exemplo com CROSS APPLY:

Resultado:

Código-fonte da função

Para utilizar a função demonstrada acima, basta criar a função CLR do tipo table-valued na sua instância. Para entender melhor o que é o CLR e como criar a sua primeira biblioteca CLR, veja mais no post Introdução ao SQL CLR (Common Language Runtime) no SQL Server.

É isso aí, pessoal!
Um abraço e até a próxima.