Erro ao conectar no banco de dados - Oracle

5 respostas
rollei

Pessoal, eu estava fazendo uma aplicao local, usando java + tomcat + MySQL ... tudo funcionando, mas agora preciso fazer essa mesma aplicacao acessar um banco de dados em outra maquina, banco de dados oracle e estou recebendo erros. Fiz uma classe, soh para testar a conexao jah estou com erro, segue

erro
Conectando ao banco
Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
	at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:185)
	at seplag.bernardo.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14)
	at seplag.bernardo.jdbc.TestaConexao.main(TestaConexao.java:9)
classe para testar conexao
package seplag.bernardo.jdbc;

import java.sql.Connection;
import java.sql.SQLException;

public class TestaConexao {
	
	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		Connection con = ConnectionFactory.getConnection();
		con.close();
	}
}
classe de conexao
package seplag.bernardo.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
	public static String banco = "banco";
	public static String usuario = "usuario";
	public static String senha = "senha";
	public static Connection getConnection() throws SQLException, ClassNotFoundException {
		Class.forName("oracle.jdbc.driver.OracleDriver");
		System.out.println("Conectando ao banco");
		return DriverManager.getConnection(
				"jdbc:odbc:thin:@ip:porta:" + banco, usuario, senha);
	}
}

eu jah adicionei o ojdbc14.jar dentro do lib da aplicacao

5 Respostas

francislon

Tente um return assim:

return DriverManager.getConnection( "jdbc:oracle:thin:@ip:porta:" + banco, usuario, senha);

rollei

o erro mudou :slight_smile: … hehe bom sinal

erro

Exception in thread "main" java.sql.SQLException: Exceção de E/S: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at seplag.bernardo.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:14) at seplag.bernardo.jdbc.TestaConexao.main(TestaConexao.java:11)

rollei

vlw cara, consegui acessar o banco

[]'s

rollei

eu vou te explorar um pouco :smiley:
nunca mechi com o oracle soh postgree e MySQL. voce pode me dar um link para uma pagina com todos os operadores da linguagem

nesse caso em especifico estou procurando um operador que substitua a linha
“DATEDIFF(CURDATE(),TRA.DAT_TRAMITE_TRA) AS atrasoSolicitacao,”
jah que DATEDIFF e CURDATE sao funcoes do mysql que nao existem no oracle.

consulta MySQL

SELECT SOL.PK_SEQ_SOLICITACAO_SOL AS `numSolicitacao`, TRA.DAT_TRAMITE_TRA AS `dataSolicitacao`, DATEDIFF(CURDATE(),TRA.DAT_TRAMITE_TRA) AS `atrasoSolicitacao`, SOL.DSC_SOLICITACAO_SOL AS `descSolicitacao`, TEC.TXT_NOME_TEC AS `respSolicitacao` FROM tb_solicitacao_sol AS SOL , tb_tramite_tra AS TRA , tb_tecnico_tec AS TEC , tb_categoria_cat AS CAT , tb_responsavel_res AS RES , tb_status_sta as STA WHERE SOL.fk_seq_categoria_cat = CAT.pk_seq_categoria_cat AND RES.fk_seq_categoria_cat = CAT.pk_seq_categoria_cat AND RES.fk_seq_tecnico_tec = TEC.pk_seq_tecnico_tec AND TRA.fk_seq_solicitacao_sol = SOL.pk_seq_solicitacao_sol AND TRA.fk_seq_status_sta = STA.pk_seq_status_sta AND STA.pk_seq_status_sta = 3

Consulta Oracle

SELECT SOL.PK_SEQ_SOLICITACAO_SOL numSolicitacao , TRA.DAT_TRAMITE_TRA dataSolicitacao , DATEDIFF(CURDATE(),TRA.DAT_TRAMITE_TRA) atrasoSolicitacao , SOL.DSC_SOLICITACAO_SOL descSolicitacao , TEC.TXT_NOME_TEC respSolicitacao FROM ADM_SRA.tb_solicitacao_sol SOL , ADM_SRA.tb_tramite_tra TRA , ADM_SRA.tb_tecnico_tec TEC , ADM_SRA.tb_categoria_cat CAT , ADM_SRA.tb_responsavel_res RES , ADM_SRA.tb_status_sta STA WHERE SOL.fk_seq_categoria_cat = CAT.pk_seq_categoria_cat AND RES.fk_seq_categoria_cat = CAT.pk_seq_categoria_cat AND RES.fk_seq_tecnico_tec = TEC.pk_tecnico_tec AND TRA.fk_seq_solicitacao_sol = SOL.pk_seq_solicitacao_sol AND TRA.fk_seq_status_sta = STA.pk_seq_status_sta AND STA.pk_seq_status_sta = 4

lelodois

qual foi a resolução do erro?

Criado 11 de março de 2008
Ultima resposta 2 de jul. de 2009
Respostas 5
Participantes 3