terça-feira, 26 de março de 2019

SQL error general error: <> Cannot compare NLocator and NLocator

 Tive um problema recentemente num cliente onde estava dando um DUMP no ambiente ECC/HANA, o dump se referia a uma calculation view específica.


Fiz um teste no eclipse dando um data preview na calculation view que deu o erro, e deu a mesma mensagem.


Primeiro tive q isolar o problema.

- Copiei a calculation view inteira para uma outra calculation view Z*
- Debaixo para cima comecei a executar o data preview para todas as caixinha e ver onde começava o erro.
- No meu caso o erro era numa aggregation, então tive que fazer várias ligações diferentes para saber qual a perna da aggregation que estava com problema.
- Quando encontrei a projection/union/aggregation com erro, comecei a isolar os campos e fazer 
testes.
- A dica nesse caso é que esse erro do NLOCATOR é por causa de campos textos, então mire diretamente nesses tipos de campos.
- Vi que no tinha um filtro na calculation fazendo uma comparação tipo ("TXT" != ' '), traduzindo o filtro seria pegar os registros onde o campo TXT estiver diferente de espaço.
- Se eu removesse o filtro não dava o erro, se deixasse o erro  aparecia. Eu poderia simplesmente deixar sem filtro que resolveria o meu problema, mas resolvi ir mais a fundo.
- Vimos que na tabela de origem dos dados, tinha um campo tipo STRING, e o problema era justamente isso, a calculation view dá pau quando tem uma condição considerando espaços em campo tipo STRING.
- Procurei uma nota referente a essa tabela, e no meu caso tinha uma divergência, pois a nota q achei criava a tabela com o campo com CHAR255, mas vi q na instalação do sistema o campo veio como STRING, tentei achar uma nota de correção com o erro mas não achei. Consultei a SAP e me informaram q o correto era o CHAR255, estou esperando  uma nota de correção ainda, nem sei se esses fillhos da mãe vão disponibilizar, mas corrigindo  o tipo do campo resolve o problema.

Fica a dica.

NOTA: então. fiquei na dúvida de uma coisa.. o cliente q estava com esse problema usa o HANA com o esquema de CROSS DATABASE. Andei dando uma vasculhada em algumas notas e nesse esquema de crossdb existe várias limitações.




Nenhum comentário:

Postar um comentário