高分求解,急!!!Java连接Oracle10g 问题 java.sql.SQLException: 无法从套接字读取更多的数据
Oracle在Linux服务器上,开发环境是windowsXP,试过升级jdbc的jar,无效,已经头疼到想杀人了,郁闷死了。下面是程序代码:/**Oracle数据库连接...
Oracle在Linux服务器上,开发环境是windows XP,试过升级jdbc的jar,无效,已经头疼到想杀人了,郁闷死了。
下面是程序代码:
/** Oracle数据库连接URL */
private final static String Oracle_URL = "jdbc:oracle:thin:@192.168.1.4:1521:orcl";
/** Oracle数据库连接驱动 */
private final static String Oracle_DRIVER = "oracle.jdbc.driver.OracleDriver";
/** 数据库用户名 */
private final static String Oracle_USERNAME = "map";
/** 数据库密码 */
private final static String Oracle_PASSWORD = "admin";
public static void main(String[] args) throws SQLException {
try {
Class.forName(Oracle_DRIVER);
Connection conn = DriverManager.getConnection(Oracle_URL,
Oracle_USERNAME, Oracle_PASSWORD);
System.out.println("good");
} catch (Exception e) {
System.out.println("连接失败!");
e.printStackTrace();
}
}
下面是错误信息
java.sql.SQLException: 无法从套接字读取更多的数据
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1117)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1069)
at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:130)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:866)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:267)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Oracletest3.main(Oracletest3.java:18) 展开
下面是程序代码:
/** Oracle数据库连接URL */
private final static String Oracle_URL = "jdbc:oracle:thin:@192.168.1.4:1521:orcl";
/** Oracle数据库连接驱动 */
private final static String Oracle_DRIVER = "oracle.jdbc.driver.OracleDriver";
/** 数据库用户名 */
private final static String Oracle_USERNAME = "map";
/** 数据库密码 */
private final static String Oracle_PASSWORD = "admin";
public static void main(String[] args) throws SQLException {
try {
Class.forName(Oracle_DRIVER);
Connection conn = DriverManager.getConnection(Oracle_URL,
Oracle_USERNAME, Oracle_PASSWORD);
System.out.println("good");
} catch (Exception e) {
System.out.println("连接失败!");
e.printStackTrace();
}
}
下面是错误信息
java.sql.SQLException: 无法从套接字读取更多的数据
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1117)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1069)
at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:130)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:866)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:267)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Oracletest3.main(Oracletest3.java:18) 展开
5个回答
展开全部
这个问题很诡异的。
首先,确保你所用的oracle驱动(ojdbc14.jar)与Oracle服务器的版本一致。
并确保开发环境能够访问到数据库服务器(不会被防火墙拦住,必要时关了防火墙试试)。
还有问题的话,得查Oracle服务器上的日志了,如alert_SID.log,请你们的DBA帮忙看看。
网上也有说是游标不足的原因:
SELECT v.name, v.value value FROM V$PARAMETER v WHERE name = 'open_cursors'
如果value小于300 就用下面的语句增大就行
alter system set open_cursors = 10000
代码应该没有问题,主要得查数据库那边了。
首先,确保你所用的oracle驱动(ojdbc14.jar)与Oracle服务器的版本一致。
并确保开发环境能够访问到数据库服务器(不会被防火墙拦住,必要时关了防火墙试试)。
还有问题的话,得查Oracle服务器上的日志了,如alert_SID.log,请你们的DBA帮忙看看。
网上也有说是游标不足的原因:
SELECT v.name, v.value value FROM V$PARAMETER v WHERE name = 'open_cursors'
如果value小于300 就用下面的语句增大就行
alter system set open_cursors = 10000
代码应该没有问题,主要得查数据库那边了。
展开全部
检查一下jar包是否导入,数据库名,用户名和密码是否正确
这个代码我运行是正确的。
这个代码我运行是正确的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 先看看Linux服务器上的oracle的服务开了没?正常需要两个服务 一个是listener的监听服务 另一个是你的叫做orcl的实例服务(用plsql先测试可以访问不)
2 证明上述正常了,再确认java需要的oracle的驱动jar包是不是全放进去了,而且是被配置到路径里了
3 进一步确认你上面的用户名密码的正确与否
按照这个来应该可以测出问题在哪 细心点 加油
2 证明上述正常了,再确认java需要的oracle的驱动jar包是不是全放进去了,而且是被配置到路径里了
3 进一步确认你上面的用户名密码的正确与否
按照这个来应该可以测出问题在哪 细心点 加油
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在十八行出了错!你看下odbc里连接了没,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你导入orcale 的驱动了吗??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询