Problema com iReport e Oracle [RESOLVIDO]

Alguem pode me ajudar, está dando um erro de consulta no iReport para Oracle, os drivers estão ok e a conexão é feita normalmente,
essa é a classe que compila o relatorio

[b]import java.sql.*;
import java.util.HashMap;

//classes necessárias para gerar este relatório
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JRDesignViewer;
import net.sf.jasperreports.view.JasperViewer;

class ConCliente{
public static void main(String args[]){

//controla e executa uma instruçao sql
Statement meustate;

//conjunto de dados retornado por uma consulta sql
ResultSet resultset;

//instancia o objeto conex da classe Conexao
ConexaoOracle conex = new ConexaoOracle();

 String sql = "SELECT * FROM TBUF";
       
      conex.main(null);          
      
      try{            
         
    	  meustate =ConexaoOracle.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
         resultset = meustate.executeQuery(sql);             

         // para compilar o relatório
         JasperReport r = JasperCompileManager.compileReport("teste.jrxml");
         
         //objeto para colocar no jasper report o resultado retornado
         JRResultSetDataSource jrresultado = new JRResultSetDataSource(resultset);
         
         //para passar parâmetros para o relatório
         HashMap parametermap = new HashMap();
         
         //chama o fill report
         JasperPrint jp = JasperFillManager.fillReport(r,parametermap,jrresultado);
         
         //para gerar relatório em pdf
		 JasperExportManager.exportReportToPdfFile(jp,"teste.pdf");			 
		 
		 //para exibição do relatório
		 JasperViewer js = new JasperViewer(jp, false);

			int janelaRelat = js.getExtendedState();
			
			janelaRelat = js.MAXIMIZED_BOTH;
			
			js.setExtendedState(janelaRelat);
			js.setVisible(true);
			
      }//fim do try
      
      catch(SQLException erro){
        System.out.println("Relatório não encontrado");
      }
      
      catch (JRException e) {				
			conex.fecha();
			e.printStackTrace();
	  }
      
      conex.fecha(); 

}//final método principal
}//final da classe ConCliente[/b]

e essa é a consulta no ireport q ele mesmo gera:

SELECT
TBUF.“CODUF” AS TBUF_CODUF,
TBUF.“SIGLAUF” AS TBUF_SIGLAUF
FROM
“SYSTEM”.“TBUF” TBUF

usando o eclipse aparece o seguinte erro depois de compilar:

[b]net.sf.jasperreports.engine.JRException: Unknown column name : TBUF_CODUF
at net.sf.jasperreports.engine.JRResultSetDataSource.getColumnIndex(JRResultSetDataSource.java:356)
at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:116)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:813)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:777)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1412)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:111)

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at ConCliente.main(ConCliente.java:46)[/b]

o nome da tabela no banco é TBUF e os campos sao CODUF, SIGLAUF

ja tentei mudar para select * from TBUF
mas gera o erro de design de consulta incorreto…

como assim usando o eclipse ? você está usando o .jrxml ou os .jasper para tentar gerar os relatorios no java ?

como sua própia exceção diz: "1. Field not found : TBUF_SIGLAUF " não está achando essa coluna no banco.

edit: agora que você postou seu fonte:

SELECT * FROM TBUF

o do jasper:

SELECT
TBUF."CODUF" AS TBUF_CODUF,
TBUF."SIGLAUF" AS TBUF_SIGLAUF
FROM
"SYSTEM"."TBUF" TBUF

troque o “SELECT * FROM TBUF” por:

 "SELECT CODUF AS "TBUF_CODUF", SIGLAUF AS "TBUF_SIGLAUF" FROM TBUF

edit2: se não funcionar, poste o fonte do objeto ConexaoOracle

Estou usando o eclipse pra executar os codigos,

o nome da coluna é COFUF,
mas esse codigo de consulta foi gerado pelo proprio ireport quando selecionei os campos,
se eu alterar o nome da coluna na consulta, ele da erro de design na consulta

String sql = “SELECT CODUF AS “TBUF_CODUF”, SIGLAUF AS “TBUF_SIGLAUF” FROM TBUF”

colocando essa linha
o eclipse da syntax error

Quando você faz:

SELECT nomadacoluna AS “nononome” from tabela, você está dando um alias(apelido) para aquela coluna.

TBUF é sua tabela, e não seu banco de dados, inicialmente, você só faz SELECT em tabelas meu caro :slight_smile:

Tenta essa query:

String sql = "SELECT CODUF AS TBUF_CODUF, SIGLAUF AS TBUF_SIGLAUF FROM TBUF";

Se não der certo, coloca a exceção do jasper :?

Mesmo com esse codigo não deu certo, o erro continua sendo o mesmo

Deu certo, era necessário realmente quebrar as aspas.
Muito Obrigada :smiley:

se der, editar o tópico, e coloca na frente dele como [RESOLVIDO]

[]'s

Você já tentou executar o relatório direto pelo jasper ? funcionou ? passou a mesma query para execução ? tá usando o mesma base de dados ? pois o query que você postou que foi gerado pelo jasper tá estranho …