1
resposta

[Dúvida] Atividade

Pessoal, boa tarde!

Estou no curso "Data Lake e Integration Services: construindo e carregando as dimensões". Sobre a atividade do título, a resposta correta seria a alternativa abaixo: Print da alternativa correta da atividadePorém ao testar esta função no SGBD MS SQL Server 22 é produzida a mensagem de erro "Mensagem 536, Nível 16, Estado 8, Linha 12 Parâmetro de comprimento inválido passado para a função substring.". Pelo que pesquisei, isto ocorre pois a função substring não aceita valores negativos para o comprimento da string. A forma que encontrei e funcionou para mim foi a função:

LEFT(ENDEREÇO,CHARINDEX(',',ENDEREÇO,0)-1)

que produziu o resultado esperado.

Gostaria de saber qual o SGBD utilizado para escrever a função utilizada na atividade, visto que no SGBD utilizado no curso não temos a função "FINDSTRING" que é substituida por "CHARINDEX" e nem a possibilidade de utilizar comprimento negativo para a função SUBSTRING.

1 resposta

Oii, Adriano! Tudo bem?

O instrutor utilizou o SQL Server Integration Services, na atividade Preparando o ambiente: instalando o SQL Analysis Service e Integration Services no SQL Server consultamos a forma de instalação da mesma.

Captura de tela da interface do SQL Server Integration Services mostrando a criação de colunas derivadas. À esquerda, uma lista de variáveis e colunas (CNPJ, CLIENTE, ENDEREÇO, SEGMENTO, FATURAMENTO, CIDADE_ESTADO). À direita, uma lista de funções matemáticas, de caracteres, de data/hora, NULL, conversões de tipos e operadores. Abaixo, uma tabela com duas colunas derivadas: "CIDADE" e "ESTADO", ambas usando a expressão FINDSTRING para extrair valores de "CIDADE_ESTADO", com tipo de dados "cadeia de caracteres Unicode", comprimento 50.

No SQL Server 2022 está retornando um erro ao usar o FINDSTRING porque essa função não é nativa do SQL Server 2022, então não dá para usá-la em consultas diretamente nesta ferramenta como usou o CHARINDEX. Mas, sim, no SQL Server Integration Services, como podemos ler na documentação.

Caso se sinta confortável, compartilhe onde você executou a consulta e recomendo que experimente testar no SQL Server Integration Services.

Conte sempre conosco aqui no fórum para podermos te auxiliar. Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!