尝试从selenium连接到oracle DB时出错
我正在尝试使用jdbc从Selenium连接到oracle db,我收到以下消息:尝试从selenium连接到oracle DB时出错,oracle,selenium,selenium-webdriver,Oracle,Selenium,Selenium Webdriver,我正在尝试使用jdbc从Selenium连接到oracle db,我收到以下消息: java.sql.SQLRecoverableException: Listener refused the connection with the following error: ORA-12514, TNS:listener does not currently know of service requested in connect descriptor 我能够从pl/sql成功地连接到这个数据库,但是
java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
我能够从pl/sql成功地连接到这个数据库,但是从jdbc我得到了这个错误。下面是代码。有人能帮我吗
@Test
public void test11 () {
String server = "host";
String port = "1521";
String database = "db";
String user = "user";
String pwd = "pw";
try {
String url = "jdbc:oracle:thin:@" + server + ":" + port + "/" + database;
Connection con = DriverManager.getConnection(url, user, pwd);
Statement stmt = con.createStatement();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
LISTENER.ORA:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = "net_service_name")
(ORACLE_HOME = C:\oracle\product\10.2.0\client_1)
(SID_NAME = "net_service_name")
)
(SID_DESC =
(GLOBAL_DBNAME = "service_name")
(ORACLE_HOME = C:\oracle\product\10.2.0\client_1)
(SID_NAME = "service_name")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = "host")(PORT = 1521))
)
)
)
TNSNAMES.ORA:
"net_service_name"=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = "host")(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = "service_name")
)
)
我想你用错了
String url = "jdbc:oracle:thin:@" + server + ":" + port + "/" + database;
:取而代之/
试试你的情人
public static void conn() throws ClassNotFoundException, SQLException{
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orclpdb", "HR", "HR");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select count(*) from dual");
while(rs.next())
System.out.println(rs.getInt(1));
con.close();
}
我想你用错了
String url = "jdbc:oracle:thin:@" + server + ":" + port + "/" + database;
:取而代之/
试试你的情人
public static void conn() throws ClassNotFoundException, SQLException{
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orclpdb", "HR", "HR");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select count(*) from dual");
while(rs.next())
System.out.println(rs.getInt(1));
con.close();
}
您的oracle侦听器是否有名为“db”的服务?请确保字符串正确,或者数据库确实存在于该计算机上。您是指全局_DBNAME吗?如果是的话,是的。我在问题中添加了listener.ora和tnsnames.ora,你认为它们是正确的吗?这与listener.ora文件所说的不太一样,而是你的侦听器所想的,试着在bash提示符下运行lsnrctl status,看看你的“db”是否是listed。当我尝试这样做时,我得到了下面的消息:SQL>lsnrctl status SP2-0734:未知命令开始“lsnrctl st..”-行的其余部分被忽略。lsnrctl是一个类似sqlplus的程序,您的oracle侦听器是否有一个名为“db”的服务"? 请确保字符串正确,或者数据库确实存在于该计算机上。您是指全局_DBNAME吗?如果是的话,是的。我在问题中添加了listener.ora和tnsnames.ora,你认为它们是正确的吗?这与listener.ora文件所说的不太一样,而是你的侦听器所想的,试着在bash提示符下运行lsnrctl status,看看你的“db”是否是listed。当我尝试这样做时,我得到了下面的消息:SQL>lsnrctl status SP2-0734:未知命令开始“lsnrctl st..”-行的其余部分被忽略。lsnrctl是一个类似sqlplus的程序,它是一个具有以下内容的程序:而不是/I获取此信息:ORA-12505,TNS:listener当前不知道连接描述符“service_name”中给出的SID,而不是中的数据库(db)”/“+数据库;好极了,现在成功了!多谢各位@Rustam@Tester,请确认,我的回答是rigthWith:而不是/我得到这个:ORA-12505,TNS:侦听器目前不知道连接描述符“service_name”中给出的SID,而不是“/”+数据库中的数据库(db);好极了,现在成功了!多谢各位@Rustam@Tester,请确认我的回答是否正确