Problema em Query com Parâmetro no iReport 3.7.0

7 respostas
M

Pessoal,

Dada a seguinte query :

SELECT t.inst_id AS id, t.inst_nome AS nome, t.inst_sigla AS sigla, m.mun_nome, t.inst_uf AS uf
FROM instituicao t, sca.municipios_brasileiros m
WHERE t.inst_uf = m.mun_uf
AND  m.munc_uf = &P{ESTADO}

onde ESTADO é um parâmetro setado no iReport como sendo do tipo “String” e que será comparado com o campo correspondente da tabela.

Ao tentar utilizá-la no iReport 3.7.0, está aparecendo a seguinte mensagem de erro na janela Report Query :

“Errors:SQL Problems:Token SQL92 não suportado na posição 192:ESTADO”

Alguém sabe me dizer o que pode estar causando este erro ?

Agradece,

Max Carvalho

7 Respostas

P

&P{ESTADO} não deveria ser substituído por ‘$P{ESTADO}’

M

pozzo,

Efetuei a correção sugerida, tendo a query ficado assim :

SELECT t.inst_id AS id, t.inst_nome AS nome, t.inst_sigla AS sigla, m.mun_nome, t.inst_uf AS uf
FROM instituicao t, sca.municipios_brasileiros m
WHERE t.inst_uf = m.mun_uf
AND  m.mun_uf = '$P{ESTADO}'

só que agora o erro que está aparecendo é o seguinte :

Error:SQL Problems:índice de coluna inválido

Acontece, porém, que a query :

SELECT t.inst_id AS id, t.inst_nome AS nome, t.inst_sigla AS sigla, m.mun_nome, t.inst_uf AS uf
FROM instituicao t, sca.municipios_brasileiros m
WHERE t.inst_uf = m.mun_uf
AND  m.mun_uf = &P_ESTADO

funciona normalmente no Oracle.

O que ainda há de errado na sintaxe de utilização do parâmetro ?
Agradece,

Max Carvalho

1

tenta usa assim

SELECT t.inst_id AS id, t.inst_nome AS nome, t.inst_sigla AS sigla, m.mun_nome, t.inst_uf AS uf FROM instituicao t, sca.municipios_brasileiros m WHERE t.inst_uf = m.mun_uf AND m.mun_uf = $P{ESTADO}

M

Se eu proceder como você sugeriu :

SELECT t.inst_uf AS uf, m.mun_nome, t.inst_id AS id, t.inst_nome AS nome, t.inst_sigla AS sigla
FROM instituicao t, sca.municipios_brasileiros m
WHERE t.inst_uf = m.mun_uf
AND  m.mun_uf = $P{ESTADO}

a mensagem de erro que aparece agora é :
Erros:SQL Problems:ORA01722:número inválido

e o problema ainda persite, só mudou o erro.

???

1

entao… o seu parametro e o campo na tabela sao do tipo String
eo valor que vc passa tb deve ser do tipo String

eu testei aqui na hora que vc digita o parametro na janela Report Query ele aparece esse erro

Erros:SQL Problems:ORA01722:número inválido

mas se vc der OK e entrar de novo na janela vai aparecer os fields corretamente
deve ser um bug do iReport :roll:

ai soh dar um preview que funciona :smiley:

M

Amigo,

Eu havia feito este teste e achei que era bug do iReport, mas como não estava me sentindo muito seguro disto, resolvi enviar o meu último post acima.
Eu estava usando o iRepor 3.0.0 e até então não tinha visto problema com relação à utilização de parâmetros.
Esse iReport mais novo também parece estar com um bug no Query Desginer quando tento utilizar este assistente para adicionar o parâmetro à query de uma forma mais automatica.
Diante do exposto, estou preferindo fazer certas coisas “no braço” no iReport 3.7.0.
A propósito, só uma última perguntinha, caso você tenha condição de responder, estarei perdendo muita coisa se voltar usar o iReport 3.0.0. em vez do 3.7.0 ?
Muito obrigado pela ajuda que você me deu até agora.
Valeu mesmo !!!
[]'s
Max

1

entao… na verdade faz pouco tempo que mexo com iReport

pra ser mais exato eu ja comecei usando a versao 3.7.0

e geralmente uma nova versao deveria ter mais melhorias do que o contrario :roll:

mas as vezes essas melhorias trazem novos bugs… esse ciclo eh uma praga :lol:

bom tenta procurar algum changelog… para saber o que realmente foi alterado e se compensa essa sua migracao

na minha opiniao a gente deve usar sempre a versao mais atual porem estavel

acho que ja tem a versao 3.7.2 e quem sabe uma hora corrigem esse bug… flwss

Criado 28 de abril de 2010
Ultima resposta 29 de abr. de 2010
Respostas 7
Participantes 3