Este site utiliza diferentes tipos de cookies, incluindo cookies analíticos e funcionais (próprios e de outros sites). Para alterar suas configurações de cookies ou saber mais, clique aqui. Ao continuar navegando em nosso site, você aceita esses cookies.
Olá, boa tarde gente!
Estou trabalhando em um fluxo que usará as informações geradas por uma procedure de um banco de dados SQL server.
A conexão foi feita e esta funcionando corretamente com as tabelas, mas quando tento trazer o resultado da procedure não funciona.
Desconfio que seja porque essa procedure gera uma planilha temporária como resultado final, lembro de ter lido uma vez que o alteryx não conseguia trazer planilhas temporárias na entrada de dados.
Alguém sabe se de fato não é possível trazer essas planilhas temporárias, ou se conhece alguma forma de trazer esse tipo de informação?
Oi @Gabriel_Brandao ,
Veja se este link te ajuda: https://community.alteryx.com/t5/Alteryx-Designer-Discussions/Function-sequence-error-with-SQL-Store...
Se possível, nos dê mais detalhes, como qual a mensagem de erro, qual tipo de driver está utilizando, se é indb ou não, e a estrutura da procedure.
Olá @AZuc , não tenho muita experiência com BD então á peço perdão caso não fique tão clara a explicação do problema.
- Ao tentar Executar a procedure apenas aparece um erro de consulta dizendo que nenhuma coluna é retornada (anexo).
- A conexão feita é ODBC.
- Infelizmente não tenho acesso a procedure que é executada, ela faz parte de um sistema que contratamos e não temos acesso ao código, a imagem é do comando de execução dela.
Pesquisei um pouco mais e encontrei links que podem ser úteis:
https://community.alteryx.com/t5/Alteryx-Designer-Knowledge-Base/Stored-Procedures-FAQ/ta-p/376886
https://community.alteryx.com/t5/Forum-Portugues/Stored-Procedure-nao-retorna-dados/td-p/574377
Voltando ao seu ponto original: "Alguém sabe se de fato não é possível trazer essas planilhas temporárias, ou se conhece alguma forma de trazer esse tipo de informação? "
Verifique este link: https://community.alteryx.com/t5/Bugs-Issues/ODBC-call-of-stored-procedure-giving-quot-No-Columns-Re...
Aparentemente, o ODBC executa a procedure num escopo separado, e tabelas temporárias não são acessíveis externamente. Pela indicação do link, o uso de OleDB poderia resolver.
Você consegue testar esta opção?
Olá @AZuc , só agora puder dar uma olhada em todos os links.
Fiz a mudança para OleBD, mas ainda não consegui trazer o resultado da consulta.
Acabei descobrindo que o resultado da procedure é enviado para dentro de uma variável quando executada, mas ao tentar declarar a variável no ambiente de consulta do alteryx ele retorna um erro.
Não é esperado que você retorne o resultado de uma query ou procedure para uma variável, visto que é o Alteryx quem tem que receber este resultado para prosseguir com o processamento.
O que acontece no OleDB quando você configura a chamada da procedure como da forma original (EXEC ...) ? Dá o mesmo erro de nenhuma coluna retornada?
Repare que no link abaixo o usuário precisou fazer outra modificação para que a procedure funcionasse, além da troca do ODBC para OleDB:
https://community.alteryx.com/t5/Forum-Portugues/Stored-Procedure-nao-retorna-dados/td-p/574377
Chegou a entrar em contato com o desenvolvedor da procedure para saber se ele utiliza o SET NOCOUNT ON?
Olá @AZuc , infelizmente fiquei umas semanas sem conseguir trabalhar nesse fluxo.
Tentei fazer as adaptações indicadas no post e infelizmente não tive muita melhora.
falando com o desenvolvedor do BD ele constatou que são usadas planilhas temporárias na procedure para criação dos relatórios mas no final o resultado fica dentro de uma "Variável do tipo tabela". Pelo que pesquisei esse tipo de variável tem alguns restrições. Sabe informar se isso poderia gerar um problema ao trazer para o Alteryx?
Oi @Gabriel_Brandao ,
O Alteryx precisa receber a saída de um "SELECT" como dado. Se o SELECT está indo para uma variável, ele não recebe a saída.