Free Trial

Fórum

Conexão com SQL server - Planilha temporária

Gabriel_Brandao
Asteroide

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? 

7 RESPOSTAS 7
AZuc
Alteryx
Alteryx

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.

André Zuccatti

Sales Engineer - LATAM -
Alteryx, Inc.


Gabriel_Brandao
Asteroide

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.  

AZuc
Alteryx
Alteryx

@Gabriel_Brandao ,

 

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?

 

 

 

 

André Zuccatti

Sales Engineer - LATAM -
Alteryx, Inc.


Gabriel_Brandao
Asteroide

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.

 

AZuc
Alteryx
Alteryx

@Gabriel_Brandao ,

 

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?

 

 

André Zuccatti

Sales Engineer - LATAM -
Alteryx, Inc.


Gabriel_Brandao
Asteroide

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? 

AZuc
Alteryx
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.

 

 

André Zuccatti

Sales Engineer - LATAM -
Alteryx, Inc.


Rótulos