Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
osni_campos
Contributor III
Contributor III

Verificar se Nome de um Campos existe em uma Tabela

Boa tarde!

Supondo que tenho 2 arquivos QVDs, onde o nome da Tabela para os dois arquivos seja COMPRAS, porem num destes arquivo tenho um campos chamado "snAprovado" que o valor 1(seja aprovado), porem no segundo arquivo sequer eu tenha este campo "snAprovado".


Tem como no momento do LOAD identificar se o campo em questão existe ou não ? sendo que estou lendo os dois arquivos no mesmo LOAD ?

OBS.: Não gostaria de ler os arquivo em momentos diferente e concatenar as informações.

Labels (1)
1 Solution

Accepted Solutions
antoniotiman
Master III
Master III

Hi Osni,

Try this

SET v1 = '';
FOR I = 1 to QvdNoOfRecords('TableQVD.QVD')
LET v1 =v1&QVDFieldName('TableQVD.QVD',I);
NEXT;
If WildMatch(v1,'*snAprovado*') Then
LOAD;
ELSE
EXIT Script;
ENDIF

View solution in original post

7 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo,

Logo após ao LOAD do QVD que deseja verificar, poderá testar se o campo existe e gravar o resultado numa variável por exemplo;

LET vEXISTE_snAprovado = IF(FieldValueCount('snAprovado'),-1,0)

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Clever_Anjos
Employee
Employee

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, conseguiu?

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Se possível e for o caso, marque as respostas apropriadas como Útil e/ou Correta para que outros membros possam saber que a sua pergunta foi respondida.

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
osni_campos
Contributor III
Contributor III
Author

Para este casa já precisaria ter uma carga... e não é o caso.. preciso saber se o campo existe no momento da primeira carga, pois se ele não existir vai dar erro no LOAD, é isso que preciso evitar.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo.

Agora só complementar a solução.

Tab_Temp_Check:

First 1 Load * From <destino>;

LET vEXISTE_snAprovado = IF(FieldValueCount('snAprovado'),-1,0);

Exit Script when vEXISTE_snAprovado = 0;

Drop Table Tab_Temp_Check;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
antoniotiman
Master III
Master III

Hi Osni,

Try this

SET v1 = '';
FOR I = 1 to QvdNoOfRecords('TableQVD.QVD')
LET v1 =v1&QVDFieldName('TableQVD.QVD',I);
NEXT;
If WildMatch(v1,'*snAprovado*') Then
LOAD;
ELSE
EXIT Script;
ENDIF