Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!
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