ti-enxame.com

O que o SQL CODE -104 (erro) representa?

Estou executando uma consulta SQL via jcc para executar um relatório. Quando abri o arquivo de log de erros para o programa e examinei a consulta SQL, tudo parece estar bem (não há colchetes, vírgulas, etc., extras ou ausentes, e a sintaxe é boa); no entanto, quando executo, estou recebendo este erro:

[Report.execute ()] Erro SQL do DB2: SQLCODE = -104, SQLSTATE = 42601, SQLERRMC =; ATE IN (1,2,3,10,1);, DRIVER = 4.12.55

Quando pesquisei sobre o SQLCODE, descobri que isso significa que há um símbolo ilegal na consulta. O que posso procurar para encontrar esse símbolo ilegal?

Esta é a consulta

enter image description here

Desculpe pela fonte minúscula, mas se você aumentar o zoom em 200% ou mais, poderá ver melhor a consulta.

Muito obrigado :)

13
Bernice

Você tem uma vírgula (onde não deveria) no final desta linha:

AND Tick.STATE IN (1,2,3,10,1),

A seguinte linha também tem o mesmo problema.

14
Bohemian

Geralmente, esse código de erro SQL indica que você inseriu alguns caracteres extras, como ',' ou '(' ou ')' ou mais ou menos. A verificação da consulta completa no rastreamento ajudará as pessoas que escrevem consultas SQL dentro de um Java ou algo semelhante, pois demorou cerca de duas horas para eu descobrir que tenho um extra ') 'na minha consulta.

4
ramakrishnan

Corrigi esse erro porque um dos meus parâmetros do construtor de consultas era nulo e a consulta era algo como ".. OrderType = 'CM' e nulo".

0
Pekmezli Dürüm

Em Meu caso, o problema era um pouco diferente: eu queria unir duas tabelas e copiar os dados da Tabela2 para a respectiva coluna My1 Query (DB2) atualizar a Tabela1 T1, Tabela2 conjunto de T2 T1.DEST_COLMN = T2.SRC_COLMN em que T1.ID = T2.ID

Atualização correta da consulta Tabela1 T1 configurada T1.DEST_COLMN = (selecione SRC_COLMN na Tabela2 T2 onde T1.ID = T2.ID)

0
user3572104