无法获取 Oracle 数据库连接,oracle.net.ns.NetException: Undefined Error

Posted

技术标签:

【中文标题】无法获取 Oracle 数据库连接,oracle.net.ns.NetException: Undefined Error【英文标题】:Unable to get Oracle database connection,oracle.net.ns.NetException: Undefined Error 【发布时间】:2021-08-24 02:03:57 【问题描述】:

我想使用 JDBC 连接到 Oracle 数据库。

我正确安装了ojdbc6.jar并编写了这段代码。

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

public class DBConnect 

    public static void main(String[] args) 
        try 
            Class.forName("oracle.jdbc.OracleDriver");
            String url = "jdbc:oracle:thin:@192.168.127.129:1521:helowin";
            String id = "msa_checkin";
            String pass = "msa0526";
            Connection con = DriverManager.getConnection(url, id, pass);
            if(con != null) 
                System.out.println("Oracle success");
            else 
                System.out.println("Oracle failed");
        
        catch(Exception e) 
            System.out.println("Error");
            e.printStackTrace();
        
    

但输出看起来像这样。

Error
java.sql.SQLException: Undefined Error
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.kinth.DBConnect.main(DBConnect.java:14)
Caused by: oracle.net.ns.NetException: Undefined Error
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:385)
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
    ... 7 more

我搜索了类似的问题,但它并没有解决我的问题。

Unable to get Oracle database connection, should I format my computer?

Navicat 没问题。 Navicat Image

我尝试使用 oracle6.jar 和 Oracle14.jar 但都没有成功。

【问题讨论】:

请不要接受仅链接的答案。 你的java版本是多少? @tgdavies 为什么你建议使用 Java 1.4 的 JDBC 驱动程序而不是 Java 6 的 JDBC 驱动程序?! OP 可能应该使用 较新的 驱动程序,而不是 较旧的 驱动程序。 @MarkRotteveel 我的错误,我认为这是更新的 这篇博文expertsys.hu/2019/02/16/… 描述了一个导致类似错误的原因:将 user.name 系统属性设置为非 ASCII 字符。解决方案是将-Duser.name=xx 传递给您的程序。您的问题可能完全不同,但值得一试。 【参考方案1】:

您能否按照page 上的说明尝试使用最新的 JDBC 驱动程序建立连接?

【讨论】:

以上是关于无法获取 Oracle 数据库连接,oracle.net.ns.NetException: Undefined Error的主要内容,如果未能解决你的问题,请参考以下文章

无法获取 oracle 的驱动程序实例

Oracle 启动SQL Developer提示无法从套接字读取更多的数据

无法获取 oracle 和 hikaricp 的驱动程序实例

c#获取oracle数据库表字段名

(KAFKA Oracle DEBEZIUM)无法连接:无法解析Oracle数据库版本

oracle的服务无法连接数据库