问题描述:重装系统和oracle 11g,实例名orcl,输入以下代码
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.100:1521:ORCL", "scott", "tiger");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from dept");
while(rs.next()){
System.out.println(rs.getString("deptno"));//把deptno字段当做字符串拿出来
System.out.println(rs.getInt("deptno"));//把deptno字段当做Int类型拿出来
}
rs.close(); //关闭管道
stmt.close();
conn.close();
}
}
然后执行发现ORA-12505错误,该错误比较简单只需要在listener.ora文件中做出以下修改。注意host设置成服务器IP,该测试在一台电脑上测试,所以用本机IP.
# listener.ora Network Configuration File: /app/oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =(GLOBAL_DBNAME = ORCL)(ORACLE_HOME = F:\Oracle\product\11.2.0\dbhome_1)(SID_NAME = ORCL))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
然后tnsnames.ora设置如下,注意红字部分ip
# tnsnames.ora Network Configuration File: F:\Oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
lsnrctl stop/start用来关闭和打开监听服务,在设置完成后,要挨个关闭oracle的每一样服务然后再从新启动即可。