无法获取 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 启动SQL Developer提示无法从套接字读取更多的数据
无法获取 oracle 和 hikaricp 的驱动程序实例