我使用PL / SQL Developer完美地连接到Oracle数据库。我试图从我的java代码访问数据库。之后我收到了这个错误" ORA-12154 TNS:无法解决"来自PL / SQL Developer;我仍然可以从我的代码访问数据库和查询。
我已经阅读了针对此错误的建议解决方案,但由于我在Windows和数据库服务器上都使用了具有有限权限的瘦客户端(我只能查询它!!),我无法使用它们。
我感谢任何有关解决此问题的建议。
而且我对这个问题的原因非常好奇,因为在我运行代码之前一切都很好;这就像连接到数据库和查询我有权使用的一个视图一样简单! 请注意,其他瘦客户端上的其他用户也无法与PL / SQL Developer连接。 我的代码如下:
public static void main(String[] args) throws IOException {
// TODO code application logic here
Logger logger = Logger.getLogger("MyLog");
FileHandler fh;
fh = new FileHandler("C:/Users/batam/Documents/MyLogFile.log");
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection connection = null;
try {
connection = DriverManager.getConnection(
"jdbc:oracle:thin:@capmtr10:1521/FINDATA1", "bamat",
"fg_3002");
} catch (SQLException e) {
e.printStackTrace();
return;
}
if (connection != null) {
try {
String sql = "select a.userid, a.Description from USER_FINANCE a where a.userid = 'batam'";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String id = rs.getString("userid");
String name = rs.getString("Description");
logger.info("Selecteds are : " + id + " : " + name);
}
rs.close();
stmt.close();
} catch (SQLException e) {
logger.info("SQLException : " + e.getMessage());
} finally {
try {
connection.close();
} catch (SQLException ex) {
Logger.getLogger(IFS.class.getName()).log(Level.SEVERE, null, ex);
logger.info("Close Exception : " + ex.getMessage());
}
}
} else {
System.out.println("Failed to make connection!");
logger.info("Failed to make connection!");
}
}
我在瘦客户机上使用system_context函数检索了PL / SQL开发人员的服务器主机名和服务名称,但是在没有此错误的情况下它仍在连接。
提前谢谢。
答案 0 :(得分:0)
您是否安装了oracle客户端工具?如果是这样,在cmd上输入YOUR_SID将为您提供与数据库的连接状态。