Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

ErrorCode: 932, ErrorMsg: [Oracle][ODBC][Ora]ORA-00932: inconsistent datatypes: expected DATE got NUMBER

Bom dia

Preciso de uma ajuda, estou tentando trazer dados a partir de uma data colocando essa data em uma where, porem me retornar esse erro: Connector reply error: SQL##f - SqlState: S1000, ErrorCode: 932, ErrorMsg: [Oracle][ODBC][Ora]ORA-00932: inconsistent datatypes: expected DATE got NUMBER

Alguém sabe me explicar o porque?

Segue código abaixo:

LET vMAX_DATA = '01/01/2017'

FUNC:

LOAD CODPESSOA as ID,

CODCOLIGADA,

    CHAPA,

    NROFICHAREG;

SQL SELECT *

FROM RM.PFUNC

WHERE DATADEMISSAO >= $(vMAX_DATA);


Desde já agradeço.

1 Solution

Accepted Solutions
Not applicable
Author

Consegui achar a solução desse jeito:

TEMP:

LOAD CODPESSOA,

CODCOLIGADA,

CHAPA,

NROFICHAREG;

SQL SELECT *

FROM RM.PFUNC;


LOAD CODPESSOA as ID_CODPESSOA,

CODCOLIGADA&CHAPA as ID,

NROFICHAREG

Resident TEMP

WHERE DATADEMISSAO >= '01/01/2017' OR ISNULL(DATADEMISSAO);


DROP TABLE TEMP;


Obrigado pela atenção e ajuda pessoal.


Abraço.

View solution in original post

8 Replies
vinieme12
Champion III
Champion III

Marcio_Campestrini
Specialist
Specialist

Bom dia

Além da sugestão do Vineeth, observe o tipo de dados do campo DATADEMISSAO. Isso vai indicar qual a operação que você deve usar para resolver o caso.

Márcio Rodrigo Campestrini
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

tenta usar 

to_char(DATADEMISSAO ,'DD/MM/YYYY')

furtado@farolbi.com.br
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

exemplo

Where to_char(DATADEMISSAO ,'YYYY') > '2016'

furtado@farolbi.com.br
jonas_rezende
Specialist
Specialist

Edvaldo Gutierres.

Tente assim:

LET vMAX_DATA = Date('01/01/2017','DD/MM/YYYY');

FUNC:

LOAD CODPESSOA as ID,

CODCOLIGADA,

    CHAPA,

    NROFICHAREG;

SQL SELECT *

FROM RM.PFUNC

WHERE DATADEMISSAO >= to_date('$(vMAX_DATA)','DD/MM/YYYY');


Espero ter ajudado!

Clever_Anjos
Support
Support

Quando for passar parametros para SQL de banco você usualmente tem duas opções

  • Use o formato YYYY-MM-DD na sua string
  • Ou use o TO_DATE (Oracle) / CONVERT (SQL Server) para garantir que o banco irá entender que seu parâmetro é uma data
Not applicable
Author

Consegui achar a solução desse jeito:

TEMP:

LOAD CODPESSOA,

CODCOLIGADA,

CHAPA,

NROFICHAREG;

SQL SELECT *

FROM RM.PFUNC;


LOAD CODPESSOA as ID_CODPESSOA,

CODCOLIGADA&CHAPA as ID,

NROFICHAREG

Resident TEMP

WHERE DATADEMISSAO >= '01/01/2017' OR ISNULL(DATADEMISSAO);


DROP TABLE TEMP;


Obrigado pela atenção e ajuda pessoal.


Abraço.

Clever_Anjos
Support
Support

Sua solução funciona mas poderia ser um pouco melhor em termos de performance se mantiver o where no SQL, pois você está trazendo tudo para o Qlik para depois filtrar.

Mas se está rápido, don´t worry