Query oracle

7 respostas
D

opa :smiley:

public synchronized List buscaPendencias(Connection conn) throws DBConnException {
		StringBuffer sql = null;
		PreparedStatement ps = null;
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.MINUTE, -5);
		List pendentes;
		
		try {
			sql = new StringBuffer();
			// Busca Pendencia
			log.info("[" + this.getClass().getName() + ".atualizaPendencia()] - Buscando transaçõs de TEF que estão pendentes.");
			sql.append(" SELECT * FROM " + userMediador + ".TB_MOVIMENTO_TEF WHERE DTHR_PROCESSAMENTO >= '?' AND STATUS='P'");
			ps = conn.prepareStatement(sql.toString());
			ps.setTimestamp(1, new Timestamp(cal.getTimeInMillis()));
			ResultSet rs = ps.executeQuery();
			pendentes = new ArrayList();
			while(rs.next()) {
				TransacoesPendentes trans = new TransacoesPendentes();
				trans.setNsu(rs.getString("COD_MOVIMENTO_TEF"));
				trans.setDataHora(rs.getString("DTHR_PROCESSAMENTO"));
				pendentes.add(trans);
			}
			ps.close();
		} catch(Throwable t) {
			log.error("[" + this.getClass().getName() + ".buscaPendencias()] - Erro:", t);
			throw new DBConnException(t.getMessage());
		}
		return pendentes;
	}

O metodo acima deveria retornar todos os registros que estao com status P e q sejam inferior a data de hoje, mas ela nao esta funcionando…alguem pode dar uma forca? :smiley:

7 Respostas

fsquadro

david,

A aplicação exibe algum erro na tela?

Outra coisa… userMediador é o nome do schema, ele vem de onde?

D

fsquadro:
david,

A aplicação exibe algum erro na tela?

Outra coisa… userMediador é o nome do schema, ele vem de onde?

o userMediador vem direito, eu leio ele de um arquivo .properties!

E o erro que dah eh esse:

fsquadro

david,

sql.append(" SELECT * FROM " + userMediador + ".TB_MOVIMENTO_TEF WHERE DTHR_PROCESSAMENTO >= '?' AND STATUS='P'");
 			ps = conn.prepareStatement(sql.toString());

Faça o seguinte teste, após essa linha faça o seguinte, escreva o sql que sua aplicação gera, na tela, e execute ela no oracle.

System.out.println(sql.toString());

Espero ter ajudado.

D

fsquadro:
david,

sql.append(" SELECT * FROM " + userMediador + ".TB_MOVIMENTO_TEF WHERE DTHR_PROCESSAMENTO >= '?' AND STATUS='P'");
 			ps = conn.prepareStatement(sql.toString());

Faça o seguinte teste, após essa linha faça o seguinte, escreva o sql que sua aplicação gera, na tela, e execute ela no oracle.

System.out.println(sql.toString());

Espero ter ajudado.

Ele n;ao ta passando o valor da ? … agora vou descobrir como q resolve isso hehe

vlw

[]`s

Zeed01

o que significa “synchronized List”
na declaração do método public synchronized List buscaPendencias

fsquadro

Zeed,

De uma olhada neste artigo do GUJ, ele vai lhe ajudar a entender:

Introdução ao sincronismo e monitores

Espero ter ajudado.

marciosantri

Opa! Já tentou tirar as aspas simples do parâmetro?

Ao invés de ‘?’ usar somente ?

Criado 9 de abril de 2007
Ultima resposta 10 de abr. de 2007
Respostas 7
Participantes 4